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

EKS升级后新节点在AWS Classic Load Balancer显示OutOfService问题咨询

问题根因说明

核心根因

  • EKS的AWS云提供者组件对Classic Load Balancer(CLB)的后端节点放行校验,不只是对比安全组规则,更依赖安全组的集群关联标签以及集群登记的安全组列表,你手动创建的同规则安全组没有满足这两个前置条件,因此无法生效。

具体细节拆解

  1. 安全组标签校验逻辑
    旧节点组的安全组是eksctl创建集群时自动生成的,默认携带集群专属关联标签,格式为 kubernetes.io/cluster/<你的集群名称>,值为owned或shared,同时可能带有kubernetes:shared: true标签。AWS云提供者组件只有识别到这些标签的安全组,才会判定为集群合法的节点安全组,允许CLB的健康检查和业务流量进入。
    你手动创建的安全组仅复制了出入站规则,没有同步这些标签,所以直接被校验逻辑拦截。

  2. 集群安全组登记逻辑
    EKS 1.17版本的集群元数据中会维护一个默认节点安全组列表,只有在列表内的安全组绑定的节点,才会被CLB后端健康检查逻辑判定为合法后端。旧安全组是集群创建时就登记在列表中的,你手动创建的安全组没有被加入该列表,就算规则完全一致也会导致健康检查失败,节点被标记为OutOfService。

  3. 新节点组配置遗漏
    你升级aws-cni后创建新节点组时没有显式指定关联集群原有节点安全组,eksctl默认会为新节点组生成独立的新安全组,该安全组既没有集群关联标签,也没有被加入CLB的入站白名单,天然无法通过CLB的健康检查。


验证方法

直接对比旧节点安全组和你手动创建的安全组的标签配置,即可确认是否缺少集群关联标签;同时查看CLB的入站规则,可确认其仅放行了旧安全组的流量,没有包含你手动创建的安全组。

修复方案

  • 后续用eksctl创建新节点组时,在配置文件中显式指定关联集群原有节点安全组,不需要手动创建新安全组
  • 如果要使用手动创建的安全组,给安全组添加和旧安全组完全一致的集群关联标签,再将该安全组添加到CLB的入站规则白名单中即可正常生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 09:36:05