k8s pod一直处于pending状态一般有哪些情况,怎么排查?

这篇具有很好参考价值的文章主要介绍了k8s pod一直处于pending状态一般有哪些情况,怎么排查?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

初步判断

一个pod一开始创建的时候,它本身就是会处于pending状态,这时可能是正在拉取镜像,正在创建容器的过程。

如果等了一会发现pod一直处于pending状态,

那么我们可以使用kubectl describe命令查看一下pod的Events详细信息。一般可能会有这么几种情况导致pod一直处于pending状态:

1、调度器调度失败。

Scheduer调度器无法为pod分配一个合适的node节点。

而这又会有很多种情况,比如,node节点处在cpu、内存压力,导致无节点可调度;pod定义了资源请求,没有node节点满足资源请求;node节点上有污点而pod没有定义容忍;pod中定义了亲和性或反亲和性而没有节点满足这些亲和性或反亲和性;以上是调度器调度失败的几种情况。

2、pvc、pv无法动态创建。

如果因为pvc或pv无法动态创建,那么pod也会一直处于pending状态,比如要使用StatefulSet 创建redis集群,因为粗心大意,定义的storageClassName名称写错了,那么会造成无法创建pvc,这种情况pod也会一直处于pending状态,或者,即使pvc是正常创建了,但是由于某些异常原因导致动态供应存储无法正常创建pv,那么这种情况pod也会一直处于pending状态。

排查角度

Pod处于Pending状态可能有多种原因,下面列举了一些常见情况和相应的排查方法:

  1. 资源不足:调度器无法找到满足Pod资源需求的节点来运行Pod。
    • 使用kubectl describe pod <pod-name>命令查看Pod的描述信息,检查Events部分是否有资源不足的警告或错误信息。
    • 确认集群中是否有足够的节点和资源可供调度器使用。
    • 检查Pod的资源需求(如CPU、内存)是否与节点的资源容量相匹配。
  2. 节点标签不匹配:Pod的调度选择器与节点的标签不匹配,导致无法将Pod调度到节点上。
    • 使用kubectl describe pod <pod-name>命令查看Pod的描述信息,检查Events部分是否有与节点标签相关的错误信息。
    • 检查Pod的调度选择器(spec.selector)和节点的标签(metadata.labels)是否匹配。
  3. 节点污点(Taint)和容忍度(Toleration)不匹配:节点上存在污点,而Pod没有相应的容忍度,导致无法将Pod调度到节点上。
    • 使用kubectl describe pod <pod-name>命令查看Pod的描述信息,检查Events部分是否有与节点污点和容忍度相关的错误信息。
    • 检查节点的污点(spec.taints)和Pod的容忍度(spec.tolerations)是否匹配。
  4. 网络配置问题:Pod无法获取到网络资源,无法与集群中的其他组件通信。
    • 使用kubectl describe pod <pod-name>命令查看Pod的描述信息,检查Events部分是否有与网络配置相关的错误信息。
    • 检查Pod的网络配置(如网络插件、网络策略)是否正确,并确保网络插件正常运行。
  5. 持久卷(Persistent Volume)不可用:如果Pod使用了持久卷,但没有可用的持久卷提供给Pod,可能导致Pod处于Pending状态。
    • 使用kubectl describe pod <pod-name>命令查看Pod的描述信息,检查Events部分是否有与持久卷相关的错误信息。
    • 检查持久卷的可用性和状态,确保Pod请求的持久卷可供使用。

这些是常见的导致Pod处于Pending状态的情况,根据具体的错误信息和描述信息,可以进一步排查和解决问题。还可以使用kubectl get events命令查看集群中的事件日志,以获取更多关于Pod处于Pending状态的相关信息。文章来源地址https://www.toymoban.com/news/detail-798080.html

