pod的几种状态:

1)Pending:Pod创建已经提交给k8s,但是因为某种原因不能顺利创建,例如下载镜像慢,调度不成功等。
2)Running:Pod已经绑定到一个节点上了,并且已经创建了所有容器。只是有一个容器正在运行,或者在启动中。
3)Secceeded:Pod中的所有容器都已经成功终止,不能重新启动。
4)Failed: Pod中所有的容器均已经终止,且至少有一个容器已经在故障中终止。
5)Unkown:由于某中原因apiserver无法获取到Pod的状态。通常是由于Master与pod所在的主机失去连接了。

常用的排障命令:

kubectl get pod <pod-name> -o yaml 查看 Pod 的配置是否正确
kubectl describe pod <pod-name> 查看 Pod 的事件
kubectl logs <pod-name> [-c <container-name>] 查看容器日志
kubectl exec -it <pod-name>  -- /bin/bash #进入容器查看

常见故障归类

Pod状态 一直处于 Pending
Pod状态 一直处于 Waiting
Pod状态 一直处于 ContainerCreating
Pod状态 处于 ImagePullBackOff
Pod状态 处于 CrashLoopBackOff
Pod状态 处于 Error
Pod状态 一直处于 Terminating
Pod状态 处于 Unknown

故障原因分析:

Pod --Pending状态

Pending 说明 Pod 还没有调度到某个 Node 上面。可以通过
kubectl describe pod <pod-name> 命令查看到当前 Pod 的事件,进而判断为什么没有调度。可能的原因包括资源不足,集群内所有的 Node 都不满足该 Pod 请求的 CPU、内存、GPU 等资源
HostPort 已被占用,通常推荐使用 Service 对外开放服务端口

Pod --Waiting 或 ContainerCreating状态

首先还是通过 kubectl describe pod <pod-name> 命令查看到当前 Pod 的事件。可能的原因包括镜像拉取失败,比如配置了镜像错误、Kubelet 无法访问镜像、私有镜像的密钥配置错误、镜像太大,拉取超时等CNI 网络错误,一般需要检查 CNI 网络插件的配置,比如无法配置 Pod 、无法分配 IP 地址容器无法启动,需要检查是否打包了正确的镜像或者是否配置了正确的容器参数

Pod – ImagePullBackOff状态

这也是我们测试环境常见的,通常是镜像拉取失败。这种情况可以使用 docker pull <image> 来验证镜像是否可以正常拉取。或者docker images | grep <images>查看镜像是否存在(系统有时会因为资源问题自动删除一部分镜像)

Pod – CrashLoopBackOff状态
CrashLoopBackOff 状态说明容器曾经启动了,但可能又异常退出了。此时可以先查看一下容器的日志
kubectl logs kubectl logs --previous
这里可以发现一些容器退出的原因,比如

容器进程退出
健康检查失败退出

Pod --Error 状态
通常处于 Error 状态说明 Pod 启动过程中发生了错误。常见的原因包括

依赖的 ConfigMap、Secret 或者 PV 等不存在
请求的资源超过了管理员设置的限制,比如超过了 LimitRange 等
违反集群的安全策略,比如违反了 PodSecurityPolicy 等
容器无权操作集群内的资源,比如开启 RBAC 后,需要为 ServiceAccount 配置角色绑定

Pod --Terminating 或 Unknown 状态
从 v1.5 开始,Kubernetes 不会因为 Node 失联而删除其上正在运行的 Pod,而是将其标记为 Terminating 或 Unknown 状态。想要删除这些状态的 Pod 有三种方法:

