1. 程式人生 > >通過describe命令學習Kubernetes的pod屬性詳解

通過describe命令學習Kubernetes的pod屬性詳解

我們可以首先使用kubectl get pods命令得到pod列表,比如我們想研究pod nginx-storage-pod的明細:

使用命令kubectl describe pod nginx-storage-pod > nginx-storage-pod.yaml, 將describe命令的輸出重定向到一個yaml檔案裡。用vi開啟這個yaml檔案:

pod的所有屬性可以從這個yaml檔案裡學習:

node:shoot–k8s-train–shacw46-worker-prvfv-z1-7844dc6744-ghd5m/10.250.0.6

表明pod所在的node,這個node一定是命令kubectl get node返回的結果之一:

image

Image:代表該pod是基於哪一個docker image建立的。

Mount:該pod使用的persistent volume對應的物理檔案目錄,我的例子是.usr/share/nginx/html

這個路徑從哪裡來的呢?就是我的pod檔案的yaml檔案裡的定義:

describe命令除了本文介紹的可以用來深入學習pod的屬性外,還可以用於pod不能正常啟動時的錯誤排查。

比如我有一個pod名為another3,狀態一直處於CrashLoopBackOff, RESTART次數為12:

使用kubectl describe pod another3就可以看到這個容器啟動的明細:Back-off restarting failed container

仔細檢查pod的yaml檔案,發現原因是因為我定義了volume的name為content-storage,但是沒有指定persistentvolumeclaim。當我把volumes: - name: content-storage刪除之後,

下圖是修改後的yaml檔案:

重新建立名為another3的pod,很快就建立成功並且狀態處於running了:

要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":