Kubernetes Pod扩容后处于Pending状态:节点污点及资源不足问题求助
Kubernetes Pod Pending 问题解决方案
处理Master节点污点
默认Kubernetes会给Master节点打上node-role.kubernetes.io/master污点,阻止Pod调度到该节点。可通过两种方式解决:
- 给Pod添加容忍度:在Deployment的Pod模板中加入
tolerations配置,让Pod能被调度到Master节点(仅建议测试环境使用,生产环境不推荐占用Master资源):spec: template: spec: tolerations: - key: "node-role.kubernetes.io/master" operator: "Exists" effect: "NoSchedule" - 直接移除Master节点的污点:
kubectl taint nodes <你的Master节点名称> node-role.kubernetes.io/master-
解决CPU资源不足问题
- 先查看节点CPU使用情况,定位高负载节点:
kubectl top nodes - 清理节点上不需要的Pod,释放CPU资源;
- 调整待扩容Pod的CPU请求值:如果Pod的
resources.requests.cpu设置过高,适当降低该值,让调度器能找到满足资源要求的节点; - 若集群整体CPU容量不足,新增Worker节点扩容集群。
解决内存资源不足问题
- 查看节点内存占用情况:
kubectl top nodes - 删除闲置或占用内存过高的Pod,释放内存;
- 降低Pod的内存请求值:修改Deployment中Pod模板的
resources.requests.memory,避免因请求过高无法被调度; - 当集群内存总量不够时,添加新的Worker节点补充资源。
内容的提问来源于stack exchange,提问作者Riya Jain
相关产品推荐
相关产品推荐

