我对terraform相当陌生,在创建AWS基础设施时,我使用以下方法获取我所在地区(美国-东部-1)的“可用”可用性区域,我正在尝试创建EKS集群。
data "aws_availability_zones" "available" {}然而,当我运行一个'terraform‘时,它会产生以下错误,因为us 1a是容量。
aws_eks_cluster.demo: error creating EKS Cluster (test-cluster):
UnsupportedAvailabilityZoneException: Cannot create cluster 'test-cluster' because us-east-1a, the targeted availability zone, does not
currently have sufficient capacity to support the cluster. Retry and
choose from these availability zones: us-east-1b, us-east-1c, us-east-1d有什么办法我可以得到地形自动处理,或指定我只想使用1b,1c,1d等。
编辑:
我意识到这与我创建子网的位置有关,我使用这一行来创建子网:
availability_zone = "${data.aws_availability_zones.available.names[count.index]}"所以我想我应该通过在这里做点什么来跳过我们的东西吗?
提前谢谢。
发布于 2018-06-18 10:17:22
如果其他人有这个问题,我就是这样解决的。
指定一个变量,并指定要针对的可用性区域。
variable "zones" {
default = ["us-east-1b", "us-east-1c", "us-east-1d"]
}创建子网时,请使用以下行
availability_zone = "${var.zones[count.index]}"发布于 2018-08-17 17:54:12
您可以使用AWS ClI来查询可用性区域:
aws ec2 describe-availability-zones有了这个结果,您可以准备一个脚本来获取第一个结果。
发布于 2021-07-18 21:41:34
我知道这是个老问题,但我遇到了同样的问题,并以不同的方式解决了这个问题。与其硬编码诸如接受答案这样的可用性区域,我认为最好过滤掉那些不支持EKS的可用区域。这种方法使移动到新区域变得更容易,因为数据来自aws,而不是硬编码列表。
data "aws_availability_zones" "available" {
# List of availability zones that do not support EKS
exclude_names = ["us-east-1e"]
}https://devops.stackexchange.com/questions/4322
复制相似问题