Azure Kubernetes Service 的主動式監視最佳做法 (AKS)
本文涵蓋 Azure Kubernetes Service (AKS) 上主動式監視的最佳做法,並提供 AKS 建議用來監視的重要訊號的完整清單。
主動監視 AKS 叢集對於減少停機時間並節省應用程式業務中斷至關重要。 此程式牽涉到識別和監視叢集中可能導致重大問題或停機之異常行為的重要指標。
監視和警示概觀
在 AKS 上監視牽涉到使用計量、記錄和事件,以確保叢集的健康情況和效能。 監視的常見案例包括叢集中的節點效能、Pod 狀態和整體資源使用率。 記錄可讓您深入了解系統事件和叢集作業和活動。 如需 AKS 提供監視之方法和訊號的詳細資訊,請參閱 監視 Azure Kubernetes Service (AKS) 。
主動監視叢集的最佳方式是設定 Azure 監視器警示。 警示會作為主動措施,通知您潛在問題或異常,然後才會呈報到重大問題。 藉由定義關鍵計量和記錄的閾值,您可以在這些訊號超過預先定義的限制時立即收到警示,指出資源耗盡或應用程式失敗等潛在問題。 強烈建議您定義 應用程式的服務層級目標 (SLO), 以測量服務的效能和可靠性。 在 SLO 的關鍵訊號上設定警示,可讓您快速偵測客戶所收到應用程式服務品質的任何降低。 整體而言,設定及時的警示可讓您快速調查和補救問題,將停機時間降到最低,並確保在 AKS 叢集上執行的應用程式高可用性。
如何設定特定計量類型的警示
計量類型 | 在何處尋找這些計量 | 如何設定警示 |
---|---|---|
AKS 平台計量 | 透過 Azure 入口網站 中的 [計量] 刀鋒窗口檢視平台計量。 | 您可以透過 Azure 入口網站 建立、更新和刪除計量警示。 如需詳細資訊,請參閱 建立 Azure 資源的計量警示。 |
Azure 受控 Prometheus 計量 | 若要存取 Prometheus 計量,您必須啟用受控 Prometheus。 如需如何啟用和檢視 Prometheus 計量的詳細資訊,請參閱 Azure 監視器和 Prometheus。 | 如需設定 Prometheus 警示的指引,請參閱 適用於 Prometheus 規則群組的 Azure 監視器受控服務。 |
Azure 活動記錄 | 透過 Azure 入口網站 檢視活動記錄。 如需詳細資訊,請參閱 AKS 的 Azure 活動記錄。 | 透過 Azure 入口網站 設定活動記錄的警示。 如需詳細資訊,請參閱活動記錄警示。 |
Azure 虛擬機擴展集計量 | 透過 Azure 入口網站 檢視虛擬機擴展集計量。 | 1.若要尋找與您的節點集區相關聯的虛擬機擴展集實例,請流覽至 Azure 入口網站 中 AKS 叢集的 [設定>屬性] 刀鋒視窗。 2.選取您的 基礎結構資源群組 ,以檢視與叢集相關聯的基礎結構資源。 3.選取 符合您要為其建立警示之節點集區名稱的虛擬機擴展集實例 。 4.流覽至 [ 警示] 刀鋒視窗以建立計量警示。 |
Load Balancer 計量 | 透過 Azure 入口網站 中的 [Load Balancer] 頁面檢視負載平衡器計量。 | 1.若要尋找與您的節點集區相關聯的負載平衡器實例,請流覽至 Azure 入口網站 中 AKS 叢集的 [設定>屬性] 刀鋒視窗。 2.選取您的 基礎結構資源群組 ,以檢視與叢集相關聯的基礎結構資源。 3.選取負載平衡器實例,以顯示負載平衡器的 Azure 入口網站 頁面。 4.流覽至 [ 警示 ] 頁面,以建立負載平衡器計量警示。 |
記錄和事件 | 若要警示記錄和事件,您必須啟用 Container Insights。 如需詳細資訊,請參閱 Azure 監視器資源記錄。 | 如需在記錄和事件上建立警示的指引,請參閱 從容器深入解析建立記錄搜尋警示。 |
設定警示的重要訊號
若要全面涵蓋 AKS 環境,您必須在叢集的三個主要元件上設定警示:
- 叢集基礎結構:以叢集的基礎結構為目標的警示,例如節點、磁碟和網路功能。
- 應用程式健康情況:監視Pod和應用程式的健全狀況警示。 一些不良應用程式的常見指標包括 Pod 的記憶體不足終止(OOMKills),Pod 處於未就緒狀態等等。
- Kubernetes 控制平面:AKS 控制平面上的警示,可監視 API 伺服器、etcd 和其他元件的健全狀況和效能。
下列各節包含建議所有 AKS 客戶密切監視的重要訊號。 AKS 小組正努力將所有重要訊號新增至現有的 建議警示 功能,這可讓您輕鬆地啟用具有單鍵體驗之所有訊號的警示。 Prometheus 計量警示目前可在公開預覽版中取得,其餘警示估計可在 2025 年初推出。 目前,您可以手動設定重要訊號上的警示。
叢集基礎結構警示
警示案例 | 來源 | 訊號 | 建議的臨界值 |
---|---|---|---|
叢集處於失敗狀態 | Azure 活動記錄 | 建立或更新受控叢集 | 記錄的狀態為 [失敗],表示叢集升級或建立動作失敗。 |
節點集區處於失敗狀態 | Azure 活動記錄 | 建立或更新代理程式集區 | 記錄的狀態為失敗,表示節點集區處於失敗狀態,因為建立、讀取、升級或刪除 (CRUD) 作業失敗。 |
高節點 OS 磁碟頻寬使用量 | 虛擬機擴展集計量 | 已使用的 OS 磁碟頻寬百分比 | 節點 OS 磁碟頻寬使用率高於 95%。 |
高節點 OS 磁碟 IOPS 使用量 | 虛擬機擴展集計量 | 已使用的 OS 磁碟 IOPS 百分比 | 節點 OS 磁碟 IOPS 使用率高於 95%。 |
高節點 OS 磁碟空間使用量 | AKS 平台計量 | 磁碟已使用百分比 | 節點OS磁碟空間百分比使用率高於90%。 |
高節點CPU使用量 | AKS 平台計量 | CPU 使用量百分比 | 節點 CPU 使用量大於 90%。 |
高節點記憶體使用量 | AKS 平台計量 | 記憶體工作集百分比 | 節點記憶體使用量大於90%。 |
節點處於 NotReady 狀態 | AKS 平台計量 | 各種節點條件的狀態 | 節點處於 NotReady 狀態 >20 分鐘。 |
SNAT 連接埠耗盡 | Load Balancer (LB) 計量 | SNAT 連線計數 | 聯機狀態的篩選 = “Failed” |
應用程式健康情況警示
警示案例 | 來源 | 訊號 | 建議的臨界值 |
---|---|---|---|
大量狀況不良的Pod | Azure 受控 Prometheus 計量 | 警示名稱:KubePodReadyStateLow | 可作為 AKS 建議的警示。 若要啟用此警示,請參閱 Kubernetes 叢集的建議警示規則。 |
一或多個 Pod 正在重新啟動 | Azure 受控 Prometheus 計量 | 警示名稱:KubePodContainerRestart | 可作為 AKS 建議的警示。 若要啟用此警示,請參閱 Kubernetes 叢集的建議警示規則。 |
一或多個 Pod 處於 CrashLoop 狀態 | Azure 受控 Prometheus 計量 | 警示名稱:KubePodCrashLooping | 可作為 AKS 建議的警示。 若要啟用此警示,請參閱 Kubernetes 叢集的建議警示規則。 |
Kubernetes 控制平面警示
警示案例 | 來源 | 訊號 | 建議的臨界值 |
---|---|---|---|
ETCD 已填滿 | Azure 受控 Prometheus 計量 | etcd_mvcc_db_total_size_in_use_in_bytes | ETCD 使用率大於 2 GB |
API 伺服器太多要求錯誤 | Azure 受控 Prometheus 計量 | apiserver_request_total | 篩選錯誤碼 429 |
API Server Webhook 和通道錯誤 | Azure 受控 Prometheus 計量 | apiserver_request_total | 篩選錯誤碼 500 和 503 |
下一步
如需在 AKS 上監視的詳細資訊,請參閱下列文章: