使用 Azure 監視器監視 Kubernetes 的最佳做法

本文提供監視 Azure Kubernetes Service (AKS)已啟用 Azure Arc 的 Kubernetes 叢集健全狀況和效能的最佳做法。 此指導方針是以 Azure Well-Architected Framework 中所述卓越的五大架構要素為基礎。

可靠性

在雲端中,我們知道失敗在所難免。 此目標不是試著完全避免失敗,而是將單一故障元件的影響降至最低。 使用下列資訊充分利用 Azure 監視器,以確保 Kubernetes 叢集和監視環境的可靠性。

設計檢查清單

  • 為叢集啟用 Prometheus 計量的抓取功能。
  • 啟用容器深入解析,以便從叢集收集記錄和效能資料。
  • 建立診斷設定以收集 AKS 叢集的控制平面記錄。
  • 啟用建議的 Prometheus 警示。
  • 確保支援容器深入解析的 Log Analytics 工作區可用性。

組態建議

建議 優點
為叢集啟用 Prometheus 計量的抓取功能。 如果還沒有 Prometheus 環境,請在叢集上使用適用於 Prometheus 的 Azure 監視器受控服務啟用 Prometheus。 使用 Azure 受控 Grafana 來分析收集到的 Prometheus 資料。 請參閱在適用於 Prometheus 的 Azure 監視器受控服務中自訂 Prometheus 計量的擷取,以收集超出預設設定的其他計量。
啟用容器深入解析,以便從叢集收集記錄和效能資料。 容器深入解析會從叢集中的每個節點收集 stdout/stderr 記錄、效能計量和 Kubernetes 事件。 它提供用於分析此資料的儀表板和報告,包括節點和其他元件的可用性。 使用 Log Analytics 識別收集的記錄中的任何可用性錯誤。
建立診斷設定以收集 AKS 叢集的控制平面記錄。 AKS 將控制平面記錄實作為 Azure 監視器中的資源記錄建立診斷設定以將這些記錄傳送至 Log Analytics 工作區,以便使用記錄查詢來識別影響可用性的錯誤和問題。
啟用建議的 Prometheus 警示。 偵測到問題時,Azure 監視器中的警示會主動通知您。 先從一組建議的 Prometheus 警示規則開始,偵測叢集最常見的可用性和效能問題。 可以使用容器深入解析收集的資料,新增記錄搜尋警示
確保支援容器深入解析的 Log Analytics 工作區可用性。 容器深入解析會依賴 Log Analytics 工作區。 如需確保工作區可靠性的建議,請參閱 Azure 監視器記錄的最佳做法

安全性

安全性是任何架構中最重要的其中一個層面。 Azure 監視器提供了採用最低權限和深度防禦準則的功能。 使用下列資訊來監視 Kubernetes 叢集,並確保只有授權的使用者存取收集的資料。

設計檢查清單

  • 使用叢集的受控識別驗證連線到容器深入解析。
  • 請考慮使用叢集的 Azure 私人連結,透過私人端點連線到 Azure 監視器工作區。
  • 使用流量分析來監視傳入和傳出叢集的網路流量。
  • 啟用網路可檢視性。
  • 確保支援容器深入解析的 Log Analytics 工作區的安全性。

組態建議

建議 優點
使用叢集的受控識別驗證連線到容器深入解析。 受控識別驗證是新叢集的預設值。 如果使用舊版驗證,您應該移轉至受控識別以移除憑證型本機驗證。
請考慮使用叢集的 Azure 私人連結,透過私人端點連線到 Azure 監視器工作區。 Prometheus 的 Azure 受控服務會將其資料儲存在預設使用公用端點的 Azure 監視器工作區中。 透過端對端加密來保護與公用端點的連線。 如果您需要私人端點,您可以使用 Azure 私人連結,讓叢集透過授權的私人網路連線到工作區。 私人連結還可以用於透過 ExpressRoute 或 VPN 強制擷取工作區資料。

