我们正在寻找未处于运行状态或存在问题的 Pod 列表。虽然下面的命令拉取吊舱详细信息包括好的吊舱,但我们只针对坏的吊舱
'kubectl get pods -A'
kubectl get pods --field-selector=status.phase=Failed
或者可以找到一些更好的规格这里。
您可以像 Samuel 建议的那样采用 kubectl 方式,或者更面向 bash 的方式。
这是我使用的一些以及我使用它们的时间
kubectl get po -A | grep Pending
寻找尚未安排的 Pod
kubectl get po -A | grep -v Running
寻找除“正在运行”之外的状态的 pod
kubectl get po -A -o wide | grep <IP>
查看给定节点的所有 Pod 状态
grep
是一个非常强大的 CLI 工具,支持正则表达式,可以帮助过滤 kubectl
命令的输出。
这是 grep 的手册页
这是一个我用来找出哪些命名空间有问题 pod 以及问题可能是什么的脚本。我称该脚本为
notrunning
kubectl get po -A --no-headers |
awk '
BEGIN {
SUBSEP=" "
format = "%-20s %20s %5s\n"
printf format, "NAMESPACE", "STATUS", "COUNT"
}
!/Running/ {a[$1,$4]++}
END {
for (i in a) {split(i,t); printf format, t[1],t[2],a[i]}
}
' | sort
我得到与此类似的结果:
$ notrunning
NAMESPACE STATUS COUNT
namespace-01 InvalidImageName 2
namespace-02 InvalidImageName 1
namespace-02 Init:ImagePullBackOff 1
namespace-03 CrashLoopBackOff 2
namespace-03 InvalidImageName 9
namespace-04 Init:ErrImagePull 1