0

0

Pod 创建后 status 一直是 Pending - 0/1 nodes are available

冷炫風刃

冷炫風刃

发布时间:2026-01-18 20:05:02

|

717人浏览过

|

来源于php中文网

原创

Pod Pending 且事件显示“0/1 nodes available”表明调度失败,主因包括:1. 节点资源不足(requests 超出 Allocatable);2. 污点与容忍不匹配;3. nodeSelector 或亲和性配置错误;4. 节点 NotReady 或被 cordon。

pod 创建后 status 一直是 pending - 0/1 nodes are available

Pod 一直处于 Pending 状态,且事件中显示 0/1 nodes are available,说明 Kubernetes 调度器无法为该 Pod 找到符合条件的节点来运行它。这不是网络或镜像问题,而是调度阶段失败 —— Pod 还没开始拉镜像、也没尝试启动容器。

节点资源不足(最常见)

Kubernetes 调度器会检查节点是否有足够 CPU、内存等资源满足 Pod 的 requests。哪怕节点看起来“空闲”,只要未预留资源低于 Pod 请求值,就会被跳过。

  • 运行 kubectl describe node ,查看 AllocatableAllocated resources 部分,对比 Pod 的 resources.requests
  • 特别注意:系统组件(kubelet、containerd)、操作系统、kube-reserved / system-reserved 设置都会占用 Allocatable 之外的资源,真正可调度的资源往往比 kubectl get nodes -o wide 显示的要少
  • 临时验证:把 Pod 的 resources.requests 调低(例如 CPU 改成 10m,内存 64Mi),看是否能调度成功

节点污点(Taint)与容忍(Toleration)不匹配

节点可能带有 NoScheduleNoExecute 污点,而 Pod 没有对应容忍,导致被直接排除。

Autoppt
Autoppt

Autoppt:打造高效与精美PPT的AI工具

下载
  • 查节点污点:kubectl describe node | grep Taints
  • 查 Pod 是否定义了 tolerations:kubectl get pod -o yaml | yq '.spec.tolerations'(或用 kubectl describe pod 查 Events 和 Toleration 字段)
  • 常见场景:master 节点默认带 node-role.kubernetes.io/control-plane:NoSchedule 污点;部分集群给 worker 节点加了自定义污点(如 dedicated=ai:NoSchedule

节点选择器(nodeSelector)或亲和性(affinity)配置错误

Pod 显式要求运行在具备某些标签的节点上,但集群中没有节点满足条件。

  • 检查 Pod 的 spec.nodeSelectorkubectl get pod -o jsonpath='{.spec.nodeSelector}'
  • 检查 spec.affinity.nodeAffinity 是否设置了硬性约束(requiredDuringSchedulingIgnoredDuringExecution)且无节点匹配
  • 确认节点实际标签:kubectl get node --show-labels,比对是否漏标、拼写错误(如 role=worker 写成 role=workeer

节点处于 NotReady 状态或不可调度(unschedulable)

虽然 kubectl get nodes 显示 Ready,但可能因其他原因被标记为不可调度,或 kube-scheduler 无法访问该节点。

  • 运行 kubectl get nodes -o wide,确认 STATUS 是 Ready,且 AGE 不异常(如刚加入但未完成初始化)
  • 检查节点是否被手动设置为不可调度:kubectl get node -o jsonpath='{.spec.unschedulable}',返回 true 表示被 kubectl cordon
  • 确认 kube-scheduler 日志中是否有报错(如连接 apiserver 超时、RBAC 权限不足),尤其在自建集群或网络受限环境

相关专题

更多
Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务
Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务

Golang云原生微服务Kubernetes (K8s) 是指 使用 Go 语言(Golang)编写的云原生微服务,并利用 Kubernetes 平台进行容器化部署、自动化管理、弹性伸缩和高效编排的一整套现代应用架构方案。

24

2025.12.22

Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务
Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务

Golang云原生微服务Kubernetes (K8s) 是指 使用 Go 语言(Golang)编写的云原生微服务,并利用 Kubernetes 平台进行容器化部署、自动化管理、弹性伸缩和高效编排的一整套现代应用架构方案。

24

2025.12.22

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

72

2026.01.16

全民K歌得高分教程大全
全民K歌得高分教程大全

本专题整合了全民K歌得高分技巧汇总,阅读专题下面的文章了解更多详细内容。

131

2026.01.16

C++ 单元测试与代码质量保障
C++ 单元测试与代码质量保障

本专题系统讲解 C++ 在单元测试与代码质量保障方面的实战方法,包括测试驱动开发理念、Google Test/Google Mock 的使用、测试用例设计、边界条件验证、持续集成中的自动化测试流程,以及常见代码质量问题的发现与修复。通过工程化示例,帮助开发者建立 可测试、可维护、高质量的 C++ 项目体系。

54

2026.01.16

java数据库连接教程大全
java数据库连接教程大全

本专题整合了java数据库连接相关教程,阅读专题下面的文章了解更多详细内容。

39

2026.01.15

Java音频处理教程汇总
Java音频处理教程汇总

本专题整合了java音频处理教程大全,阅读专题下面的文章了解更多详细内容。

19

2026.01.15

windows查看wifi密码教程大全
windows查看wifi密码教程大全

本专题整合了windows查看wifi密码教程大全,阅读专题下面的文章了解更多详细内容。

85

2026.01.15

浏览器缓存清理方法汇总
浏览器缓存清理方法汇总

本专题整合了浏览器缓存清理教程汇总,阅读专题下面的文章了解更多详细内容。

43

2026.01.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
WEB前端教程【HTML5+CSS3+JS】
WEB前端教程【HTML5+CSS3+JS】

共101课时 | 8.3万人学习

JS进阶与BootStrap学习
JS进阶与BootStrap学习

共39课时 | 3.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号