kubernetes k8s pod状态和查看详细状态
  AWkq7aIjuRwO 2023年11月02日 39 0

kubernetes k8s pod状态和查看详细状态_Pod


Pod的状态

[root@k8s-master1 ~]# kubectl get pods
NAME      READY   STATUS    RESTARTS      AGE
nginx-3   1/1     Running   2 (34m ago)   14h
#NAME Pod的名称
#READY 代表Pod里面有几个容器,前面是启动的后面是总数1/1
#STATUS就是当前Pod状态,最常见的就是Running正在运行,最期望的状态,只要不是RUnning的就说明有问题,就算是Running的就不一定没有问题

pod最终是运行在某一个node节点上的,他是通过scheduler根据内部的调度算法根据RBAC基于角色控制的方式来把一个pod和某一个node节点进行绑定,我们在创建之前是不知道最终运行在那个node节点上,我们需要调度器scheduler根据内部算法,把你这个pod指定某一个node节点之上,这个是根据内部调度算法生成的

Pod 状态及 Pod故障排查命令

状态

说明

Pending(挂起)

再执行创建pod过程中,命令行已经执行,pod已经被k8s系统接受,但仍有一个或多个容器未被创建,可以通过kubectl describe 查看处于Pending状态的原因

Running(运行中)

Pod 已经被绑定到一个节点上,并且所有的容器都已经被创建,而且至少有一个是运行状态,或者是正在启动或者重启,可以通过 kubectl logs 查看 Pod 的日志

Succeeded(成功)

所有容器执行成功并终止,并且不会再次重启,可以通过kubectl logs 查看Pod的日志

Failed(失败)

至少有一个容器没有正常退出,以失败告终,在Linux上每个命令都有个状态值和信号值,状态值正常是0-255之间正常状态值为0,容器的创建状态只要是非0就是异常的

Unknown(未知)

通常是是通信出问题了,不知道状态是啥通常是Uknown

imagePullBackOffErrimagePull(镜像拉取失败)

镜像拉取失败,一般是由于镜像不存在、网络不通或者需要登录认证引起的,可以使用 describe 命令查看具体原因

CrashLoopBackOff(容器启动失败)

容器启动失败,有可能是打的镜像文件本身就有问题,不能正常来启动,可以通过 logs 命令查看具体原因,一般为启动命令不正确,健康检查不通过等

OOMKilled(内存溢出)

内存溢出,运行的容器本身出现内存溢出,Tomcat JVM 栈 基于JVM做各种各样的内存限制,对容器本身要做资源限制,一旦容器本身资源不够了,我们对这个容器本身资源限制和JVM那种内存冲突了,比如JVM需要4个G,结果容器只给2个G,那这样就出现内存溢出,不够用,还有一种方式,程序本身有问题,JVM和容器内存限制都够用,还是内存溢出了JVM本身给的内存不够用造成的报错叫OOM内存溢出错误,一旦出现这种错误容器或者程序本身会自动kill掉,程序一旦自己把自己kill掉意味着容器就没了,这个OOM就是容器里面的程序内存溢出了,一般是内存limit设置太小

Terminating(终止)

Pod正在被删除,可以通过 describe 查看状态

SysctlForbidden(内核启动失败)

和Linux内核相关,在启动pod的时候加了一些内核的需求,但是没有开放需求,就会造成内核启动失败

Completed(主进程退出)

容器内部主进程退出, 一般计划任务执行结束会显示该状态

ContainerCreateing(创建容器)

Pod 正在创建, 一般为正在下载镜像, 或者有配置不当的地方, 可以通过 describe 查看具体原因

describe

[root@k8s-master1 ~]# kubectl describe pods nginx-3
Name:             nginx-3
#pod名字
Namespace:        default
#Namespace
Priority:         0
#优先级
Service Account:  default
#默认使用default 
Node:             k8s-node1.guoguo.com/192.168.1.101
#绑定的节点node1
Start Time:       Sun, 06 Aug 2023 17:32:26 +0800
#创建的时间
Labels:           app=nginx
#标签,如果我们没有加标签,会自动加一个标签如果是pod通常是run=pod名称
                  env=dev
Annotations:      cni.projectcalico.org/containerID: 
#资源注解
a121ada4cbabc46e302ba38008a7d6887f8f4035c8b42f781233f4fa3013bd96
                  cni.projectcalico.org/podIP: 192.26.131.132/32
                                        #pod的ip
                  cni.projectcalico.org/podIPs: 192.26.131.132/32
Status:           Running
#当前状态
IP:               192.26.131.132
#pod ip
IPs:
  IP:  192.26.131.132
Containers:
  nginx:
    Container ID:   containerd://57a204528d873a006134dcb7e58739b6adcbbd1b299d4b7e4984c451d47af86c
    Image:          harbor.guoguo.com/apps/ubuntu-nginx:1.22.1
    #镜像
    Image ID:       harbor.guoguo.com/apps/ubuntu-nginx@sha256:8818a74320ea5451b340d47faadba66cc9f582c9b734526c65076808412803a1
    Port:           80/TCP
    Host Port:      0/TCP
    State:          Running
      Started:      Mon, 07 Aug 2023 07:24:36 +0800
    Last State:     Terminated
      Reason:       Unknown
      Exit Code:    255
      Started:      Sun, 06 Aug 2023 21:17:40 +0800
      Finished:     Mon, 07 Aug 2023 07:23:29 +0800
    Ready:          True
    Restart Count:  2
    Environment:    <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-9lwkh (ro)
Conditions:
  Type              Status
  #类型           #状态
  Initialized       True
  #初始化          #成功
  Ready             True
  #准备           #成功
  ContainersReady   True
  #容器准备         #成功
  PodScheduled      True
  #pod调度        #成功
Volumes:
#卷组
  kube-api-access-9lwkh:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>
    DownwardAPI:             true
QoS Class:                   BestEffort
#服务类 
Node-Selectors:              <none>
#没有节点选择                 #为none就说明没有给Node-selectors提特殊的节点选择
Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                             node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:                      <none>


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

AWkq7aIjuRwO