在Kubernetes的使用上,觀看各個Pod的Log,對於Debug以及了解內部運行狀況是非常有幫助的。
監控集群的各種資源使用率,對於集群的穩定也是相當重要。要做到這些事情,目前有很多好用的第三方套件可以做到,像是著名的ELK stack、Prometheus。
但是這次鐵人賽主要專注的點為考取CKA證照所需要的知識上,所以這部分就不會詳談,如果想要了解的話,可以透過那些名詞去搜尋,會找到很多有用的文章。
之前有介紹過,一個Pod內可以存在多個Containers,而有一種常見的使用方式是會有一個主要的App Container和一個輔助的Container,前者裡面主要是放一些應用程式,像是我們網站的後端程式之類的,而後者輔助的Container,我們稱之為Sidecar Container。
Sidecar Container常見的使用方式就是我們在裡面放置Log Agent,來蒐集App Container的Log,再將這些Logn送入負責處理Log的程式,像是ELK的L:Logstash。
而如果想要從Command Line來看各個Pod運行的Log該怎麼做呢?
# 查看Pod的Log, counter是Pod的名字
kubectl logs counter
# 如果這個Pod有多個Containers,可以使用-c來指定Container nginx
kubectl logs counter -c nginx
# 前面都是一次性的Log,可以使用-f來讓Log持續輸出
kubectl logs -f counter
# 更詳細的資訊可以透過說明來確認
kubectl logs --help
監控系統資源使用率,除了可以使用Prometheus等工具,我認為最簡單的應該是Metrics-Server。
接下來我們來看看Metrics-Server要怎麼使用~
# 先安裝當前最新版的Metrics-Server v0.6.1
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.6.1/components.yaml
# 這時候就可以開始使用top指令
# 查看Node的資源使用率
kubectl top node
# 也可以指定哪個Node
kubectl top node node1
# 也可以查看Pod的資源使用率
kubectl top pod
# 指定Pod
kubectl top pod nginx
明天會討論要如何幫Pod設定環境變數~
https://github.com/kubernetes-sigs/metrics-server/releases