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

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

1.Pod资源的结构

Pod资源中会有一个基础容器Pause容器,每一个Pod资源下都会有一个Pause容器,Pause容器负责创建一个虚拟网络和存储卷,Pod资源中的所有容器都会与Pause共享网络资源以及存储资源,同一个Pod中的多个容器直接通信可以使用localhost的形式直接通信。
在这里插入图片描述

2.Pod资源常见的几种故障状态

在这里插入图片描述

Pod资源常见的故障状态大致分为十种:

  • Running状态:处于Running状态Pod资源不一定可用,当Pod资源处于健康检查时也会显示Running状态,但是不一定可能,健康检查失败后会一直重启容器,此时也需要排查。一定要观察资源的READY是否两个值都一样,如果一样表示成功启动。

  • Pending状态:当Pod资源由于Node节点上的资源不够或者存储没有定义对的情况下,Pod资源会处于Pending挂起状态。

  • Waiting状态:当存储卷PVC挂载错误或者节点产生故障时,Pod资源hi处于Waiting等待状态。

  • ContainerCreateing状态:Pod处于正在创建的状态,如果长时间处于该状态,可能是由于调度的Node节点出现了问题。

  • ImagePullBackOff状态:当容器的镜像拉取失败,Pod就会处于该状态。

  • CrashLoopBackOff状态:当容器无法正常启动,可能是由于程序问题就会导致Pod资源处于该状态。

  • Error状态:Pod资源状态异常,需要查看详细信息和日志进行定位。

  • Terminating状态:Pod资源处于删除状态,通过观察详细信息和日志进行排查。

  • Unknown状态:Pod资源处于未知状态,通过观察详细信息和日志进行排查。

  • Evicted状态:Pod资源处于被驱赶的状态,可能是由于Node节点资源不足或者Node几点出发驱逐机制导致。

3.Pod资源状态异常的排查思路

1)首先排查出当前Pod资源处于什么状态。

kubectl get pod

2)当知道Pod处于什么状态后,通过查看Pod资源的详细信息获取更详细的描述。

kubectl describe pod <pod_name>

3)如何还是无法解决,那么久查询Pod中容器的运行日志。

kubectl logs -f <pod_name> -c <container>

猜你喜欢

转载自blog.csdn.net/weixin_44953658/article/details/124876889