从 kubectl 输出显示失败的 pod

2024-04-20

我想写一个包装kubectl仅显示失败的 Pod,这意味着它应该只显示 Ready 列值不相同的项目(即0/1, 0/2, 1/2, 2/3, etc.)

$ kubectl get pods --all-namespaces
NAMESPACE       NAME                                        READY     STATUS             RESTARTS   AGE
default         pod-with-sidecar                            1/2       ErrImagePull       0          39s
kube-system     calico-node-chcqq                           2/2       Running            2          7d
kube-system     calico-policy-controller-6449789dd6-z5t5j   1/1       Running            0          7d
kube-system     etcd                                        1/1       Running            0          7d
kube-system     kube-apiserver                              1/1       Running            2          7d
kube-system     kube-controller-manager                     1/1       Running            0          7d
kube-system     kube-dns-5c76d6bddb-8zhmq                   3/3       Running            1          7d
kube-system     kube-proxy-xq8j6                            1/1       Running            0          7d
kube-system     kube-scheduler-                             1/1       Running            0          7d
kube-system     tiller-deploy-5b7cb9cfd7-j725s              1/1       Running            0          7d
my-system       glusterfs-brick-0                           0/2       Pending            0          3m
my-system       sticky-scheduler-6d968f8d74-xvjqn           0/1       ImagePullBackOff   0          4m

所以从上面的输出我想打印这些失败的豆荚

NAMESPACE       NAME                                        READY     STATUS             RESTARTS   AGE
default         pod-with-sidecar                            1/2       ErrImagePull       0          4m
my-system       glusterfs-brick-0                           0/2       Pending            0          56s
my-system       sticky-scheduler-6d968f8d74-xvjqn           0/1       ImagePullBackOff   0          8m

这有效!

$ kubectl get pods --all-namespaces | grep -vE '1/1|2/2|3/3'

NAMESPACE       NAME                                        READY     STATUS             RESTARTS   AGE
default         pod-with-sidecar                            1/2       ErrImagePull       0          4m
my-system       glusterfs-brick-0                           0/2       Pending            0          56s
my-system       sticky-scheduler-6d968f8d74-xvjqn           0/1       ImagePullBackOff   0          8m

但如果我有的话那就行不通2/4,0/4,0/5,0/6等在Ready专栏,我能做什么grep -vE '1/1|2/2|3/3'使其适用于所有此类情况

参考:https://github.com/kubernetes/kubernetes/issues/49387 https://github.com/kubernetes/kubernetes/issues/49387


使用 GNU grep:

 | grep -Ev '([0-9]+)/\1'

Output:



NAMESPACE       NAME                                        READY     STATUS             RESTARTS   AGE
default         pod-with-sidecar                            1/2       ErrImagePull       0          39s
my-system       glusterfs-brick-0                           0/2       Pending            0          3m
my-system       sticky-scheduler-6d968f8d74-xvjqn           0/1       ImagePullBackOff   0          4m
  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 kubectl 输出显示失败的 pod 的相关文章

随机推荐