如需為私人連結設定叢集的詳細資訊,請參閱受管 Prometheus 和 Azure 監視器工作區的資料擷取的私人連結。 如需使用私人連結查詢資料的詳細資訊,請參閱使用受控 Prometheus 和 Azure 監視器工作區的私人端點
使用流量分析來監視傳入和傳出叢集的網路流量。 流量分析可以分析 Azure 網路監看員 NSG 流量記錄,讓您深入解析 Azure 雲端中的流量。 使用此工具可確保叢集沒有資料外泄,並偵測是否公開了任何不必要的公用 IP。
啟用網路可檢視性。 AKS 的網路可檢視性附加元件提供在 Kubernetes 網路堆疊中的多層可檢視性。 監視並觀察叢集中服務 (東西向流量) 之間的存取權。
確保支援容器深入解析的 Log Analytics 工作區的安全性。 容器深入解析會依賴 Log Analytics 工作區。 如需確保工作區安全性的建議,請參閱 Azure 監視器記錄的最佳做法

成本最佳化

成本最佳化是指設法減少不必要的費用,並提升營運效率。 您可以了解不同設定選項和機會來減少 Azure 監視器收集的資料量,藉此大幅降低其成本。 查看 Azure 監視器成本和使用量,了解 Azure 監視器收費的不同方式,以及如何檢視每月帳單。

注意

如需 Azure 監視器所有功能的成本最佳化建議,請參閱將 Azure 監視器中的成本最佳化

設計檢查清單

  • 請勿啟用 Prometheus 計量的容器深入解析收集。
  • 設定代理程式收集以修改容器深入解析中的資料收集。
  • 依容器深入解析修改計量資料的收集設定。
  • 如果您未在 Azure 入口網站中使用容器深入解析體驗,請停用計量資料的容器深入解析收集。
  • 如果您未定期查詢容器記錄資料表,或將其用於警示,請將其設定為基本記錄。
  • 限制非必要資源記錄的收集。
  • 使用 AKS 資源記錄的資源專屬記錄,並將資料表設定為基本記錄。
  • 使用 OpenCost 收集 Kubernetes 成本的詳細資料。

組態建議

建議 優點
如果您已透過 Prometheus 啟用計量抓取,請勿在 Log Analytics 工作區中啟用 Prometheus 計量的容器深入解析收集。 除了使用適用於 Prometheus 的 Azure 監視器受控服務從叢集中抓取 Prometheus 計量之外,還可以設定容器深入解析來收集 Log Analytics 工作區中的 Prometheus 計量。 這與受控 Prometheus 中的資料重複,而且會產生額外成本。
設定代理程式以修改容器深入解析中的資料收集。 分析容器深入解析收集的資料,如控制擷取以降低成本中所述,並調整您的設定,以停止收集不需要的資料。
依容器深入解析修改計量資料的收集設定。 若要深入了解如何修改計量資料收集的頻率和容器深入解析所收集的命名空間,請參閱啟用成本最佳化設定
如果您未在 Azure 入口網站中使用容器深入解析體驗,請停用計量資料的容器深入解析收集。 容器深入解析會收集許多與受控 Prometheus 相同的計量值。 若要停用這些計量的收集,您可以將容器深入解析設定為只收集記錄和事件,如在容器深入解析中啟用成本最佳化設定中所述。 此設定會停用 Azure 入口網站中的容器深入解析體驗,但您可以使用 Grafana 將 Prometheus 計量和 Log Analytics 視覺化,以分析容器深入解析所收集的記錄資料。
如果您未定期查詢容器記錄資料表,或將其用於警示,請將其設定為基本記錄。 將您的容器深入解析結構描述轉換為 ContainerLogV2,其可與基本記錄相容,而且可以節省大量成本,如控制擷取以降低成本中所述。
限制非必要資源記錄的收集。 AKS 叢集的控制平面記錄會實作為 Azure 監視器中的資源記錄。 建立診斷設定以將此資料傳送至 Log Analytics 工作區。 如需您應該收集哪些類別的建議,請參閱收集 AKS 叢集的控制平面記錄
使用 AKS 資源記錄的資源專屬記錄,並將資料表設定為基本記錄。 AKS 可支援資源記錄的 Azure 診斷模式或資源專屬模式。 指定資源記錄以啟用針對基本記錄設定資料表的選項,這可針對偶爾查詢且不會用於警示的記錄減少擷取費用。
使用 OpenCost 收集 Kubernetes 成本的詳細資料。 OpenCost 是開放原始碼的廠商中立 CNCF 沙箱專案,可讓您了解 Kubernetes 成本,並可支援 AKS 成本可見度。 其可將客戶專屬的 Azure 定價和詳細的成本資料匯出至 Azure 儲存體,以協助叢集管理員分析及分類成本。

