如何获取Kubernetes Pod所有可能的状态取值完整列表?
Pod状态完整列表的获取渠道
你可以从两个最权威的来源获取所有Pod状态的完整取值,完全适配你当前使用的集群版本:
- 第一是Kubernetes API的标准定义,
kubectl get pods输出的STATUS列核心取值来自Pod的phase字段,官方定义的固定相位值共5种:Pending、Running、Succeeded、Failed、Unknown - 第二是直接调用本地kubectl的内置说明,执行
kubectl explain pod.status.phase命令就能直接输出当前集群版本支持的所有Pod相位取值和定义,不会出现版本差异导致的取值不匹配问题
注意:你在STATUS列看到的除上述5种基础相位之外的其他状态(比如CrashLoopBackOff、ImagePullBackOff、Terminating等)都属于Pod的临时容器状态,不是Pod的核心相位值,这类状态的完整列表可以通过
kubectl explain pod.status.containerStatuses.state命令查询对应字段的枚举取值。
如果需要直接统计各状态的Pod数量,可直接使用以下命令:
统计核心相位的Pod数量:
kubectl get pods -A -o jsonpath='{range .items[*]}{.status.phase}{"\n"}{end}' | sort | uniq -c
统计包含容器临时状态的全维度结果:
kubectl get pods -A --no-headers | awk '{print $4}' | sort | uniq -c
内容的提问来源于stack exchange,提问作者Dave Pearce
相关产品推荐
相关产品推荐

