升级AWS EKS 1.24后cluster-autoscaler新增EC2实例未注册至CLB
EKS 1.24升级后新实例未自动关联Classic LB的排查方案
1. 检查Classic LB的自动注册规则
- 确认Classic LB关联的目标组是否开启基于标签的自动注册,且节点组的ASG(自动伸缩组)配置了给新实例打对应标签的规则(比如自定义标签
lb-attach: enabled),确保LB能通过标签识别并注册新实例。 - 核对新实例的子网、安全组是否和LB完全匹配,避免因网络属性不匹配导致无法自动注册。
2. 验证Cluster Autoscaler的IAM权限
- 确保Cluster Autoscaler绑定的IAM角色包含
elasticloadbalancing:RegisterInstancesWithLoadBalancer、elasticloadbalancing:DeregisterInstancesFromLoadBalancer权限,以及autoscaling:DescribeAutoScalingGroups、autoscaling:UpdateAutoScalingGroup等核心权限,避免因权限不足无法触发LB注册动作。 - 检查IAM角色的信任策略是否正确关联EKS集群的OIDC提供商,1.24版本对OIDC身份验证的配置要求更严格,确保
sts:AssumeRoleWithWebIdentity的信任关系无错误。
3. 排查节点初始化逻辑
- 查看节点的用户数据脚本,确认是否包含注册Classic LB的命令(如
aws elb register-instances-with-load-balancer --load-balancer-name <lb-name> --instances <instance-id>),验证脚本在EKS 1.24的节点镜像上能否正常执行,排查AWS CLI版本兼容性问题。 - 查看CloudWatch中的节点系统日志,搜索初始化阶段的报错信息,定位LB注册脚本的执行失败原因。
4. 核对Traefik与LB的关联配置
- 检查Traefik的Service资源是否配置了正确的AWS LB类型注解:
service.beta.kubernetes.io/aws-load-balancer-type: "classic",确保EKS 1.24的kube-controller-manager能正确识别并维护LB的实例关联逻辑。 - 查看kube-controller-manager的日志,排查是否存在因API版本变更(如v1.24废弃部分beta API)导致的LB处理异常。
5. 测试手动扩容的实例行为
- 手动触发ASG扩容一个实例,观察ASG的生命周期钩子是否执行了LB注册操作,检查钩子执行记录是否有报错。
- 确认新实例的标签是否符合LB目标组的注册规则,手动在AWS控制台验证标签匹配情况下LB能否自动注册实例。
内容的提问来源于stack exchange,提问作者yawork
相关产品推荐
相关产品推荐

