AWS EKS中AWS_EBS_CSI插件异常(副本数不足)求助
排查AWS EBS CSI插件Degraded状态(副本数不足)的步骤
1. 确认控制器Deployment及Pod状态
首先查看EBS CSI控制器的Deployment副本状态:
kubectl get deployment ebs-csi-controller -n kube-system
观察READY列数值是否与DESIRED一致。若不一致,查看具体Pod状态:
kubectl get pods -n kube-system -l app=ebs-csi-controller
对异常Pod(如CrashLoopBackOff、ImagePullBackOff),查看详细描述和日志:
# 查看Pod描述 kubectl describe pod <pod-name> -n kube-system # 查看ebs-plugin容器日志 kubectl logs <pod-name> -n kube-system -c ebs-plugin # 查看csi-provisioner容器日志 kubectl logs <pod-name> -n kube-system -c csi-provisioner
2. 验证ServiceAccount与IAM角色绑定
确认ebs-csi-controller-sa ServiceAccount存在且配置正确的IAM角色ARN:
kubectl get sa ebs-csi-controller-sa -n kube-system kubectl describe sa ebs-csi-controller-sa -n kube-system
检查是否存在eks.amazonaws.com/role-arn注解,其值需与你的AWS_EBS_CSI角色ARN完全一致(如arn:aws:iam::279649766383:role/<your-ebs-csi-role>)。
3. 检查镜像拉取权限与网络可达性
EBS CSI插件依赖ECR中的镜像,确认节点能正常拉取镜像:
- 若Pod处于
ImagePullBackOff,检查节点IAM角色是否附加AmazonEC2ContainerRegistryReadOnly策略; - 私有子网环境下,确认NAT网关正常工作,或已配置ECR、EC2、STS的VPC端点,确保节点能访问这些服务。
4. 校验IAM角色权限与信任关系
- 确认AWS_EBS_CSI角色的信任关系中,
sub字段严格匹配system:serviceaccount:kube-system:ebs-csi-controller-sa,OIDC提供商ARN与集群OIDC issuer一致; - 尝试移除自定义策略,仅保留
AmazonEBSCSIDriverPolicy托管策略,验证插件是否恢复正常(自定义策略的条件可能限制了必要操作)。
5. 检查集群OIDC提供商配置
确认集群OIDC issuer与IAM角色中的Federated ARN匹配:
aws eks describe-cluster --name <your-cluster-name> --query "cluster.identity.oidc.issuer" --output text
输出的URL需与IAM角色信任关系中Federated字段的OIDC提供商URL一致(如oidc.eks.ap-south-2.amazonaws.com/id/84F15F13C79758077B521DE9FA0AE8FB)。
6. 排查资源限制与部署配置
检查控制器Deployment的资源请求/限制是否过高,导致Pod无法调度:
kubectl get deployment ebs-csi-controller -n kube-system -o yaml | grep -A 10 resources
若节点资源不足,可调整资源配置或扩容节点组。
内容的提问来源于stack exchange,提问作者prasanna ramesh
相关产品推荐
相关产品推荐

