[K8S] 使用 kubectl stern 查詢多個 namespace 下的 pod log

[K8S] 使用 kubectl stern 查詢多個 namespace 下的 pod log

由於專案的程式在 Kubernetes 叢集上,建立了好幾個 namespace,

因此在查問題時,常常會需要查看跨 namespace 的 pod log,

這時如果用  kubectl logs 會有點麻煩,

得對每一個 namespace 下的每個 pod 都執行,很沒有效率…

 

上網找了一下,Stern 這個工具看來可以符合我們的需求~

先參考 使用 Krew 來安裝 resource-capacity 套件 這邊,把 Krew 裝起來,

接著就可以用 Krew 來安裝 Stern:

kubectl krew install stern

 

裝好之後,就可以開始用 Stern 了~

舉例來說,下面的指令可以將 test-app 和 test-app2 這兩個 namespace 下,

所有 app 標籤不等於 xxx 的 pod 的 log,從 1 秒前開始顯示:

kubectl stern -n test-app,test-app2 -l 'app!=xxx' -s 1s

 

至於為什麼要加這個  app!=xxx 的標籤選擇器,

是因為我不想要指定 pod 名稱,所以必須要給一個標籤的選擇器,

如果我想要全部的 pod 的話,

就用一個一定符合的條件 (本例中是 app 標籤不是 xxx 的) 就好囉~

 

下面是我拿 kube-system 和 default 這兩個 namespace 跑出來的樣子,

可以看到 kube-system namespace 下有不同的 pod 的 log 都同時出現,

因此如果要查某個跨 namespace 的事件時,會比較方便:

kube-system kube-controller-manager-k8s-master-27373575-0 kube-controller-manager I0403 11:04:30.393625       1 horizontal.go:1172] Successfully updated status for keda-hpa-endpoint-http-scaledobject
......
kube-system cloud-node-manager-tgqn2 cloud-node-manager Content-Length: 20085
kube-system cloud-node-manager-tgqn2 cloud-node-manager X-Ms-Correlation-Request-Id: becd605c-3296-4c98-8b6c-e1efa0ef3a5b
kube-system cloud-node-manager-tgqn2 cloud-node-manager Date: Mon, 03 Apr 2023 11:04:33 GMT
kube-system cloud-node-manager-tgqn2 cloud-node-manager Content-Type: application/json; charset=utf-8
......

 

(本頁面已被瀏覽過 255 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料