k8s pod始终处于pending状态的解决方案

 更新时间:2025年08月13日 08:39:13   作者:珂玥c  
新K8s部署后服务重启导致dashboard无法访问,所有Pod处于Pending状态,原因分析显示,因节点污点引发调度失败,删除污点后问题解决,总结Pending原因分为三类:调度问题(污点、资源不足)、镜像问题(拉取失败)、依赖性问题(卷/Secret/ConfigMap缺失)

项目场景

新搭建的k8s投入使用,为新项目提供节点资源。

问题描述

k8s服务部署后,由于项目需要,进行了一次服务重启,结果发现kubernetes-dashboard无法访问,kubectl get pod -A 查看所有pod发现,均处于pending状态。

原因分析

怀疑是node节点出了问题,所以导致pod无法启动。

解决方案

第一步:查看所有pod节点状态,发现全部是pending

kubectl get pod -A

第二步:查看namespace里面一个pod的详细信息,查看具体是什么原因导致的pending

kubectl -n kubernetes-dashboard describe pod dashboard-metrics-scraper-c45b7869d-vv9kw

#kubectl -n namespace的名字 describe pod pod的名字

结尾处看到报错信息,两个节点有污点,pod无法容忍。

第三步:查看污点信息

 kubectl describe nodes  |grep Taints

第四步:删除污点内容。污点名字后面跟 - 号,就可以删除了

kubectl taint nodes node1  project=devcenter-build:NoExecute-

kubectl taint nodes node2  project=devcenter-build:NoExecute-

第五步:再次查看污点信息,查看pod状态

kubectl describe nodes  |grep Taints

kubectl get pod -A

问题结束后,看了一些相关文章。

总结发现,pending状态导致的原因主要分为三类:

  • 第一类: 调度问题,无法在任何节点上调度 Pod。其中包括,污点、node节点内存或cpu资源不足、都会引起调度失败。
  • 第二类: 镜像问题,无法拉取到镜像。包括,镜像名称、标签、镜像仓库输入错误,镜像仓库需要身份验证等,都导致拉取失败。
  • 第三类:依赖性问题,Pod 需要一个卷、Secret 或 ConfigMap 才能运行。(没遇到过,但是据说发生这个问题的可能性较小)

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 云原生技术kubernetes(K8S)简介

    云原生技术kubernetes(K8S)简介

    这篇文章主要介绍了云原生技术kubernetes的相关资料,帮助大家更好的理解和学习使用K8S,感兴趣的朋友可以了解下
    2021-03-03
  • k8s集群搭建的完整步骤流程

    k8s集群搭建的完整步骤流程

    Kubernetes是由Google开源的容器编排平台,用于自动化容器化应用的部署、扩展和管理,这篇文章主要介绍了k8s集群搭建的完整步骤流程,文中通过图文及代码介绍的非常详细,需要的朋友可以参考下
    2025-07-07
  • 如何给k8s集群里的资源打标签

    如何给k8s集群里的资源打标签

    k8s集群,节点如果有多个角色,需要标记出来,可以给对应的节点打上标签,方便后续了解节点的功能,这篇文章主要介绍了如何给k8s集群里的资源打标签,需要的朋友可以参考下
    2023-02-02
  • k8s的架构组成操作代码

    k8s的架构组成操作代码

    k8s是一个轻便的和可扩展的开源平台,用于管理容器化应用和服务,通过k8s能够进行应用的自动化部署和扩缩容,这篇文章主要介绍了k8s的架构组成,需要的朋友可以参考下
    2024-05-05
  • k8s常用命令大全(最新推荐)

    k8s常用命令大全(最新推荐)

    这篇文章主要介绍了k8s常用命令大全,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • 浅谈Spark RDD API中的Map和Reduce

    浅谈Spark RDD API中的Map和Reduce

    rdd是什么?如何创建?什么是map和reduce?本文就这些问题向大家作了一些分析,供大家参考,如有不足,欢迎指出。
    2017-10-10
  • k8s部署并测试ingress-nginx的详细过程

    k8s部署并测试ingress-nginx的详细过程

    这篇文章主要介绍了k8s部署并测试ingress-nginx的详细过程,本文通过一个demo示例给大家介绍的非常详细,感兴趣的朋友一起看看吧
    2025-04-04
  • K8S容器OOM killed排查过程

    K8S容器OOM killed排查过程

    这篇文章主要介绍了K8S容器OOM killed排查过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-07-07
  • K8s实战教程之容器和 Pods资源分配问题

    K8s实战教程之容器和 Pods资源分配问题

    这篇文章主要介绍了K8s实战教程之容器和 Pods资源分配,本篇文章通过配置集群中运行的容器的 CPU 请求和限制,你可以有效利用集群上可用的 CPU 资源,通过将 Pod CPU 请求保持在较低水平,可以使 Pod 更有机会被调度,需要的朋友可以参考下
    2022-07-07
  • K8s中Pod处于Pending状态的八种原因分析

    K8s中Pod处于Pending状态的八种原因分析

    文章详细介绍了Pod处于Pending状态的八种常见原因,并提供了相应的排查和解决方法,这些原因包括资源不足、调度约束、存储依赖、镜像问题、配额限制、网络暗礁、系统级异常以及冷门陷阱,每种原因都附带了具体的诊断方法和解决建议,感兴趣的朋友一起看看吧
    2025-02-02

最新评论