到了这里,关于k8s pod一直处于pending状态一般有哪些情况,怎么排查?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • k8s 大量 pod 处于 ContainerStatusUnknown 状态

    k8s 大量 pod 处于 ContainerStatusUnknown 状态

    如图所示,nexus 正常运行,但产生了大量的状态不明的 pod,原因也无从所知 解决办法,删除多余的 pod,一个一个删除,非常费劲 获取 namespace 中状态为 ContainerStatusUnknown 的 pod,并删除 获取所有非 Running 状态下的 pod,并删除

    2024年02月07日
    浏览(17)
  • K8S集群中Pod资源处于ImagePullBackOff状态排查思路

    ImagePullBackOff状态表示容器的镜像拉取失败,可能存在以下几点原因: 拉取镜像时间较长导致超时,从而导致镜像拉取失败,部署完Docker后,一定要添加上阿里云的镜像加速器,否则拉取镜像是非常慢的,很容易就会导致镜像拉取失败。 镜像配置有误,指定的镜像在公有仓库

    2024年02月14日
    浏览(13)
  • K8S集群中Pod资源处于CrashLoopBackOff状态排查思路

    CrashLoopBackOff状态一般都是Pod资源中的容器出现了问题,可以有以下几点原因: 容器中部署的程序存在Bug,无法正常启动,就会出现此状态,可以查询容器的启动日志,从日志中获取重要线索,逐个进行排查。 定义Pod资源时,对于Pod中的容器进行了资源限额,可能限额的资源

    2024年01月21日
    浏览(10)
  • k8s集群namespace一直处于Terminating状态不释放解决办法

    k8s集群namespace一直处于Terminating状态不释放解决办法

    Kubernetes中namespace有两种常见的状态,即Active和Terminating状态,其中Terminating状态一般会比较少见,当对应的命名空间下还存在运行的资源,但该命名空间被删除时才会出现所谓的Terminating状态,这种情况下只要等待Kubernetes本身将命名空间下的资源回收后,该命名空间将会被系

    2024年02月11日
    浏览(11)
  • k8s的namespace一直处于terminating的解法

    先试了强制替换,无法替换掉,强制删除,也删除不掉namespace 这段代码的含义是在 Kubernetes 环境中删除一个命名空间(Namespace)及其关联的资源,包括在命名空间中运行的所有容器、服务、持久卷等。让我们逐行解释代码的作用: NAMESPACE=demo 这一行指定了要删除的命名空间

    2024年02月15日
    浏览(9)
  • k8s部署解成功解决node节点一直处于NotReady状态的问题,报错failed to load Kubelet config file /var/lib/kubelet/config.yaml

    k8s部署解成功解决node节点一直处于NotReady状态的问题,报错failed to load Kubelet config file /var/lib/kubelet/config.yaml

    我在部署k8s的时候host1节点一直显示NotReady 报错便报,直接经典看日志解决问题思路哈哈哈 看日志找报错点,找问题解决问题,思路一定要清晰。 在host1节点中查看报错信息,代码: 由日志信息可知,报错原因是不能从/var/llib/kubelet/config.yaml下载到kubelet的配置。 错误原因估计

    2024年02月11日
    浏览(13)
  • k8s pod 处于Terminating的原因分析和解决处理——筑梦之路

    之前整理了一下各种资源长时间无法回收,解决处理的命令行 k8s 各种资源Terminationg状态处理 —— 筑梦之路_k8s自定义资源修改状态-CSDN博客 这里具体整理下pod长时间处于Terminating状态的相关知识,主要是对前面的补充和完善,作为笔记记录。 当我们要删除一个Pod时,Kuberne

    2024年02月03日
    浏览(16)
  • k8s强制删除处于Terminating状态的namespace

    k8s强制删除处于Terminating状态的namespace

    一、问题背景         按照kubord官方文档安装删除Kuboard之后,再重新执行kubectl apply时,出现Error from server (Forbidden): error when creating \\\"https://addons.kuboard.cn/kuboard/kuboard-v3-swr.yaml\\\": configmaps \\\"kuboard-v3-config\\\" is forbidden: unable to create new content in namespace kuboard because it is being terminated报错

    2024年02月05日
    浏览(16)
  • k8s pod 无法启动一直ContainerCreating

    k8s pod 无法启动一直ContainerCreating

    查看详细信息如下 Failed to create pod sandbox: rpc error: code = Unknown desc = [failed to set up sandbox container “334d991a478b9640c66c67b46305122d7f0eefc98b2b4e671301f1981d9b9bc6” network for pod “yupay-vip-5c4bb7db5c-s6m52”: networkPlugin cni failed to set up pod “yupay-vip-5c4bb7db5c-s6m52_yupay” network: error getting ClusterInforma

    2024年04月28日
    浏览(9)
  • Pod一直处于CrashLoopBackOff状态的排查思路

    Pod一直处于CrashLoopBackOff状态的排查思路

    一台宿主机上启动的Pod一直重启,describe报错信息如下 Pod sandbox changed, it will be killed and re-created. Pod处于CrashLoopBackOff状态,第一想到的是Liveness probe failed或者OOM-kill; 测试Pod没有配置存活探测,查看对应机器也没有OOM-kill相关内核日志; 怀疑是否dockerd进程资源比较紧张,比如

    2024年02月12日
    浏览(13)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包