本文已超過一年。較舊的文章可能包含過時的內容。請檢查頁面中的資訊自發布以來是否已變得不正確。

Kubernetes:監控指南

容器技術正以迅雷不及掩耳之勢席捲基礎架構世界。雖然容器解決或簡化了基礎架構管理流程,但它們也引入了重大的協調複雜性。這正是 Kubernetes 來拯救我們的地方。就像指揮家指揮樂團一樣,Kubernetes 監管我們的容器組合——自動啟動、停止、建立和銷毀它們,以保持我們的應用程式平穩運行。

Kubernetes 透過建立諸如 Pod服務 等抽象層級,使容器化基礎架構的管理變得更加容易。我們不再需要擔心應用程式在哪裡運行,或者它們是否有足夠的資源來正常工作。但這並沒有改變這樣一個事實,即為了確保良好的效能,我們需要監控我們的應用程式、運行它們的容器以及 Kubernetes 本身。

重新思考 Kubernetes 時代的監控

正如容器徹底改變了我們對在虛擬機器上運行服務的看法一樣,Kubernetes 也改變了我們與容器互動的方式。好消息是,透過適當的監控,Kubernetes 固有的抽象層級提供了基礎架構的全面視圖,即使容器和應用程式不斷移動。但 Kubernetes 監控需要我們重新思考和調整我們的策略,因為它與監控傳統主機(如 VM 或實體機器)在幾個方面有所不同。

標籤 (Tags) 和標籤 (Labels) 變得至關重要
由於容器及其協調完全由 Kubernetes 管理,因此標籤現在是我們與 Pod 和容器互動的唯一方式。這就是它們對於監控絕對至關重要的原因,因為所有指標和事件都將使用 標籤 在基礎架構的不同層級中進行切片和切塊。使用邏輯且易於理解的架構定義您的標籤至關重要,這樣您的指標才會盡可能有用。

現在有更多組件需要監控

在傳統的、以主機為中心的基礎架構中,我們習慣於僅監控兩個層級:應用程式和運行它們的主機。現在,由於中間有容器,並且 Kubernetes 本身也需要監控,因此有四個不同的組件需要監控和收集指標。

應用程式不斷移動
Kubernetes 根據調度策略動態調度應用程式,因此您並不總是知道應用程式在哪裡運行。但它們仍然需要被監控。這就是為什麼使用具有服務發現功能的監控系統或工具是必須的。它將自動調整指標收集以適應移動的容器,以便可以不間斷地持續監控應用程式。

為分散式叢集做好準備

Kubernetes 具有在多個資料中心和可能不同的雲端供應商之間分散容器化應用程式的能力。這意味著必須在所有這些不同來源之間收集和匯總指標。

 

有關所有這些 Kubernetes 固有的新監控挑戰以及如何克服它們的更多詳細資訊,我們最近發布了深入的 Kubernetes 監控指南。本系列第 1 部分涵蓋如何調整您的監控策略以適應 Kubernetes 時代。

要監控的指標

無論您使用 Heapster 數據還是與 Kubernetes 及其不同 API 集成的監控工具,都有幾種類型的關鍵指標需要密切追蹤

  • 正在運行的 Pod 及其部署
  • 常見的 資源指標,例如 CPU、記憶體使用率和磁碟 I/O
  • 容器原生的 指標
  • 應用程式指標,為此,您的監控工具中的服務發現功能至關重要

所有這些指標都應使用 Kubernetes 標籤進行匯總,並與來自 Kubernetes 和容器技術的事件相關聯。

 

關於 Kubernetes 監控的系列文章 第 2 部分 將引導您了解需要收集和追蹤的所有數據。

收集這些指標

無論您是想透過結合 Heapster、儲存後端和繪圖工具來追蹤這些關鍵效能指標,還是透過將監控工具與基礎架構的不同組件整合,關於 Kubernetes 指標收集的 第 3 部分 都涵蓋了您所需的一切。

 

揚帆起航!

使用 Kubernetes 大大簡化了容器管理。但它要求我們在幾個方面重新思考我們的監控策略,並確保來自不同組件的所有關鍵指標都得到正確的收集、匯總和追蹤。我們希望我們的監控指南能幫助您有效地監控您的 Kubernetes 叢集。意見和建議 非常歡迎。