Kubernetes Pod 基本介紹
Pod 是 Kubernetes 中 最小的可部署單位(Smallest Deployable Unit),通常包裝一個或多個高度相關的容器,這些容器:
- 共用同一個 網路命名空間(IP / Port)
- 可以透過
localhost彼此通訊 - 可以掛載相同的 Volume 來共享資料

一個 Pod 內可以包含一個主容器(main container)與一個或多個側車容器(sidecar containers)。
查看 Kubernetes 文件,了解 Pod
若要深入了解 Pod 的設計與欄位,可以參考:
-
透過
kubectl直接查說明:kubectl explain pod
kubectl explain pod.spec
kubectl explain pod.spec.containers
Pod 基本操作
以下示範幾個常見的 Pod 操作指令(假設 Namespace 為 default,可依實際情況調整)。
查看 default namespace 下的所有 Pod
kubectl get pods
查看所有 namespace 的 Pod
kubectl get pods -A
查看 Pod 列表
kubectl get pods -o wide
檢視 Pod 詳細資訊
describe 會顯示事件、節點、Volume 等詳細資
kubectl describe pod <pod-name>
顯示更多欄位(IP、Node 等
kubectl get pods -o wide
以 YAML 格式輸出 Pod 定義
kubectl get pod <pod-name> -o yaml
查看 Log
kubectl logs <pod-name>
若 Pod 內有多個容器,可以指定容器名稱:
kubectl logs <pod-name> -c <container-name>
進入容器執行指令
透過 exec 進入容器互動式操作:
kubectl exec -it <pod-name> -- /bin/sh
或
kubectl exec -it <pod-name> -c <container-name> -- /bin/bash
刪除 Pod
一般刪除 Pod:
kubectl delete pod <pod-name>
若 Pod 卡在 Terminating 狀態,且是由 Deployment / ReplicaSet 管理的,建議先將對應的 Deployment 副本數調整為 0,再強制刪除該 Pod:
kubectl scale deployment <deployment-name> --replicas=0
kubectl -n delete pod --grace-period=0 --force
Dry-Run(模擬執行)
Dry-Run 用於: 在不真正建立資源的前提下,測試 YAML 是否正確、或產生出 Kubernetes 物件的 YAML 範本。
模擬執行不真正建立資源
kubectl apply -f pod.yaml --dry-run=client
直接用指令產生 YAML 範本(不真正建立)
kubectl run mypod --image=nginx --dry-run=client -o yaml
搭配 -o yaml 输出 YAML,方便產生範本
kubectl create deployment myapp --image=nginx --dry-run=client -o yaml
很常用來快速產生可編輯的 YAML 再存成檔案。