【Kubernetes】K8s 查看 Pod 的状态

K8s 查看 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 1/1 1/1
  • STATUS:就是当前 Pod 状态,最常见的就是 Running 正在运行,最期望的状态,只要不是 Running 的就说明有问题,就算是 Running 的就不一定没有问题。
状态
说明
Pending
挂起
在执行创建 Pod 过程中,命令行已经执行,Pod 已经被 K8s 系统接受,但仍有一个或多个容器未被创建,可以通过 kubectl describe 查看处于 Pending 状态的原因。
Running
运行中
Pod 已经被绑定到一个节点上,并且所有的容器都已经被创建,而且至少有一个是运行状态,或者是正在启动或者重启,可以通过 kubectl logs 查看 Pod 的日志。
Succeeded
成功
所有容器执行成功并终止,并且不会再次重启,可以通过 kubectl logs 查看 Pod 的日志
Failed
失败
至少有一个容器没有正常退出,以失败告终,在 Linux 上每个命令都有个状态值和信号值,状态值正常是 0 − 255 0-255 0255 之间,正常状态值为 0 0 0,容器的创建状态只要是非 0 0 0 就是异常的。
Unknown
未知
通常是是通信出问题了,不知道状态是啥通常是 Uknown
imagePullBackOffErrimagePull
镜像拉取失败
镜像拉取失败,一般是由于镜像不存在、网络不通或者需要登录认证引起的,可以使用 describe 命令查看具体原因。
CrashLoopBackOff
容器启动失败
容器启动失败,有可能是打的镜像文件本身就有问题,不能正常来启动,可以通过 logs 命令查看具体原因,一般为启动命令不正确,健康检查不通过等。
OOMKilled
内存溢出
内存溢出,运行的容器本身出现内存溢出,Tomcat JVM 栈基于 JVM 做各种各样的内存限制,对容器本身要做资源限制,一旦容器本身资源不够了,我们对这个容器本身资源限制和 JVM 那种内存冲突了,比如 JVM 需要 4 个 G,结果容器只给 2 个 G,那这样就出现内存溢出,不够用;还有一种方式,程序本身有问题,JVM 和容器内存限制都够用,还是内存溢出了。JVM 本身给的内存不够用造成的报错叫 OOM 内存溢出错误,一旦出现这种错误,容器或者程序本身会自动 kill 掉,程序一旦自己把自己 kill 掉意味着容器就没了,这个 OOM 就是容器里面的程序内存溢出了,一般是内存限制设置太小。
Terminating
终止
Pod 正在被删除,可以通过 describe 查看状态。
SysctlForbidden
内核启动失败
和 Linux 内核相关,在启动 Pod 的时候加了一些内核的需求,但是没有开放需求,就会造成内核启动失败。
Completed
主进程退出
容器内部主进程退出, 一般计划任务执行结束会显示该状态。
ContainerCreateing
创建容器
Pod 正在创建, 一般为正在下载镜像, 或者有配置不当的地方, 可以通过 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:    
    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:       
    DownwardAPI:             true
QoS Class:                   BestEffort
#服务类 
Node-Selectors:              
#没有节点选择                 #为none就说明没有给Node-selectors提特殊的节点选择
Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                             node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:                      

你可能感兴趣的:(#,Kubernetes,kubernetes,容器,云原生,docker,pod,状态,devops)