関連記事

zshでkubectl補完
2022.01.11

【Backstage】ローカルでKubernetesと連携してみる
2024.06.21

【Kubernetes】SOPSとageでSecretのマニフェストを暗号化
2025.03.21

【Kubernetes】emptyDirとは
2022.06.02




kubectl get podでPodのSTATUSがCompletedになっているPodをフィルタして表示する方法を紹介します。
下記のように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で下記のようにフィルタします。この時のphaseはCompletedではなく、Succeededになります。
1kubectl get pod --field-selector=status.phase=Succeeded1kubectl 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 37mkubectl 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