EKS负载均衡同步失败:实例存在多个带标签安全组问题求助
解决EKS负载均衡同步失败(多标签安全组)问题
问题根源
EKS的service-controller创建负载均衡时,会筛选带有kubernetes.io/cluster/<集群名称>: owned标签的安全组。当EC2实例关联的多个安全组都带有该标签时,控制器无法确定使用哪一个,从而抛出同步失败错误。从报错信息看,你的节点同时关联了节点组安全组和EKS控制平面安全组,且两者都带有集群标签。
解决步骤
- 识别目标安全组:报错里的
sg-04ad04b5d3bb35e66(eks-cluster-sg-education-eks-ooHfNJwm-1857011925)是EKS控制平面的安全组,这个不需要保留集群标签;sg-08ca90265d3402e6c(education-eks-ooHfNJwm-node-20221205083117267100000007)是节点组安全组,需保留标签。 - 移除多余标签
- 控制台操作:进入EC2安全组页面,找到控制平面安全组,切换到「标签」页,删除键为
kubernetes.io/cluster/education-eks-ooHfNJwm的标签。 - CLI操作:执行以下命令(替换安全组ID和集群名称):
aws ec2 delete-tags --resources sg-04ad04b5d3bb35e66 --tags Key=kubernetes.io/cluster/education-eks-ooHfNJwm
- 控制台操作:进入EC2安全组页面,找到控制平面安全组,切换到「标签」页,删除键为
- 触发负载均衡重新同步
- 可以删除当前异常的Service后重新创建,或者给Service添加临时注解强制重建负载均衡:
kubectl annotate service <你的服务名称> service.beta.kubernetes.io/aws-load-balancer-force-new-resource="true" - 等待几分钟,service-controller会自动完成负载均衡的同步。
- 可以删除当前异常的Service后重新创建,或者给Service添加临时注解强制重建负载均衡:
内容的提问来源于stack exchange,提问作者mar0ne
相关产品推荐
相关产品推荐

