EKS集群VPC-CNI插件Terraform升级遇版本报错求助
EKS 1.27集群通过Terraform升级VPC-CNI插件解决方案
错误原因解析
Updating VPC-CNI can only go up or down 1 minor version at a time:VPC-CNI插件升级有版本步进限制,不允许跨多个小版本直接升级,必须逐个小版本递进操作。Addon version specified is not supported:EKS集群版本与VPC-CNI版本存在严格兼容性对应关系,1.27版本的EKS仅支持特定范围的VPC-CNI版本,指定超出该范围的版本会触发此错误。
具体Terraform升级步骤
1. 确认支持的VPC-CNI版本范围
先获取EKS 1.27兼容的所有VPC-CNI版本,可通过Terraform数据源实现:
data "aws_eks_addon_versions" "vpc_cni" { cluster_name = "your-eks-cluster-name" addon_name = "vpc-cni" kubernetes_version = "1.27" } output "supported_vpc_cni_versions" { value = data.aws_eks_addon_versions.vpc_cni.addons[0].versions }
执行terraform apply后,输出结果会列出所有支持的版本,从中选择递进的小版本序列(比如从v1.12.6 → v1.13.5 → v1.14.3 → v1.15.0)。
2. 逐版本递进升级
修改Terraform的aws_eks_addon资源配置,每次只升级一个小版本,执行terraform apply完成升级后再进行下一次:
第一步:升级到第一个过渡版本
resource "aws_eks_addon" "vpc_cni" { cluster_name = "your-eks-cluster-name" addon_name = "vpc-cni" addon_version = "v1.13.5" # 替换为第一步选择的过渡版本 resolve_conflicts = "OVERWRITE" service_account_role_arn = aws_iam_role.vpc_cni.arn # 替换为你的VPC-CNI角色ARN }
第二步:升级到第二个过渡版本
将addon_version修改为下一个小版本(比如v1.14.3),再次执行terraform apply。
第三步:升级到目标版本
最后将addon_version修改为最终目标版本(比如v1.15.0),执行terraform apply完成升级。
3. 验证升级结果
- 通过kubectl验证:
kubectl describe daemonset aws-node -n kube-system | grep Image
查看输出的镜像版本是否与指定的VPC-CNI版本匹配。
- 通过AWS CLI验证:
aws eks describe-addon --cluster-name your-eks-cluster-name --addon-name vpc-cni
确认addon_version和status字段显示正常。
内容的提问来源于stack exchange,提问作者Morteza Malekabadi
相关产品推荐
相关产品推荐

