Pod 一直处于 Pending 状态

一 现象描述

当 Pod 一直处于 Pending 状态时,说明该 Pod 还未被调度到某个节点上,需查看 Pod 分析问题原因。例如执行 kubectl describe pod 命令,则获取到的事件信息如下:

$ kubectl describe pod tikv-0
...
Events:
  Type     Reason            Age                 From               Message
  ----     ------            ----                ----               -------
  Warning  FailedScheduling  3m (x106 over 33m)  default-scheduler  0/4 nodes are available: 1 node(s) had no available volume zone, 2 Insufficient cpu, 3 Insufficient memory. 

二 可能原因

  1. 节点资源不足
  2. 不满足 nodeSelector 与 affinity
  3. Node 存在 Pod 没有容忍的污点
  4. 低版本 kube-scheduler 的 bug
  5. kube-scheduler 未正常运行
  6. 驱逐后其他可用节点与当前节点的有状态应用不在相同可用区

三 排查方法

3.1 检查节点是否资源不足
3.1.1 问题分析

节点资源不足有以下几种情况:

  1. CPU 负载过高。
  2. 剩余可以被分配的内存不足。
  3. 剩余可用 GPU 数量不足(通常在机器学习场景、GPU 集群环境
  • 7
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Pod 一直处于 Pending 状态通常是由于以下几个原因: 1. 调度问题:Kubernetes 集群中的节点可能没有足够的资源(如 CPU、内存、存储)来运行 Pod。您可以使用 `kubectl describe pod <pod-name>` 命令来查看 Pod 的详细信息,了解它为什么无法调度。 2. 网络问题:Pod 可能无法与 Kubernetes 集群中的其他组件通信。您可以使用 `kubectl describe pod <pod-name>` 命令来查看 Pod 的详细信息,查看是否存在网络问题。 3. 挂载问题:如果 Pod 挂载了 PVC(Persistent Volume Claim)并且 PVC 无法满足 Pod 的要求,那么 Pod 可能会一直处于 Pending 状态。您可以使用 `kubectl describe pvc <pvc-name>` 命令来查看 PVC 的详细信息,了解它是否满足 Pod 的要求。 4. 镜像拉取问题:如果 Pod 的容器镜像无法拉取或者拉取速度很慢,那么 Pod 可能会一直处于 Pending 状态。您可以使用 `kubectl describe pod <pod-name>` 命令来查看 Pod 的详细信息,查看是否存在镜像拉取问题。 针对以上原因,您可以通过以下方式进行排查和解决: 1. 调整资源配额或者增加节点资源; 2. 检查网络配置,确保 Pod 可以与其他组件通信; 3. 检查 PVC 是否满足 Pod 的要求,如果需要可以修改 PVC 的配置; 4. 检查容器镜像是否可用,可以尝试使用 `docker pull <image-name>` 命令手动拉取镜像,或者使用国内的镜像加速器来加速镜像拉取。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值