EKS中aws-load-balancer-controller部署超时:服务账户缺失问题
EKS aws-load-balancer-controller部署失败:服务账户缺失导致的进度超时问题
问题复现
执行部署状态检查命令时触发进度超时错误:
kubectl -n kube-system rollout status deployment aws-load-balancer-controller
返回报错:
error: deployment "aws-load-balancer-controller" exceeded its progress deadline
通过kubectl describe查看部署详情,确认副本创建失败,无运行中的Pod:
kubectl describe deployment aws-load-balancer-controller -n kube-system
根因定位
查看AWS控制台报错信息,发现明确提示:找不到kube-system命名空间下的aws-load-balancer-controller服务账户。由此确定服务账户缺失是部署失败的直接原因——负载均衡控制器Pod无法通过缺失的服务账户获取AWS API权限,导致Pod启动失败,进而触发部署进度超时。
解决步骤
- 确认
kube-system命名空间下的服务账户状态:kubectl get serviceaccounts -n kube-system | grep aws-load-balancer-controller - 如果服务账户不存在,重新创建对应的服务账户并关联IAM角色(适配EKS IRSA机制):
- 创建服务账户:
kubectl create serviceaccount aws-load-balancer-controller -n kube-system - 关联IAM角色(替换
<CLUSTER_NAME>和<IAM_ROLE_ARN>为集群实际信息):eksctl create iamserviceaccount \ --cluster=<CLUSTER_NAME> \ --namespace=kube-system \ --name=aws-load-balancer-controller \ --attach-policy-arn=<IAM_ROLE_ARN> \ --approve \ --override-existing-serviceaccounts
- 创建服务账户:
- 重新触发部署:
kubectl rollout restart deployment aws-load-balancer-controller -n kube-system - 再次检查部署状态:
kubectl -n kube-system rollout status deployment aws-load-balancer-controller
内容的提问来源于stack exchange,提问作者Georgi Koemdzhiev
相关产品推荐
相关产品推荐

