温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

为何Node节点无法正常调度

发布时间:2026-09-26 16:00:17 来源:亿速云 阅读:89 作者:小樊 栏目:系统运维

Node 节点无法正常调度(即 Pod 无法被调度到该节点)在 Kubernetes 中是一个常见问题,通常由以下几类原因导致。你可以按顺序排查:


一、节点资源不足

最常见原因

  • CPU / 内存不足

    • 节点剩余资源 < Pod 请求的 requests
  • 查看方式:

    kubectl describe node <node-name>
    

    关注:

    • Allocatable
    • Allocated resources
    • Conditions
  • 解决:

    • 降低 Pod requests
    • 扩容节点
    • 清理无用 Pod

二、节点被标记为不可调度

1️⃣ 节点被 cordon

kubectl get nodes

状态为 SchedulingDisabled

解决:

kubectl uncordon <node-name>

2️⃣ 节点有 NoSchedule / NoExecute Taint

kubectl describe node <node-name> | grep -i taint

示例:

Taints: node-role.kubernetes.io/master:NoSchedule

Pod 没有对应 toleration 就无法调度。

解决:

  • 添加 toleration
  • 或移除 taint:
    kubectl taint nodes <node-name> key:NoSchedule-
    

三、节点状态异常(NotReady)

kubectl get nodes

状态不是 Ready:

  • NotReady
  • Unknown

常见原因:

  • kubelet 挂了
  • 网络故障
  • 磁盘压力(DiskPressure)
  • 内存压力(MemoryPressure)

查看:

kubectl describe node <node-name>

四、Pod 的调度约束不匹配

1️⃣ nodeSelector 不匹配

nodeSelector:
  disktype: ssd

但节点没有该 label


2️⃣ nodeAffinity / podAffinity 不满足

kubectl describe pod <pod-name>

Events 中会说明原因。


3️⃣ Pod 有 toleration 但节点无对应 taint(反向问题较少)


五、Pod 处于 Pending 但无合适节点

kubectl describe pod <pod-name>

常见提示:

  • 0/3 nodes are available
  • insufficient cpu
  • node(s) didn't match node selector
  • node(s) had taint

六、控制器或调度器问题

  • kube-scheduler 异常
  • 自定义调度器未运行
  • Pod 指定了不存在的 schedulerName
spec:
  schedulerName: my-scheduler

七、其他特殊场景

  • 节点处于 维护模式
  • 节点被 自动伸缩组缩容
  • 云厂商节点未正式加入集群
  • 使用了 静态 Pod / DaemonSet 占满资源

快速排查清单 ✅

kubectl get nodes
kubectl describe node <node>
kubectl get pods -o wide
kubectl describe pod <pending-pod>

如果你愿意,可以贴出:

  • kubectl describe node
  • kubectl describe pod
  • 集群类型(kubeadm / 云厂商 / 自建)

我可以帮你精准定位是哪一类问题。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手