卓越營運

卓越營運是指服務在生產環境中可靠地執行所需的作業程式。 使用下列資訊,將監視 Kubernetes 叢集的作業需求降到最低。

設計檢查清單

  • 檢閱有關監視 Kubernetes 環境所有層級的指導方針。
  • 使用已啟用 Azure Arc 的 Kubernetes 來監視 Azure 外部的叢集。
  • 將 Azure 受控服務用於雲端原生工具。
  • 將 AKS 叢集整合到現有的監視工具中。
  • 使用 Azure 原則啟用從 Kubernetes 叢集收集資料。

組態建議

建議 優點
檢閱有關監視 Kubernetes 環境所有層級的指導方針。 使用容器深入解析監視 Kubernetes 叢集效能,包含從網路、叢集和應用程式層監視整個 Kubernetes 環境的指導方針和最佳做法。
使用已啟用 Azure Arc 的 Kubernetes 來監視 Azure 外部的叢集。 已啟用 Azure Arc 的 Kubernetes 可讓您使用與 AKS 叢集相同的工具監視在其他雲端中執行的 Kubernetes 叢集,包括容器深入解析和適用於 Prometheus 的 Azure 監視器受控服務。
將 Azure 受控服務用於雲端原生工具。 適用於 PrometheusAzure 受控 Grafana 的 Azure 監視器受控服務支援雲端原生工具 Prometheus 和 Grafana 的所有功能,而無需操作其基礎結構。 您可以最低的負擔快速佈建這些工具,並將 Kubernetes 叢集上線。 透過這些服務可讓您存取廣泛的社群規則和儀表板程式庫,以監視 Kubernetes 環境。
將 AKS 叢集整合到現有的監視工具中。 如果已對 Prometheus 和 Grafana 有所投資,請使用使用 Azure 服務和雲端原生工具來監視 Kubernetes 叢集中的指導方針,將 AKS 叢集和 Azure 受控服務整合到現有的環境中。
使用 Azure 原則啟用從 Kubernetes 叢集收集資料。 使用 Azure 原則啟用資料收集,以便啟用 Prometheus 計量容器深入解析診斷設定。 這可確保自動監視任何新的叢集,並強制執行其監視設定。

效能效益

效能效率可讓您的工作負載進行調整,以有效率的方式符合使用者對其放置的需求。 使用下列資訊來監視 Kubernetes 叢集的效能,並確保它們的設定可實現最高效能。

設計檢查清單

  • 為叢集啟用 Prometheus 計量的收集。
  • 啟用容器深入解析來追蹤叢集的效能。
  • 啟用建議的 Prometheus 警示。

組態建議

建議 優點
為叢集啟用 Prometheus 計量的收集。 Prometheus 是由 Cloud Native Compute Foundation 推出的雲端原生計量解決方案,也是從 Kubernetes 叢集收集和分析計量資料時最常用的工具。 如果還沒有 Prometheus 環境,請在叢集上使用適用於 Prometheus 的 Azure 監視器受控服務啟用 Prometheus。 使用 Azure 受控 Grafana 來分析收集到的 Prometheus 資料。

請參閱在適用於 Prometheus 的 Azure 監視器受控服務中自訂 Prometheus 計量的擷取,以收集超出預設設定的其他計量。
啟用容器深入解析來追蹤叢集的效能。 當您為 Kubernetes 叢集啟用容器深入解析時,您可以使用檢視活頁簿來追蹤叢集元件的效能。 此資料可能與 Prometheus 收集的資料重疊。 如需有關成本的建議,請參閱成本最佳化
啟用建議的 Prometheus 警示。 偵測到問題時,Azure 監視器中的警示會主動通知您。 先從一組建議的 Prometheus 警示規則開始,偵測叢集最常見的可用性和效能問題。 可以使用容器深入解析收集的資料,新增記錄搜尋警示

後續步驟