创建EKS集群遇Unsupported Kubernetes版本错误,需检查terraform.tfstate哪些内容?
问题描述
我在创建EKS集群时出现InvalidParameterException错误,提示“不支持的Kubernetes版本”。已执行terraform init和plan命令,以下是我的eks.tf文件内容及报错信息,请问需要检查terraform.tfstate文件中的哪些内容?
我的eks.tf文件
data "aws_availability_zones" "azs" {} module "myapp-vpc" { source = "terraform-aws-modules/vpc/aws" version = "3.7.0" name = "myapp-vpc" cidr = var.vpc_cidr_block private_subnets = var.private_subnets_cidr_blocks public_subnets = var.public_subnets_cidr_blocks azs = data.aws_availability_zones.azs.names enable_nat_gateway = true single_nat_gateway = true enable_dns_hostnames = true tags = { "kubernetes.io/cluster/myapp-cluster" = "shared" } private_subnet_tags = { "kubernetes.io/cluster/myapp-cluster" = "shared" "kubernetes.io/role/internal-elb" = 1 } public_subnet_tags = { "kubernetes.io/cluster/myapp-cluster" = "shared" "kubernetes.io/role/elb" = 1 } }
报错信息
│ 错误:创建EKS集群(myapp-cluster)失败:InvalidParameterException: 不支持的Kubernetes版本 │ { │ RespMetadata: { │ StatusCode: 400, │ RequestID: "073bff37-1d18-4d11-82c9-226b92791a70" │ }, │ ClusterName: "myapp-cluster", │ Message_: "不支持的Kubernetes版本" │ } │ │ 涉及资源:module.eks.aws_eks_cluster.this[0], │ 位置:.terraform/modules/eks/main.tf 第11行,resource "aws_eks_cluster" "this" 块中: │ 11: resource "aws_eks_cluster" "this" {
需检查的terraform.tfstate内容
针对这个错误,你需要检查terraform.tfstate里以下几个关键部分:
- EKS集群资源的版本参数:在状态文件中定位到
module.eks.aws_eks_cluster.this对应的资源条目,查看其中的version字段值,确认该版本是否属于AWS EKS当前仍在支持的版本范围(AWS会定期停止对旧版Kubernetes的支持)。 - 残留的旧版本状态记录:如果之前部署过不同版本的EKS集群,检查tfstate中是否存在未清理的旧版本配置残留,这类数据可能导致Terraform错误地复用已被AWS废弃的版本参数。
- 模块关联资源的版本一致性:查看
module.eks相关的所有状态条目,确认集群版本与节点组等关联资源的版本参数是否统一,避免因状态缓存导致版本不匹配。
注意:多数情况下这类错误根源在Terraform配置而非状态文件,建议先检查EKS模块中kubernetes_version参数的配置值是否合法,再核对状态文件内容。
内容的提问来源于stack exchange,提问作者Richard Rublev
相关产品推荐
相关产品推荐

