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

IPv6原生EKS集群无法创建托管节点组问题求助

排查IPv6原生EKS集群托管节点组部署失败问题

问题背景

我尝试部署IPv6原生EKS集群已一周,集群创建成功,但托管节点组始终部署失败,已做以下尝试:

  • 使用仅IPv6的公有子网,触发SubnetInvalidConfiguration错误,提示需IPv4
  • 使用双栈(IPv4+IPv6)但关闭「自动分配公有IPv4」的子网,节点无法加入集群,报错:NodeCreationFailure, Message=Instances failed to join the kubernetes cluster
  • 将托管节点组部署在私有子网,同样触发SubnetInvalidConfiguration错误

上述操作均通过AWS Console和Terraform EKS模块执行,最后严格遵循AWS官方文档用eksctl(后台通过CloudFormation创建VPC、子网、角色及节点组等)部署,仍出现与第二种尝试相同的节点加入失败错误。

针对性排查步骤

1. 子网配置合规性验证

IPv6原生EKS集群的托管节点组对子网有强制要求:

  • 必须使用双栈子网(同时支持IPv4和IPv6),仅IPv6子网不被EKS托管节点组支持(这是第一种尝试失败的直接原因)
  • 公有子网部署时,必须开启「自动分配公有IPv4地址」——即使是IPv6集群,节点初始化阶段仍需通过IPv4访问EKS控制平面完成注册
  • 私有子网部署时,需确保子网关联双栈NAT网关,且路由表配置了IPv4和IPv6的出站路由(分别指向NAT网关和互联网网关),否则节点无法拉取容器镜像或访问EKS API

2. 节点网络与DNS检查

  • 登录EC2控制台查看节点实例的网络接口,确认已分配到IPv6地址
  • 检查节点的DNS配置:双栈子网下,实例需使用支持IPv6的DNS服务器(如VPC默认DNS地址VPC_CIDR+2,或AWS提供的169.254.169.253),否则无法解析EKS控制平面的IPv6端点

3. IAM角色权限校验

托管节点组的实例角色(通常命名为AmazonEKSNodeRole)必须包含以下核心权限:

  • eks:RegisterCluster、eks:DescribeCluster:用于节点向EKS控制平面注册
  • ecr:GetDownloadUrlForLayer、ecr:BatchGetImage:用于拉取EKS节点所需的容器镜像
  • ec2:DescribeInstances:用于节点网络配置初始化

同时需确认角色信任关系正确,允许ec2.amazonaws.com和eks.amazonaws.com扮演该角色。

4. 安全组规则核查

  • 节点安全组需允许:
    • 出站TCP 443访问EKS控制平面的IPv4和IPv6端点
    • 出站UDP 53访问DNS服务器(IPv4/IPv6)
    • 节点间的入站/出站通信(如TCP 10250、UDP 4789等)
  • 控制平面安全组需允许来自节点安全组的TCP 443和6443访问

5. 节点启动日志分析

通过EC2控制台获取节点实例的系统日志(/var/log/cloud-init-output.log或/var/log/messages),定位具体失败原因:

  • 若日志中出现Failed to connect to eks-api-endpoint类错误,优先排查网络连通性和DNS解析问题
  • 若出现IAM authentication failed类错误,检查实例角色的权限和信任关系配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 08:07:35