本文發表於一年多前。舊文章可能包含過時內容。請檢查頁面中的資訊自發布以來是否已變得不正確。
Kubernetes:監控指南
容器技術正席捲基礎設施領域。雖然容器解決了或簡化了基礎設施管理流程,但它們也帶來了編排方面的顯著複雜性。這就是Kubernetes發揮作用的地方。就像指揮家指揮樂團一樣,Kubernetes 負責監督我們的容器集合——自動啟動、停止、建立和銷燬它們,以確保我們的應用程式平穩執行。
Kubernetes 透過建立像Pod和Service這樣的抽象層,極大地簡化了容器化基礎設施的管理。我們不再需要擔心應用程式在哪裡執行,或者它們是否有足夠的資源正常工作。但這並不能改變一個事實:為了確保良好的效能,我們需要監控我們的應用程式、執行它們的容器以及Kubernetes本身。
重新思考Kubernetes時代的監控
正如容器徹底改變了我們對在虛擬機器上執行服務的看法一樣,Kubernetes 也改變了我們與容器互動的方式。好訊息是,透過適當的監控,Kubernetes 固有的抽象層提供了基礎設施的全面檢視,即使容器和應用程式在不斷移動。但 Kubernetes 監控要求我們重新思考和調整我們的策略,因為它在幾個方面與監控傳統主機(如虛擬機器或物理機)不同。
標籤變得至關重要
由於容器及其編排完全由 Kubernetes 管理,標籤現在是我們與 Pod 和容器互動的唯一方式。這就是為什麼它們對於監控絕對至關重要,因為所有指標和事件都將使用基礎設施不同層級的標籤進行切片和分析。使用邏輯且易於理解的模式定義您的標籤至關重要,這樣您的指標才能儘可能有用。
現在需要監控的元件更多了
在傳統的以主機為中心的基礎設施中,我們習慣於只監控兩層:應用程式和執行它們的主機。現在,容器位於中間,Kubernetes 本身也需要監控,因此有四個不同的元件需要監控並從中收集指標。
應用程式不斷移動
Kubernetes 根據排程策略動態排程應用程式,因此您不總是知道應用程式在哪裡執行。但它們仍然需要被監控。這就是為什麼使用具有服務發現功能的監控系統或工具是必不可少的。它將自動調整指標收集以適應移動的容器,從而使應用程式能夠不間斷地持續監控。
為分散式叢集做好準備
Kubernetes 能夠將容器化應用程式分佈到多個數據中心以及潛在的不同雲提供商。這意味著必須在所有這些不同來源之間收集和聚合指標。
有關 Kubernetes 固有的所有這些新監控挑戰以及如何克服它們的更多詳細資訊,我們最近釋出了一份深入的 Kubernetes 監控指南。本系列的第一部分介紹瞭如何使您的監控策略適應 Kubernetes 時代。
要監控的指標
無論您使用Heapster資料還是與 Kubernetes 及其不同 API 整合的監控工具,都有幾種關鍵型別的指標需要密切跟蹤
- 執行中的 Pod 及其部署
- 常用的資源指標,例如 CPU、記憶體使用情況和磁碟 I/O
- 容器原生指標
- 應用程式指標,為此,您的監控工具中的服務發現功能至關重要
所有這些指標都應使用 Kubernetes 標籤進行聚合,並與來自 Kubernetes 和容器技術的事件相關聯。
我們關於 Kubernetes 監控系列的第二部分將指導您完成所有需要收集和跟蹤的資料。
收集這些指標
無論您是想透過結合 Heapster、儲存後端和圖形工具來跟蹤這些關鍵效能指標,還是透過將監控工具與您的基礎設施的不同元件整合來跟蹤,關於 Kubernetes 指標收集的第三部分都能為您提供幫助。
揚帆起航!
使用 Kubernetes 極大地簡化了容器管理。但這要求我們從幾個方面重新思考我們的監控策略,並確保從不同元件獲得的所有關鍵指標都得到正確收集、聚合和跟蹤。我們希望我們的監控指南能幫助您有效地監控您的 Kubernetes 叢集。歡迎反饋和建議。
- 在 GitHub 上參與 Kubernetes 專案
- 在 Stack Overflow 上提問(或回答問題)
- 在 Slack 上與社群聯絡
- 在 Twitter 上關注我們 @Kubernetesio 獲取最新更新