[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 次)