AWS EKS集群部署Kubernetes Pod长期处于PENDING状态无法就绪求助
故障排查与解决方案
问题背景
关联项目仓库:udagram-microservices
完成kubectl与AWS EKS集群的对接配置后,按以下步骤完成资源部署:
# 部署配置和密钥资源 kubectl apply -f env-configmap.yaml kubectl apply -f env-secret.yaml kubectl apply -f aws-secret.yaml # 逐个部署业务服务的 Deployment 和 Service kubectl apply -f svcname-deployment.yaml kubectl apply -f svcname-service.yaml

部署后所有Pod持续数小时处于PENDING状态,执行kubectl describe pod <POD_NAME>查询得到三个异常Pod:reverseproxy-667b78569b-2c6hv、udagram-api-feed-856bbc5c45-jcgtk、udagram-api-users-6fbd5cbf4f-qbmdd的诊断信息。
根因分析与解决步骤
结合EKS环境特性,按优先级排查以下问题:
- 集群节点资源不足
这是EKS场景下Pod长期PENDING最常见原因,先执行kubectl get nodes查看节点状态,再执行kubectl describe node <节点名>检查节点剩余CPU、内存资源是否满足Pod的resources.requests配置。- 若资源不足:可调整Deployment的资源请求阈值,或为EKS集群新增工作节点,也可以开启集群自动扩缩容(Cluster Autoscaler)功能。
- 调度规则匹配失败
检查Pod配置的节点选择器(nodeSelector)、亲和性/反亲和性规则、污点容忍(tolerations)是否和集群节点的标签、污点匹配。如果是Fargate模式的EKS集群,需要确认Pod的命名空间、标签是否匹配Fargate Profile的配置。 - 存储资源挂载失败
如果Pod配置了PersistentVolumeClaim(PVC),执行kubectl get pvc检查PVC是否处于Bound状态,EBS CSI驱动是否正常安装运行,存储类(StorageClass)配置是否正确。 - 镜像拉取权限问题
检查Pod引用的镜像是否存放在私有ECR仓库,EKS节点的IAM角色是否拥有对应镜像仓库的拉取权限,镜像地址、标签是否填写正确。
内容的提问来源于stack exchange,提问作者Oussama Bouchikhi
相关产品推荐
相关产品推荐

