kubectl get podで”Completed”のPodをフィルタリングする

2023.03.04
2024.03.24
Kubernetes
kubectl

はじめに

kubectl get podでPodのSTATUSがCompletedになっているPodをフィルタして表示する方法を紹介します。

PodのStatusがCompletedでフィルタ

下記のようにPodのSTATUSカラムがCompletedになっているPodをフィルタして表示させます。

1❯ kubectl get pod
2NAME                       READY   STATUS      RESTARTS   AGE
3myapp-1                    0/1     Completed   0          26m
4myapp-2-7bc59c599d-5sjhj   1/1     Running     0          29m
5myapp-2-7bc59c599d-fwb5m   1/1     Running     0          29m
6myapp-2-7bc59c599d-svbxl   1/1     Running     0          29m

--field-selectorを使って、status.phaseで下記のようにフィルタします。この時のphaseCompletedではなく、Succeededになります。

1kubectl get pod --field-selector=status.phase=Succeeded
1kubectl get pod --field-selector=status.phase!=Succeeded

実際に試してみると、下記のようになります。

1❯ kubectl get pod --field-selector=status.phase=Succeeded
2NAME      READY   STATUS      RESTARTS   AGE
3myapp-1   0/1     Completed   0          33m
4
5❯ kubectl get pod --field-selector=status.phase!=Succeeded
6NAME                       READY   STATUS    RESTARTS   AGE
7myapp-2-7bc59c599d-5sjhj   1/1     Running   0          37m
8myapp-2-7bc59c599d-fwb5m   1/1     Running   0          37m
9myapp-2-7bc59c599d-svbxl   1/1     Running   0          37m

kubectl get podで表示されるSTATUSカラムはPodのステータスをいい感じに表示してくれているので、STATUSがCompletedであるPodをフィルタする場合は、status.phase=Succeededでフィルタする必要があります。

(おまけ)phaseの確認

下記コマンドでstatus.phaseの値を表示できます。

1kubectl get pod -o=custom-columns='NAME:metadata.name,STATUS PHASE:status.phase'
1❯ kubectl get pod -o=custom-columns='NAME:metadata.name,STATUS PHASE:status.phase'
2NAME                       STATUS PHASE
3myapp-1                    Succeeded
4myapp-2-7bc59c599d-5sjhj   Running
5myapp-2-7bc59c599d-fwb5m   Running
6myapp-2-7bc59c599d-svbxl   Running

参考

Support

\ この記事が役に立ったと思ったら、サポートお願いします! /

buy me a coffee
Share

Profile

author

Masa

都内のIT企業で働くエンジニア
自分が学んだことをブログでわかりやすく発信していきながらスキルアップを目指していきます!

buy me a coffee