通過開啟Container Service警示管理功能,可以統一管理容器的警示,包括Container Service例外狀況事件警示、叢集相關基礎資源的關鍵計量警示、叢集核心組件及叢集中應用的指標警示等。還可以通過CRD方式修改叢集中預設建立的警示規則,及時感知叢集中異常變化。
計費說明
警示功能的資料來源是通過Log ServiceSLS、可觀測監控 Prometheus 版和CloudMonitor,觸發警示後發送的簡訊、電話等通知會產生額外費用。在開啟警示功能之前,可根據預設警示規則模板確認每個警示項的來源,並開通所需的服務。
發送警示源 | 配置要求 | 計費詳情 |
Log ServiceSLS | 開啟事件監控;啟用警示管理功能時,事件監控會預設開啟。 | |
可觀測監控 Prometheus 版 | 為叢集配置使用阿里雲Prometheus監控。 | 免費 |
CloudMonitor |
開啟警示管理功能
開啟警示管理功能後,可以為叢集內指定的資源設定指標警示,並在異常情況發生時自動接收警示通知,以便更高效地管理和維護叢集,確保服務的穩定運行。相關資源警示詳情請參見預設警示規則模板。
ACK託管叢集
選擇已有叢集開啟警示配置,或建立新叢集時啟用警示配置。
已有叢集中開啟
登入Container Service管理主控台,在左側導覽列選擇叢集列表。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇。
在警示配置頁面,按照頁面指引進行組件的安裝或升級。
安裝升級完成後,進入警示配置頁面配置警示資訊。
頁簽
說明
警示規則管理
啟動狀態:用於開啟或關閉目標警示規則集。
編輯通知對象:設定警示通知的連絡人分組。
設定前,需先建立連絡人和分組,並將連絡人加入分組。通知對象僅支援連絡人分組,如需通知單人,可將該連絡人單獨建組後選擇該分組。
警示歷史
目前可查看最近1天內發送的最新100條記錄。
單擊警示規則列下的連結,可以跳轉到對應監控系統中查看詳細規則配置。
單擊排查現場,可以快速定位到異常發生的資源頁面(例外狀況事件、指標異常的資源)。
單擊智能分析,可通過計算 AI 助手協助分析問題並提供處理指導。
連絡人管理
對連絡人進行管理,可建立、編輯或刪除連絡人。
連絡方式:
電話/簡訊:設定連絡人的手機號碼後,可以通過電話和簡訊的方式接收警示通知。
僅驗證過的手機號碼可以在通知策略中使用電話的通知方式,驗證手機號的操作,請參見驗證手機號。
郵箱:設定連絡人的郵箱地址後,可以通過郵箱接收警示通知。
機器人:DingTalk機器人、企業微信機器人和飛書機器人。
DingTalk機器人需要追加安全關鍵字: 警示、指派。
郵箱和機器人設定前,可以先在CloudMonitor控制台中驗證,以便接收警示資訊。
連絡人分組管理
對連絡人分組進行管理,可建立、編輯或刪除連絡人分組。編輯通知對象僅支援選擇連絡人分組。
當無連絡人分組時,控制台會在阿里雲帳號註冊資訊中同步建立一個預設連絡人分組。
建立叢集時開啟
在建立叢集的組件配置頁面,勾選警示配置右側使用預設警示模板配置警示,並選擇警示通知連絡人分組。具體操作,請參見建立ACK託管叢集。

