Kubernetes 叢集的建議警示規則

Azure 監視器中的警示 會主動識別與 Azure 資源健康情況和效能相關的問題。 本文說明如何啟用和編輯針對 Kubernetes 叢集預先定義的一組建議計量警示規則。

警示規則的類型

Kubernetes 叢集使用兩種類型的計量警示規則。

警示規則類型 描述
Prometheus 計量警示規則 (預覽) 在適用於 PrometheusAzure 監視器受控服務中使用從 Kubernetes 叢集收集的計量數據。 這些規則需要 在您的叢集 上啟用 Prometheus,並儲存在 Prometheus 規則群組中。
平臺計量警示規則 使用從 AKS 叢集自動收集的計量,並儲存為 Azure 監視器警示規則

使用下列其中一種方法,為您的叢集啟用建議的警示規則。 您可以為相同的叢集啟用 Prometheus 和平台計量警示規則。

使用 Azure 入口網站,Prometheus 規則群組將會建立在與叢集相同的區域中。

  1. 從叢集的 [ 警示] 功能表中,選取 [ 設定建議]。

    AKS 叢集的螢幕快照,其中顯示 [設定建議] 按鈕。

  2. 可用的 Prometheus 和平臺警示規則會顯示為由 Pod、叢集和節點層級組織的 Prometheus 規則。 切換 Prometheus 規則群組以啟用該規則集。 展開群組以查看個別規則。 您可以保留預設值或停用個別規則,並編輯其名稱和嚴重性。

    啟用 Prometheus 警示規則的螢幕快照。

  3. 切換平台計量規則以啟用該規則。 您可以展開規則來修改其詳細數據,例如名稱、嚴重性和臨界值。

    啟用平台計量警示規則的螢幕快照。

  4. 選取一或多個通知方法來建立新的動作群組,或選取具有這組警示規則之通知詳細數據的現有動作群組。

  5. 按兩下 [ 儲存 ] 以儲存規則群組。

建立規則群組之後,您無法在入口網站中使用相同頁面來編輯規則。 針對 Prometheus 計量,您必須編輯規則群組以修改其中的任何規則,包括啟用尚未啟用的任何規則。 針對平台計量,您可以編輯每個警示規則。

  1. 從叢集的 [ 警示] 功能表中,選取 [ 設定建議]。 任何已建立的規則或規則群組都會標示為 已建立

  2. 展開規則或規則群組。 按兩下 [檢視 Prometheus 的規則群組] 和 [檢視平臺計量的警示規則]。

    檢視規則群組選項的螢幕快照。

  3. 針對 Prometheus 規則群組:

    1. 選取 [ 規則 ] 以檢視群組中的警示規則。

    2. 按下您要修改的規則旁邊的 [編輯] 圖示。 使用建立警示規則中的指引來修改規則。

      編輯 Prometheus 警示規則選項的螢幕快照。

    3. 當您完成群組中的編輯規則時,按兩下 [ 儲存 ] 以儲存規則群組。

  4. 針對平台計量:

    1. 按兩下 [編輯 ] 以開啟警示規則的詳細數據。 使用建立警示規則中的指引來修改規則。

      編輯平台計量規則選項的螢幕快照。

停用警示規則群組

停用規則群組以停止接收來自規則的警示。

  1. 檢視 Prometheus 警示規則群組或平臺計量警示規則,如編輯建議的警示規則中所述

  2. 從 [概 觀] 功能表中,選取 [ 停用]。

    停用規則群組的選項螢幕快照。

下表列出每個建議警示規則的詳細數據。 GitHub提供每個的原始程式碼,以及 Prometheus 社群的疑難解答指南

Prometheus 社群警示規則

叢集層級警示

警示名稱 描述 預設閾值 時間範圍 (分鐘)
KubeCPUQuotaOvercommit 配置給命名空間的CPU資源配額在過去5分鐘內超過叢集節點上可用的CPU資源超過50%。 >1.5 5
KubeMemoryQuotaOvercommit 配置給命名空間的記憶體資源配額在過去 5 分鐘內超過叢集節點上可用的記憶體資源超過 50%。 >1.5 5
因 OOM 而終止的容器數目大於 0 Pod 內的一或多個容器在過去 5 分鐘內因記憶體不足 (OOM) 事件而終止。 >0 5
KubeClientErrors Kubernetes API 要求中從 5xx 開始的用戶端錯誤率(HTTP 狀態代碼)超過過去 15 分鐘 API 要求總數的 1%。 >0.01 15
KubePersistentVolumeFillingUp 永續性磁碟區會填滿,且預期會用盡可用空間比率、已使用空間,以及過去 6 小時內可用空間的預測線性趨勢。 過去 60 分鐘會評估這些條件。 N/A 60
KubePersistentVolumeInodesFillingUp 在過去15分鐘內,永續性磁碟區內的inode少於3%。 <0.03 15
KubePersistentVolumeErrors 過去 5 分鐘,一或多個永續性磁碟區處於失敗或擱置階段。 >0 5
KubeContainerWaiting Kubernetes Pod 內的一或多個容器在過去 60 分鐘內處於等候狀態。 >0 60
KubeDaemonSetNotScheduled 過去15分鐘內,不會在任何節點上排程一或多個Pod。 >0 15
KubeDaemonSetMisScheduled 在過去15分鐘內,叢集中有一或多個Pod排程錯誤。 >0 15
KubeQuotaAlmostFull Kubernetes 資源配額的使用率在過去 15 分鐘硬性限制的 90% 到 100% 之間。 >0.9 <1 15

