如何排查Amazon EKS Kubernetes版本更新失败的原因
EKS集群从1.22升级到1.23静默失败的排查方法
检查节点兼容性
- 确认所有工作节点的kubelet版本与目标控制平面版本(1.23)的兼容性:EKS要求节点kubelet版本不能高于控制平面版本,且最多低一个次要版本。若节点仍使用1.22的kubelet,部分自定义配置可能触发升级阻塞。
- 检查节点状态,确认无长期处于
NotReady状态的节点,这类异常节点可能导致升级流程中断。
验证官方附加组件状态
- 检查CoreDNS、kube-proxy、VPC CNI等官方附加组件的版本是否适配Kubernetes 1.23:例如VPC CNI需至少v1.11.0,kube-proxy需对应1.23版本。
- 执行以下命令查看附加组件详情:
确认附加组件无报错、版本兼容。aws eks describe-addon --cluster-name <你的集群名> --addon-name vpc-cni aws eks describe-addon --cluster-name <你的集群名> --addon-name kube-proxy aws eks describe-addon --cluster-name <你的集群名> --addon-name coredns
排查资源配额限制
- 检查集群所在AWS区域的EKS控制平面资源配额:比如是否达到EKS集群数量上限,或控制平面依赖的EC2实例配额不足。
- 确认账户IAM资源配额充足,避免因配额限制导致升级所需的IAM资源无法创建或更新。
分析CloudTrail事件日志
- 虽然控制平面日志无报错,但CloudTrail会记录所有EKS API操作。在CloudTrail中搜索
eks:UpdateClusterVersion动作,查看事件的errorCode和errorMessage字段,这里可能包含控制台未显示的隐藏错误。
- 虽然控制平面日志无报错,但CloudTrail会记录所有EKS API操作。在CloudTrail中搜索
检查自定义组件与配置
- 排查是否存在自定义准入控制器、Webhook或第三方运维组件(如Istio、Prometheus等)拦截升级流程,可临时禁用非必要Webhook后重试升级。
- 检查kube-apiserver的自定义参数,确认无Kubernetes 1.23已废弃的配置项。
联系AWS技术支持
- 若以上步骤均无法定位问题,提交AWS支持工单,提供集群ID、升级失败的Update ID(
cbb53f20-b5e2-4cf0-b95a-f6634e71b9de)及排查过的日志信息,AWS后台可查看更详细的升级流程日志以定位根因。
- 若以上步骤均无法定位问题,提交AWS支持工单,提供集群ID、升级失败的Update ID(
内容的提问来源于stack exchange,提问作者Samer A.
相关产品推荐
相关产品推荐