建立叢集時開啟警示配置後,系統將會開啟預設警示規則,並預設發送警示通知到預設的連絡人分組,也可自訂修改警示連絡人或警示聯絡組。
ACK專有叢集
ACK專有叢集需要先為Worker RAM角色授權,再開啟預設警示規則。
為Worker RAM角色授權
登入Container Service管理主控台,在左側導覽列選擇叢集列表。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇叢集資訊。
在叢集資訊頁面,在叢集資源地區,複製Worker RAM角色右側的名稱,並單擊連結進入RAM存取控制控制台為該Worker RAM角色授權。
建立如下自訂權限原則。請參見通過指令碼編輯模式建立自訂權限原則。
{ "Action": [ "log:*", "arms:*", "cms:*", "cs:UpdateContactGroup" ], "Resource": [ "*" ], "Effect": "Allow" }在角色頁面,搜尋定位該Worker RAM角色,為其授予以上建立的自訂權限原則。具體操作,請參見方式一:在RAM角色頁面為RAM角色授權。
說明:為簡化操作,本文檔授予了較寬泛的許可權。在生產環境中,建議您遵循最小許可權原則,僅授予必要的許可權。
在角色頁面,搜尋定位該Worker RAM角色,為其授予以上建立的自訂權限原則。具體操作,請參見方式一:在RAM角色頁面為RAM角色授權。
通過日誌查看警示功能存取權限是否已配置。
在目的地組群管理頁左側導覽列,選擇。
選擇命名空間為kube-system,單擊無狀態應用列表中alicloud-monitor-controller的名稱連結。
單擊日誌頁簽,可看到授權成功的Pod日誌。
開啟預設警示配置規則
在目的地組群頁左側導覽列,選擇營運管理 > 警示配置。
在警示配置頁面,配置如下警示資訊。
頁簽
說明
警示規則管理
啟動狀態:用於開啟或關閉目標警示規則集。
編輯通知對象:設定警示通知的連絡人分組。
設定前,需先建立連絡人和分組,並將連絡人加入分組。通知對象僅支援連絡人分組,如需通知單人,可將該連絡人單獨建組後選擇該分組。
警示歷史
目前可查看最近1天內發送的最新100條記錄。
單擊警示規則列下的連結,可以跳轉到對應監控系統中查看詳細規則配置。
單擊排查現場,可以快速定位到異常發生的資源頁面(例外狀況事件、指標異常的資源)。
單擊智能分析,可通過計算 AI 助手協助分析問題並提供處理指導。
連絡人管理
對連絡人進行管理,可建立、編輯或刪除連絡人。
連絡方式:
電話/簡訊:設定連絡人的手機號碼後,可以通過電話和簡訊的方式接收警示通知。
僅驗證過的手機號碼可以在通知策略中使用電話的通知方式,驗證手機號的操作,請參見驗證手機號。
郵箱:設定連絡人的郵箱地址後,可以通過郵箱接收警示通知。
機器人:DingTalk機器人、企業微信機器人和飛書機器人。
DingTalk機器人需要追加安全關鍵字: 警示、指派。
郵箱和機器人設定前,可以先在CloudMonitor控制台中驗證,以便接收警示資訊。
連絡人分組管理
對連絡人分組進行管理,可建立、編輯或刪除連絡人分組。編輯通知對象僅支援選擇連絡人分組。
當無連絡人分組時,控制台會在阿里雲帳號註冊資訊中同步建立一個預設連絡人分組。
配置警示規則
警示配置功能開啟後,預設會在kube-system命名空間下建立一個名為AckAlertRule類型的CRD資源配置,包含預設警示規則模板。可通過修改此CRD資源來修改預設警示規則,以配置符合要求的Container Service警示規則。
控制台
登入Container Service管理主控台,在左側導覽列選擇叢集列表。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇。
在警示規則管理頁簽,單擊右上方編輯警示配置,然後單擊目標規則列右側操作列下的YAML,即可查看當前叢集中的AckAlertRule資源配置。
可參考預設警示規則模板說明,根據實際需求修改 YAML 檔案內容。
警示規則配置 YAML 樣本如下:
rules.thresholds(參數見下表)可自訂警示閾值。例如上述樣本配置:當叢集節點 CPU 使用率超過 85%,連續 3 次達到閾值,且距離上一次警示已超過 900 秒時,將觸發警示通知。參數名
是否必選
說明
預設值
CMS_ESCALATIONS_CRITICAL_Threshold必選
警示配置閾值。未配置時規則將同步失敗並關閉。
unit:表示單位,可配置為percent、count或qps。value:閾值。
根據預設警示模板配置而定。
CMS_ESCALATIONS_CRITICAL_Times可選
CloudMonitor規則重試判斷次數。未配置時取預設值。
3
CMS_RULE_SILENCE_SEC可選
CloudMonitor持續發送異常觸發規則時,初次上報警示後靜默期時間長度(單位:秒),防止過於頻繁警示。未配置時取預設值。
900
kubectl
使用以下命令編輯警示規則的 YAML 檔案。
kubectl edit ackalertrules default -n kube-system可參考預設警示規則模板說明,根據實際需求修改 YAML 檔案內容,編輯完成後儲存並退出即可。
通過
rules.thresholds,可靈活自訂警示閾值。例如上述樣本配置:當叢集節點 CPU 使用率超過 85%,連續 3 次達到閾值,且距離上一次警示已超過 900 秒時,將觸發警示通知。參數名
是否必選
說明
預設值
CMS_ESCALATIONS_CRITICAL_Threshold必選
警示配置閾值。未配置時規則將同步失敗並關閉。
unit:表示單位,可配置為percent、count或qps。value:閾值。
根據預設警示模板配置而定。
CMS_ESCALATIONS_CRITICAL_Times可選
CloudMonitor規則重試判斷次數。未配置時取預設值。
3
CMS_RULE_SILENCE_SEC可選
CloudMonitor持續發送異常觸發規則時,初次上報警示後靜默期時間長度(單位:秒),防止過於頻繁警示。未配置時取預設值。
900
預設警示規則模板
以下警示項同步自Log Service SLS、阿里雲 Prometheus 和CloudMonitor,可在警示配置頁面,目標警示項的警示管理列下的進階設定查看各自的警示規則配置。
警示處理指導
節點磁碟達到閾值觸發 Pod 驅逐(Evicted)
警示資訊
(combined from similar events): Failed to garbage collect required amount of images. Attempted to free XXXX bytes, but only found 0 bytes eligible to free問題現象
Pod 狀態顯示為 Evicted。Node 節點出現磁碟壓力(The node had condition: [DiskPressure].)
警示原因
節點磁碟空間使用達到驅逐閾值(預設 85%),預設kubelet會進行壓力驅逐,GC回收一些無用的鏡像檔案,導致 Pod 被驅逐(Evicted)。可以登入目標節點,通過df -h 命令查看磁碟使用方式。
解決方案
登入目標節點(containerd runtime環境),使用如下命令清理無用容器鏡像,釋放磁碟空間。k
crictl rmi --prune清理日誌或擴容節點磁碟
對目標節點資料盤/雲端硬碟進行快照備份,備份完成後,結合業務情況判斷,刪除不再需要的檔案或目錄。詳情請參見解決Linux執行個體磁碟空間滿問題。
對目標節點線上擴容系統硬碟或資料盤以提升儲存能力。具體操作參考擴容節點系統硬碟或資料盤。
調整相關閾值。
根據實際業務需求調整 kubelet 的鏡像回收(garbage collection)閾值,以減少節點因磁碟佔用過高導致的 Pod 驅逐。具體操作請參見自訂節點池kubelet配置。
節點磁碟使用率達到或超過 85% 時,將收到相關警示。可根據實際業務需求,通過配置警示規則,在 YAML 配置中的
node_disk_util_high警示規則項修改警示閾值。
建議與預防措施
對於頻繁出現該類問題的節點,建議評估應用實際儲存需求,合理規劃資源申請和節點磁碟容量。
建議定期關注儲存使用監控,及時發現並處理潛在風險。詳情請參見節點儲存監控大盤。
Pod OOMKilling
警示資訊
pod was OOM killed. node:xxx pod:xxx namespace:xxx uuid:xxx
問題現象
Pod狀態異常,且事件內容中出現PodOOMKilling。
解決方案
OOM 觸發位置分為節點級和容器CGroup級。
原因說明:
容器CGroup級OOM:Pod實際記憶體使用量超過為其設定的memory limits,被 Kubernetes cgroup 限制強制終止。
節點級OOM:通常發生在節點上運行了過多未設定資源限制(requests/limits)的Pod,或者某些進程(可能是非Kubernetes管理的進程)消耗了大量記憶體。
判斷方法:登入目標節點,執行命令
dmesg -T | grep -i "memory",輸出內容中出現類似out_of_memory即表示發生過OOM,如日誌輸出伴隨出現Memory cgroup即為容器CGroup級OOM,否則為節點級OOM。處理建議:
容器CGroup級OOM:
根據業務需求適當提升 Pod 的memory limits,建議實際用量不超過 limits 的 80%。相關操作,請參見管理容器組(Pod)、升降配節點資源。
啟用資源畫像,獲得容器requests/limits的推薦配置。
節點級OOM:
更多OOM現象出現的原因及解決方案,請參見出現OOM Killer的原因及解決方案。
Pod狀態為CrashLoopBackOff
當Pod內進程非預期退出,ACK會嘗試重啟此Pod,多次重啟後均無法達到終態即會表示為 CrashLoopBackOff狀態。排查路徑如下:
登入Container Service管理主控台,在左側導覽列選擇叢集列表。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇。
列表中找到異常的Pod,單擊目標右側操作列下的詳情。
檢查Pod事件,查看例外狀況事件的對應描述資訊進行分析。
查看Pod日誌,可能會記錄進程發生異常的原因。
說明當Pod已重啟,如需查看上一個Pod的日誌請勾選顯示上個容器退出時的日誌。
通過控制台最多隻能查看最近 500 行日誌。如需查看更多歷史日誌,建議接入日誌持久化方案進行統一採集與儲存。