節點層級警示

警示名稱 描述 預設閾值 時間範圍 (分鐘)
KubeNodeUnreachable 過去15分鐘無法連線到節點。 1 15
KubeNodeReadinessFlapping 節點的整備狀態在過去 15 分鐘內已變更超過 2 次。 2 15

Pod 層級警示

警示名稱 描述 預設閾值 時間範圍 (分鐘)
平均 PV 使用率大於 80% Pod 上的永續性磁碟區 (PVs) 平均使用量在過去 15 分鐘內超過 80%。 >0.8 15
KubeDeploymentReplicasMismatch 所需的複本數目與過去 10 分鐘的可用複本數目不符。 N/A 10
KubeStatefulSetReplicasMismatch StatefulSet 中的就緒複本數目與 StatefulSet 中過去 15 分鐘內的複本總數不符。 N/A 15
KubeHpaReplicasMismatch 叢集中的水準 Pod 自動調整程式在過去 15 分鐘內不符合所需的複本數目。 N/A 15
KubeHpaMaxedOut 叢集中的水準 Pod 自動調整程式 (HPA) 在過去 15 分鐘內已以最大複本執行。 N/A 15
KubePodCrashLooping 一或多個 Pod 處於 CrashLoopBackOff 條件中,Pod 會在啟動後持續損毀,且在過去 15 分鐘內無法成功復原。 >=1 15
KubeJobStale 在過去6小時內,至少有一個作業實例未成功完成。 >0 360
Pod 容器在過去 1 小時內重新啟動 Kubernetes 叢集中 Pod 內的一或多個容器至少在過去一小時內重新啟動一次。 >0 15
Pod 的就緒狀態小於 80% 過去 5 分鐘內,處於就緒狀態的 Pod 百分比低於 Kubernetes 叢集中任何部署或精靈集的 80%。 <0.8 5
處於失敗狀態的 Pod 數目大於 0。 過去 5 分鐘內,一或多個 Pod 處於失敗狀態。 >0 5
KubePodNotReadyByController 過去15分鐘內,一或多個Pod未處於就緒狀態(也就是「擱置」或「未知」階段。 >0 15
KubeStatefulSetGenerationMismatch 觀察到的 Kubernetes StatefulSet 世代與過去 15 分鐘的元數據產生不符。 N/A 15
KubeJobFailed 過去 15 分鐘內,一或多個 Kubernetes 作業失敗。 >0 15
每個容器的平均 CPU 使用率大於 95% 過去5分鐘,每個容器的平均CPU使用量超過95%。 >0.95 5
每個容器的平均記憶體使用率大於 95% 過去5分鐘,每個容器的平均記憶體使用量超過95%。 >0.95 10
KubeletPodStartUpLatencyHigh Pod 啟動延遲的第 99 個百分位數在過去 10 分鐘內超過 60 秒。 >60 10

平臺計量警示規則

警示名稱 描述 預設閾值 時間範圍 (分鐘)
節點 CPU 百分比大於 95% 過去 5 分鐘節點 CPU 百分比大於 95%。 95 5
節點記憶體工作集百分比大於 100% 過去 5 分鐘節點記憶體工作集百分比大於 95%。 100 5

舊版容器深入解析計量警示 (預覽)

容器深入解析中的計量規則將於 2024 年 5 月 31 日淘汰(先前已於 2026 年 3 月 14 日宣佈)。 自 2023 年 8 月 15 日以來,這些規則尚未可供使用入口網站建立。 這些規則處於公開預覽狀態,但將會在未達到正式運作的情況下淘汰,因為本文所述的新建議計量警示現已推出。

如果您已經啟用這些舊版警示規則,您應該停用這些規則並啟用新的體驗。

停用計量警示規則

  1. 從叢集的 [深入解析] 功能表中,選取 [建議的警示][預覽]。
  2. 將每個警示規則的狀態變更為 [已停用]。

下一步