отображать неисправные модули из вывода kubectl - PullRequest
1 голос
/ 19 июня 2019

Я хочу написать оболочку на kubectl для отображения только неисправных модулей, что означает, что в нем должны отображаться только те элементы, у которых значения столбца Ready не совпадают (т.е. 0/1, 0/2, 1/2, 2/3, и т. Д.)

$ 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

Но это не сработает, если у меня в столбце Ready и т. Д. *1013*, что я могу сделать с grep -vE '1/1|2/2|3/3', чтобы он работал во всех таких случаях

Ссылка: https://github.com/kubernetes/kubernetes/issues/49387

Ответы [ 2 ]

4 голосов
/ 19 июня 2019

С GNU grep:

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

Выход:

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
0 голосов
/ 21 июня 2019

Вы можете сделать это, используя --field-selector:

kubectl get pods --all-namespaces --field-selector=status.phase!=Running

Источник

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...