从集群中删除该 Node。使用公有云时,kube-controller-manager 会在 VM 删除后自动删除对应的 Node。而在物理机部署的集群中,需要管理员手动删除 Node(如 kubectl delete node <node-name>。
Node 恢复正常。Kubelet 会重新跟 kube-apiserver 通信确认这些 Pod 的期待状态,进而再决定删除或者继续运行这些 Pod。
用户强制删除。用户可以执行 kubectl delete pods <pod> --grace-period=0 --force 强制删除 Pod。除非明确知道 Pod 的确处于停止状态(比如 Node 所在 VM 或物理机已经关机),否则不建议使用该方法。
特别是 StatefulSet 管理的 Pod,强制删除容易导致脑裂或者数据丢失等问题。

Pod – Evicted状态

出现这种情况,多见于系统内存或硬盘资源不足,可df-h查看docker存储所在目录的资源使用情况,如果百分比大于85%,就要及时清理下资源,尤其是一些大文件、docker镜像。清除状态为Evicted的pod:kubectl get pods | grep Evicted | awk '{print $1}' | xargs kubectl delete pod删除所有状态异常的pod:kubectl delete pods $(kubectl get pods | grep -v Running | cut -d ' ' -f 1)删除集群中没有在使用的docker镜像(慎用):docker system prune -a查看pod对应的服务(镜像)版本:kubectl --server=127.0.0.1:8888 get rc -o yaml | grep image: |uniq | sort | grep ecs-core附:删除某类历史镜像(仅保留当前使用的)docker images | grep ecs-core | grep -v `docker images | grep ecs-core -m 1 | awk '{print $2}'` | awk '{print $3}' | xargs docker rmi -f

Pod 常见错误及故障排查相关推荐

  1. K8S集群中Node节点资源不足导致Pod无法运行的故障排查思路

    K8S集群中Node节点资源不足导致Pod无法运行的故障排查思路 文章目录 K8S集群中Node节点资源不足导致Pod无法运行的故障排查思路 1.Node节点资源不足可能会产生的故障 2.Node节点 ...

  2. nbu无法运行java控制台_Netbackup:nbu常见错误及故障解决

    Veritas Netbackup 提供了强大的故障响应功能, 能够有效及时的处理 各种备份故障. 主要有备份状态码(status) .错误信息.报告信息及调试日志. 下面我们主要针对备份状态码讲解下 ...

  3. K8S集群中Pod资源常见的异常状态以及排查思路

    K8S集群中Pod资源常见的异常状态以及排查思路 1.Pod资源的结构 Pod资源中会有一个基础容器Pause容器,每一个Pod资源下都会有一个Pause容器,Pause容器负责创建一个虚拟网络和存储 ...

  4. 桌面虚拟化XenDesktop常见故障排查宝典

    XD故障排查宝典(1) XenServer安装时注意一定配置正确的时区和时间. 建议使用NTP来同步时间. 如果时区不对,或者时间有问题,会使虚机时间不对,影响VDA注册等一系列问题. 使用XenSe ...

  5. 电脑音箱常见故障排查技巧

    电脑音箱常见故障排查技巧 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" ...

  6. NFS服务常见故障排查和解决方法

    NFS,全名叫Network File System,中文叫网络文件系统,是Linux.UNIX系统的分布式文件系统的一个组成部分,可实现在不同网络上共享远程文件系统.NFS由Sun公司开发,目前已经 ...

  7. 贝加莱工控机维修主板维修5PC600.SX01-00常见故障排查

    KRONES PC机维修贝加莱工控机维修5PC600.SX01-00,5PC600.FLRP-K :贝加莱5PC600.SX05-00:5PC600.SX02-01等型号. 常见故障:工控机无显示.自 ...

  8. 有线电视显示无服务器,有线电视常见故障排查指南!只需这几招,就能轻松搞定...

    原标题:有线电视常见故障排查指南!只需这几招,就能轻松搞定 有线数字电视机顶盒可能会出现的一些故障该怎么办? 节目内容无法正常收视 ♦1.如果您的有线数字电视服务时限尚未到期,但因为长时间不使用机顶盒 ...

  9. 【安全】Kerberos相关问题进行故障排除| 常见错误和解决方法

    1.概述 转载 为了学习:Kerberos相关问题进行故障排除| 常见错误和解决方法 2.总结 可以用来帮助诊断Kerberos相关问题的原因并实施解决方案的指南. 3. 症状 单击症状链接转到相应的 ...

最新文章

  1. 使用VMware虚拟机安装Windows8系统
  2. dubbo源码解析(三十五)集群——cluster
  3. 邮政社招笔试题库_工商银行招聘考试题库13套和参考答案
  4. GNS3 cloud 连接错误_远程桌面连接服务器身份验证错误要求的函数不受支持
  5. C++morse code 摩尔斯电码算法(附完整源码)
  6. 【枭·音频】感同声受——《暗影火炬城》PS5 HD震动制作
  7. Firefox, IE等不同浏览器对JavaScript,CSS不同解析问题 (转备以后使用)
  8. 【渝粤题库】陕西师范大学200401 初等代数研究 作业(专升本)
  9. 《计算机网络自顶向下》知识体系完全梳理
  10. Javascript基础之-原型(prototype)
  11. 元素凸起效果_被誉为作物“生殖元素”的“硼”到底有多重要?看完你就明白了...
  12. python如何加载图片_python如何导入图片
  13. pygame 文字输入交互_如何在pygame中创建交互式对象?
  14. win7开机动画_win7系统怎么修改开机动画 win7系统开机动画修改方法
  15. roc_curve()的用法及用途
  16. 汤小丹计算机操作系统慕课版课后题答案第三章:处理机调度与死锁
  17. 外贸常用术语_外贸价格一些常用的专业术语
  18. Allegro PCB Design GXL (legacy) - 设置旋转角度的快捷键
  19. XAML与XML的区别
  20. PHP中的网络编程 -- Socket篇

热门文章

  1. 2021年绵阳东辰中学高考成绩查询,绵阳市所有高中学校排名,2021年绵阳市重点高中分数线排名榜...
  2. ThinkPHP漏洞总结复现
  3. mysql触发器和oracle,MySQL与Oracle 差异比较之六触发器
  4. 南岸焊接机器人厂_焊接机器人
  5. 计算机应用基础教师带教方案,论文实施方案范文
  6. 学习笔记0330----linux软件安装卸载
  7. 【解决方案】如何基于EasyCVR智能分析技术构建城市智慧警务可视化综合监管平台?
  8. google 浏览器迅雷支持
  9. 战地三服务器找不到了,战地3进不了游戏怎么办_战地3处理PunkBuster(PB)不能进游戏问题_快吧单机游戏...
  10. 快速导入快递单号查询快递物流的几种方法