創建 Kubernetes 集群並部署容器化應用只是第一步。一旦集群運行起來,我們需要確保一起正常,所有必要組件就位並各司其職,有足夠的資源滿足應用的需求。Kubernetes 是一個復雜系統,運維團隊需要有一套工具幫助他們獲知集群的實時狀態,並為故障排查提供及時和准確的數據支持。
本章重點討論 Kubernetes 常用的監控方案,下一章會討論日志管理。
Weave Scope
Weave Scope 是 Docker 和 Kubernetes 可視化監控工具。Scope 提供了至上而下的集群基礎設施和應用的完整視圖,用戶可以輕松對分布式的容器化應用進行實時監控和問題診斷。
安裝 Scope
安裝 Scope 的方法很簡單,執行如下命令:
kubectl apply --namespace kube-system -f "https://cloud.weave.works/k8s/scope.yaml?k8s-version=$(kubectl version | base64 | tr -d '\n')"
部署成功后,有如下相關組件:
-
DaemonSet
weave-scope-agent
,集群每個節點上都會運行的 scope agent 程序,負責收集數據。 -
Deployment
weave-scope-app
,scope 應用,從 agent 獲取數據,通過 Web UI 展示並與用戶交互。 -
Service
weave-scope-app
,默認是 ClusterIP 類型,為了方便已通過kubectl edit
修改為NodePort
。
使用 Scope
瀏覽器訪問 http://192.168.56.106:30693/
,Scope 默認顯示當前所有的 Controller(Deployment、DaemonSet 等)。
拓撲結構
Scope 會自動構建應用和集群的邏輯拓撲。比如點擊頂部 PODS
,會顯示所有 Pod 以及 Pod 之間的依賴關系。
點擊 HOSTS
,會顯示各個節點之間的關系。
實時資源監控
可以在 Scope 中查看資源的 CPU 和內存使用情況。
支持的資源有 Host、Pod 和 Container。
在線操作
Scope 還提供了便捷的在線操作功能,比如選中某個 Host,點擊 >_
按鈕可以直接在瀏覽器中打開節點的命令行終端:
點擊 Deployment 的 +
可以執行 Scale Up 操作:
可以查看 Pod 的日志:
可以 attach、restart、stop 容器,以及直接在 Scope 中排查問題:
強大的搜索功能
Scope 支持關鍵字搜索和定位資源。
還可以進行條件搜索,比如查找和定位 MEMORY > 100M
的 Pod。
Weave Scope 界面極其友好,操作簡潔流暢,更多功能留給大家去探索。
下一節我們學習 Heapster。
書籍:
1.《每天5分鍾玩轉Kubernetes》
https://item.jd.com/26225745440.html
2.《每天5分鍾玩轉Docker容器技術》
https://item.jd.com/16936307278.html
3.《每天5分鍾玩轉OpenStack》
https://item.jd.com/12086376.html