[K8S] 使用 kubectl logs 監看全部具有同樣標籤的 pod log
最近專案裡會碰到大量友軍部署的 Kubernetes Pods,
在找問題的時候,時常會需要去查看 pod log。
但是,因為對友軍部署的 pod 不熟,
通常很難確定哪個 pod 會產生我想要看到的 log,
對每一個 pod 下 kubectl logs
指令也很累…
上網查了一下,原來標籤 (Label) 的好處這時可以派上用場~
以此次為例,我要查的 pod 都處在 my-app 這個命名空間 (namespace),
而且它們正好都有一個 app=runner 的標籤,
因此我可以這麼下指令,監看所有有 app=runner 標籤的 pod 的 log:
kubectl -n my-app logs -l app=runner --all-containers -f --max-log-requests=100
這上面還加了 --max-log-requests
的參數,
不然如果 pod 數太多時,會收到錯誤訊息 (不過也可以遇到時再設就好),
這樣可以同時看到所有 pod 的 log,雖然比較雜亂,
但如果是在重現 (reproduce) 一個問題時,就可以看到所有的流程,
要找問題就方便許多了~^^
參考資料:logging – How do I get logs from all pods of a Kubernetes replication controller?
(本頁面已被瀏覽過 307 次)