Amazon web services Terraform AWS EKS群集部署错误
我一直在尝试在us-east-1区域内部署EKS群集,我发现其中一个可用区us-east-1e不支持设置,因此我的群集无法创建 请查看下面的错误,并告诉我是否有办法在terraform部署中跳过us-east-1e AZ 计划:添加26个,更改0个,销毁0个 此计划已保存到:development.tfplan 要准确执行这些操作,请运行以下命令以应用: terraform apply development.tfplan base_C0DL:使用terraform master snadella001部署eks集群$ 地形应用 development.tfplandata.aws\u可用性\u分区。可用性\u azs: 阅读[id=2020-12-04 22:10:40.079079+0000 UTC] data.aws\u availability\u zones.availability\u azs:0秒后读取完成 [id=2020-12-04 22:10:47.208548+0000 UTC] module.eks cluster.aws_eks_cluster.this[0]:正在创建 错误:创建EKS群集EKS ha时出错: UnsupportedAvailabilityZoneException:无法创建群集“eks hia” 因为目标可用性区域us-east-1e当前不可用 有足够的容量支持群集。重试并从中选择 这些可用区:us-east-1a、us-east-1b、us-east-1c、, us-east-1d,us-east-1f{resp元数据:{ 状态代码:400, RequestID:0f2ddbd1-107f-490e-b45f-6985e1c7f1f8},群集名称:eks ha,消息:无法创建群集“eks hia” 因为目标可用性区域us-east-1e当前不可用 有足够的容量支持群集。请重试并从中选择 这些可用区:us-east-1a、us-east-1b、us-east-1c、, us-east-1d、us-east-1f、ValidZones:[ 美国东-1a, us-east-1b, 美国-东方-1c, us-east-1d, us-east-1f]} 在参考资料中的.terraform/modules/eks cluster/cluster.tf第9行 aws_eks_群集此:9:资源aws_eks_群集此{ 请查找下面列出的EKS群集:Amazon web services Terraform AWS EKS群集部署错误,amazon-web-services,terraform,terraform-provider-aws,amazon-eks,Amazon Web Services,Terraform,Terraform Provider Aws,Amazon Eks,我一直在尝试在us-east-1区域内部署EKS群集,我发现其中一个可用区us-east-1e不支持设置,因此我的群集无法创建 请查看下面的错误,并告诉我是否有办法在terraform部署中跳过us-east-1e AZ 计划:添加26个,更改0个,销毁0个 此计划已保存到:development.tfplan 要准确执行这些操作,请运行以下命令以应用: terraform apply development.tfplan base_C0DL:使用terraform master snadell
# create EKS cluster
module "eks-cluster" {
source = "terraform-aws-modules/eks/aws"
version = "12.1.0"
cluster_name = var.cluster_name
cluster_version = "1.17"
write_kubeconfig = false
availability-zones = ["us-east-1a", "us-east-1b", "us-east-1c"]## tried but does not work
subnets = module.vpc.private_subnets
vpc_id = module.vpc.vpc_id
worker_groups_launch_template = local.worker_groups_launch_template
# map developer & admin ARNs as kubernetes Users
map_users = concat(local.admin_user_map_users, local.developer_user_map_users)
}
# get EKS cluster info to configure Kubernetes and Helm providers
data "aws_eks_cluster" "cluster" {
name = module.eks-cluster.cluster_id
}
data "aws_eks_cluster_auth" "cluster" {
name = module.eks-cluster.cluster_id
}
#################
# Private subnet
#################
resource "aws_subnet" "private" {
count = var.create_vpc && length(var.private_subnets) > 0 ? length(var.private_subnets) : 0
vpc_id = local.vpc_id
cidr_block = var.private_subnets[count.index]
# availability_zone = ["us-east-1a", "us-east-1b", "us-east-1c"]
availability_zone = length(regexall("^[a-z]{2}-", element(var.azs, count.index))) > 0 ? element(var.azs, count.index) : null
availability_zone_id = length(regexall("^[a-z]{2}-", element(var.azs, count.index))) == 0 ? element(var.azs, count.index) : null
assign_ipv6_address_on_creation = var.private_subnet_assign_ipv6_address_on_creation == null ? var.assign_ipv6_address_on_creation : var.private_subnet_assign_ipv6_address_on_creation
ipv6_cidr_block = var.enable_ipv6 && length(var.private_subnet_ipv6_prefixes) > 0 ? cidrsubnet(aws_vpc.this[0].ipv6_cidr_block, 8, var.private_subnet_ipv6_prefixes[count.index]) : null
tags = merge(
{
"Name" = format(
"%s-${var.private_subnet_suffix}-%s",
var.name,
element(var.azs, count.index),
)
},
var.tags,
var.private_subnet_tags,
)
}
variable "azs" {
description = "A list of availability zones names or ids in the region"
type = list(string)
default = []
#default = ["us-east-1a", "us-east-1b","us-east-1c","us-east-1d"]
}
您的地形代码在哪里?您如何分配子网?抱歉。更新了上面问题中的代码。@jordanm,如果您有机会检查代码,请告诉我是子网包括us-east-1e.module.vpc.private_子网包括us-east-1e区域中的子网。这就是您需要修复的。@jordanm,谢谢!!添加了子网代码块。我尝试提供us-east-1a、us-east-1b、us-east-1c AZs,但没有成功。不确定我是否遗漏了一些非常基本的内容,但非常感谢您的帮助。
module "vpc" {
source = "terraform-aws-modules/vpc/aws"
version = "2.44.0"
name = "${var.name_prefix}-vpc"
cidr = var.main_network_block
# azs = data.aws_availability_zones.available_azs.names
azs = ["us-east-1a", "us-east-1b", "us-east-1c"]
private_subnets = [
# this loop will create a one-line list as ["10.0.0.0/20", "10.0.16.0/20", "10.0.32.0/20", ...]
# with a length depending on how many Zones are available
for zone_id in data.aws_availability_zones.available_azs.zone_ids :
cidrsubnet(var.main_network_block, var.subnet_prefix_extension, tonumber(substr(zone_id, length(zone_id) - 1, 1)) - 1)
]