Amazon CloudWatch容器洞察Pod处于Pending状态调度失败求助
排查Amazon CloudWatch容器洞察Pod Pending(节点亲和/选择器不匹配)问题
验证节点标签的准确性
执行kubectl get nodes --show-labels,逐个核对所有节点的kubernetes.io/os标签值——Kubernetes标签是大小写敏感的,确认没有写成Linux、LINUX或拼写错误的情况,必须严格匹配linux。检查Pod的完整调度约束
除了nodeSelector,Pod可能还有额外的调度规则:- 执行
kubectl describe pod <pod-name> -n amazon-cloudwatch,查看Node Affinity字段,确认是否存在额外的节点亲和性要求(比如特定实例类型、区域标签); - 查看
Tolerations字段,确认节点是否存在污点(比如node-role.kubernetes.io/master),而Pod未配置对应容忍规则,导致无法调度。
- 执行
核对节点资源剩余量
调度器的错误提示可能优先显示亲和性问题,但实际可能是资源不足:- 对提示“Pod过多”的节点,执行
kubectl describe node <node-name>,查看Allocated resources部分,确认CPU、内存、存储是否已耗尽; - 对另外5个节点,同样检查资源剩余,排除因资源不足导致的调度失败。
- 对提示“Pod过多”的节点,执行
查看调度器日志定位细节(可选)
如果以上步骤都未找到问题,查看kube-scheduler的日志:
执行kubectl logs -n kube-system <kube-scheduler-pod-name>,搜索目标Pod的名称,获取调度器拒绝该Pod的具体原因(比如反亲和性规则冲突、节点端口占用等)。
内容的提问来源于stack exchange,提问作者Ruchita Sheth
相关产品推荐
相关产品推荐

