You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

因容量不足无法在us-east-1e区域创建Amazon EKS集群

解决Terraform创建EKS集群时的可用区容量不足问题

问题分析

你遇到的错误是因为当前配置自动拉取了默认VPC下所有公网子网,其中包含了AWS提示容量不足的us-east-1e可用区。EKS集群创建时会尝试在指定子网内部署控制平面资源,当目标AZ资源耗尽时就会触发该错误。若你之前尝试指定其他AZ但未正确过滤子网,Terraform依然会包含问题AZ的子网,导致错误重复出现。

解决方案

1. 过滤可用区,仅保留AWS推荐的AZ

修改aws_subnets数据源,添加可用区过滤规则,只选择us-east-1a、us-east-1b、us-east-1c、us-east-1d这几个可用区的子网,确保EKS集群和节点组仅使用这些AZ的资源。

修改后的子网数据源配置如下:

#get public subnets for cluster
data "aws_subnets" "public" {
  filter {
    name   = "vpc-id"
    values = [data.aws_vpc.default.id]
  }

  # 过滤出AWS推荐的可用区子网
  filter {
    name   = "availability-zone"
    values = ["us-east-1a", "us-east-1b", "us-east-1c", "us-east-1d"]
  }
}

2. 验证子网配置

执行terraform plan查看输出的子网ID列表,确认其中没有属于us-east-1e的子网,确保过滤规则生效。

3. 重新部署集群

运行以下命令完成集群部署:

terraform init
terraform plan
terraform apply

额外注意事项

  • EKS集群要求至少使用2个不同的可用区以保证高可用,请勿仅选择单个AZ。
  • 如果默认VPC在推荐AZ下没有足够的公网子网,可手动创建指定AZ的子网,并在EKS配置中直接指定子网ID,示例如下:
resource "aws_eks_cluster" "example" {
  name     = "eks_cloud1120"
  role_arn = aws_iam_role.example.arn

  vpc_config {
    # 手动填入推荐AZ的子网ID
    subnet_ids = ["subnet-xxxxxx", "subnet-yyyyyy", "subnet-zzzzzz"]
  }

  depends_on = [
    aws_iam_role_policy_attachment.example-AmazonEKSClusterPolicy,
  ]
}

内容的提问来源于stack exchange,提问作者Nirmal Naveen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 03:42:35