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

i042416發表於2018-11-20

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

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

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

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

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

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

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

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

image

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

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

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

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

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

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

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

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

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

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

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

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

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

下圖是修改後的yaml檔案:

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

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

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

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

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2220817/,如需轉載,請註明出處,否則將追究法律責任。

相關文章