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

AWS EKS集群升级至v1.30后节点组升级失败问题

AWS EKS 1.30升级中启动模板节点组加入失败排查方案

问题背景

将EKS集群从1.29升级至1.30后,非启动模板创建的节点组升级成功,但通过启动模板创建的abc-node-group节点组升级失败,报错:

Error code: NodeCreationFailure
Error message: Couldn't proceed with upgrade process as new nodes are not joining node group abc-node-group

节点AMI已升级至1.30,但无法加入集群。

核心排查与修复步骤

1. 校验节点IAM角色权限

  • 确认节点实例绑定的IAM角色已附加AmazonEKSWorkerNodePolicy、AmazonEC2ContainerRegistryReadOnly、AmazonEKS_CNI_Policy三个核心托管策略
  • 检查角色信任关系,确保包含ec2.amazonaws.com服务主体,示例信任策略:
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "Service": "ec2.amazonaws.com"
          },
          "Action": "sts:AssumeRole"
        }
      ]
    }
    

2. 检查启动模板用户数据

  • 验证用户数据中bootstrap.sh脚本的集群名称、节点标签是否与实际配置完全匹配,示例正确配置:
    #!/bin/bash
    set -o xtrace
    /etc/eks/bootstrap.sh <集群名称> --kubelet-extra-args '--node-labels=eks.amazonaws.com/nodegroup=abc-node-group,eks.amazonaws.com/nodegroup-image=ami-xxxxxx'
    
  • 确认未遗漏集群CA证书、API服务器端点的注入逻辑

3. 验证节点安全组规则

  • 确保节点安全组允许:
    • 入方向:TCP 443(集群API服务器)、TCP 10250(kubelet端口)
    • 出方向:所有TCP/UDP流量到集群控制平面安全组,以及TCP 80流量到EC2元数据服务
  • 检查节点安全组与控制平面安全组的双向访问规则是否生效

4. 分析节点系统日志

  • 通过EC2控制台获取节点的/var/log/cloud-init-output.log和/var/log/messages,重点排查:
    • bootstrap.sh脚本执行报错
    • kubelet启动失败日志
    • API服务器连接超时/拒绝的信息

5. 测试API端点连通性

  • 在节点内部执行命令测试集群API端点可达性:
    curl -v https://<集群API端点>/healthz
    
  • 排查DNS解析失败、VPC网络ACL拦截、VPC端点配置异常等问题

6. 确认kubelet版本兼容性

  • 确保节点kubelet版本与集群控制平面版本(1.30)一致,EKS要求kubelet与控制平面版本差异不超过一个次要版本
  • 若启动模板自定义了kubelet安装流程,需确认安装的是1.30版本kubelet

临时替代方案

若以上排查未定位到问题,可尝试:

  • 替换abc-node-group的启动模板,使用AWS官方EKS 1.30标准AMI重新创建节点组
  • 手动扩容节点组添加新节点,确认新节点正常加入后再缩容旧节点,绕过自动升级流程

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 08:18:23