はじめに
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で下記のようにフィルタします。この時の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参考
- Check Kubernetes Pod Status for Completed State - Stack Overflow
- Podのライフサイクル | Kubernetes
- Kubernetes: kubectl 上の Pod のステータス表記について - Qiita
- kubernetes/printers.go at master · kubernetes/kubernetes
Share
関連記事
【Linkerd】実際に動かしてざっくり理解するLinkerd
2022.09.12
【kubectl status】リソースの状態を取得する
2022.12.17
【Kubernetes】SOPSとageでSecretのマニフェストを暗号化
2025.03.21
【Kubernetes】StatefulSetについて理解する
2023.02.23




