集群監(jiān)控有哪些方式
云容器引擎CCE配合應(yīng)用運維管理AOM對集群進行全方位的監(jiān)控,在創(chuàng)建節(jié)點時會默認(rèn)安裝AOM的ICAgent(在集群kube-system命名空間下名為icagent的DaemonSet),ICAgent默認(rèn)采集集群底層資源以及運行在集群上負(fù)載的監(jiān)控數(shù)據(jù);另外,ICAgent還能采集負(fù)載的自定義指標(biāo)監(jiān)控數(shù)據(jù)。
資源監(jiān)控指標(biāo)
資源基礎(chǔ)監(jiān)控包含CPU/內(nèi)存/磁盤等,具體請參見資源監(jiān)控指標(biāo)。您可以在CCE控制臺從集群、節(jié)點、工作負(fù)載等維度查看這些監(jiān)控指標(biāo)數(shù)據(jù),也可以在AOM中查看。
自定義指標(biāo)
ICAgent采集應(yīng)用程序中的自定義指標(biāo)并上傳到AOM。
NPD監(jiān)控
node-problem-detector(簡稱:npd)是一款監(jiān)控集群節(jié)點異常事件的插件,以及對接第三方監(jiān)控平臺功能的組件。它是一個在每個節(jié)點上運行的守護程序,可從不同的守護進程中搜集節(jié)點問題并將其報告給apiserver。node-problem-detector可以作為DaemonSet運行, 也可以獨立運行。
CCE在NPD 1.16.0版本起做了功能增強,支持檢查節(jié)點常用資源、組件狀態(tài)和事件,并提供故障隔離功能。
資源監(jiān)控指標(biāo)
|
監(jiān)控指標(biāo)
|
指標(biāo)含義
|
|---|---|
CPU分配率 |
分配給工作負(fù)載使用的CPU占比。 |
內(nèi)存分配率 |
分配給工作負(fù)載使用的內(nèi)存占比。 |
CPU使用率 |
CPU使用率。 |
內(nèi)存使用率 |
內(nèi)存使用率。 |
磁盤使用率 |
磁盤使用率。 |
下行速率 |
一般指從網(wǎng)絡(luò)下載數(shù)據(jù)到節(jié)點的速度,單位KB/s。 |
上行速率 |
一般指從節(jié)點上傳網(wǎng)絡(luò)的速度,單位KB/s。 |
磁盤讀取速率 |
每秒從磁盤讀出的數(shù)據(jù)量,單位KB/s。 |
磁盤寫入速率 |
每秒寫入磁盤的數(shù)據(jù)量,單位KB/s。 |
查看集群監(jiān)控數(shù)據(jù)
在集群監(jiān)控界面可查看集群所有節(jié)點(不含控制節(jié)點)近一小時的CPU指標(biāo)和內(nèi)存指標(biāo)。
監(jiān)控名詞解釋:
- CPU分配率 = 集群下運行的Pod CPU配額申請值(Request)之和 / 集群下所有節(jié)點(不含控制節(jié)點)的CPU可分配量之和
- 內(nèi)存分配率 = 集群下運行的Pod 內(nèi)存配額申請值(Request)之和 / 集群下所有節(jié)點(不含控制節(jié)點)的內(nèi)存可分配量之和
- CPU使用率 = 集群下所有節(jié)點(不含控制節(jié)點)上實際使用的CPU使用率的平均值。
- 內(nèi)存使用率 = 集群下所有節(jié)點(不含控制節(jié)點)上實際使用的內(nèi)存使用率的平均值。
查看節(jié)點監(jiān)控數(shù)據(jù)
除了在集群監(jiān)控界面查看所有節(jié)點監(jiān)控數(shù)據(jù)外,您還可以查看單個節(jié)點的監(jiān)控數(shù)據(jù)。
監(jiān)控數(shù)據(jù)來源于AOM,可查看節(jié)點的監(jiān)控數(shù)據(jù)包括CPU、內(nèi)存、磁盤、網(wǎng)絡(luò)、GPU等。
查看工作負(fù)載的監(jiān)控數(shù)據(jù)
工作負(fù)載的監(jiān)控數(shù)據(jù)可以在工作負(fù)載詳情的監(jiān)控頁面下查看。
監(jiān)控數(shù)據(jù)來源與AOM,可查看工作負(fù)載的監(jiān)控數(shù)據(jù)包括CPU、內(nèi)存、網(wǎng)絡(luò)、GPU等。
監(jiān)控名詞解釋:
- 工作負(fù)載CPU使用率 = 工作負(fù)載各個Pod中CPU使用率的最大值
- 工作負(fù)載內(nèi)存使用率 = 工作負(fù)載各個Pod中內(nèi)存使用率的最大值
查看容器實例Pod的監(jiān)控數(shù)據(jù)
在工作負(fù)載詳情頁面的實例列表頁簽中可以查看Pod的監(jiān)控數(shù)據(jù)。
監(jiān)控名詞解釋:
- Pod CPU使用率 = Pod實際使用的CPU核數(shù) / 業(yè)務(wù)容器CPU核數(shù)限制值之和(未配置限制值時采用節(jié)點總量)
- Pod 內(nèi)存使用率 = Pod實際使用的物理內(nèi)存 / 業(yè)務(wù)容器物理內(nèi)存限制值之和(未配置限制值時采用節(jié)點總量)
CCE支持上傳自定義指標(biāo)到AOM,節(jié)點上的ICAgent會定期調(diào)用負(fù)載中配置的監(jiān)控指標(biāo)接口讀取監(jiān)控數(shù)據(jù),然后上傳到AOM上。
約束與限制
- ICAgent兼容Prometheus的監(jiān)控數(shù)據(jù)規(guī)范,Pod提供的自定義指標(biāo)必須滿足Prometheus的監(jiān)控數(shù)據(jù)規(guī)范才能夠被ICAgent采集。
- ICAgent僅支持上報Gauge指標(biāo)類型的指標(biāo)。
- ICAgent調(diào)用自定義指標(biāo)的接口周期為1分鐘,不支持修改。
NPD檢查項
NPD的檢查項主要分為事件類檢查項和狀態(tài)類檢查項。
事件類檢查項
對于事件類檢查項,當(dāng)問題發(fā)生時,NPD會向APIServer上報一條事件,事件類型分為Normal(正常事件)和Warning(異常事件)
|
故障檢查項
|
功能
|
|---|---|
OOMKilling |
監(jiān)控內(nèi)核日志,檢查OOM事件發(fā)生并上報 典型場景:容器內(nèi)進程使用的內(nèi)存超過了Limt,觸發(fā)OOM并終止該進程 |
TaskHung |
監(jiān)控內(nèi)核日志,檢查taskHung事件發(fā)生并上報 典型場景:磁盤卡IO導(dǎo)致進程卡住 |
ReadonlyFilesystem |
監(jiān)控內(nèi)核日志,檢查系統(tǒng)內(nèi)核是否有Remount root filesystem read-only錯誤 典型場景:用戶從ECS側(cè)誤操作卸載節(jié)點數(shù)據(jù)盤,且應(yīng)用程序?qū)υ摂?shù)據(jù)盤的對應(yīng)掛載點仍有持續(xù)寫操作,觸發(fā)內(nèi)核產(chǎn)生IO錯誤將磁盤重掛載為只讀磁盤。 |
狀態(tài)類檢查項
對于狀態(tài)類檢查項,當(dāng)問題發(fā)生時,NPD會向APIServer上報一條事件,并同步修改節(jié)點狀態(tài),可配合Node-problem-controller故障隔離對節(jié)點進行隔離。
系統(tǒng)組件檢查項
|
故障檢查項
|
功能
|
|---|---|
容器網(wǎng)絡(luò)組件異常 CNIProblem |
檢查CNI組件(容器網(wǎng)絡(luò)組件)運行狀態(tài) |
容器運行時組件異常 CRIProblem |
檢查節(jié)點CRI組件(容器運行時組件)Docker和Containerd的運行狀態(tài) |
Kubelet頻繁重啟 FrequentKubeletRestart |
通過定期回溯系統(tǒng)日志,檢查關(guān)鍵組件Kubelet是否頻繁重啟 |
Docker頻繁重啟 FrequentDockerRestart |
通過定期回溯系統(tǒng)日志,檢查容器運行時Docker是否頻繁重啟 |
Containerd頻繁重啟 FrequentContainerdRestart |
通過定期回溯系統(tǒng)日志,檢查容器運行時Containerd是否頻繁重啟 |
Kubelet服務(wù)異常 KubeletProblem |
檢查關(guān)鍵組件Kubelet的運行狀態(tài) |
KubeProxy異常 KubeProxyProblem |
檢查關(guān)鍵組件KubeProxy的運行狀態(tài) |
告警配置流程
1.在SMN創(chuàng)建主題。
2.創(chuàng)建行動策略。
3.添加告警規(guī)則。
- 事件類告警:根據(jù)集群上報到AOM的事件配置告警。
- 閾值類告警:實時監(jiān)控環(huán)境中主機、組件等資源使用情況,根據(jù)監(jiān)控指標(biāo)閾值告警。
在SMN創(chuàng)建主題
SMN(Simple Message Notification,消息通知服務(wù))是向訂閱者主動推送消息的服務(wù),訂閱者可以是電子郵件、短信、HTTP和HTTPS等。
主題是消息發(fā)布或客戶端訂閱通知的特定事件類型。它作為發(fā)送消息和訂閱通知的信道,為發(fā)布者和訂閱者提供一個可以相互交流的通道。
您需要創(chuàng)建一個主題,并訂閱。具體方法請參見創(chuàng)建主題和訂閱主題。
創(chuàng)建行動策略
AOM提供告警行動策略定制功能,您可以通過創(chuàng)建告警行動策略關(guān)聯(lián)SMN主題與消息模板,通過創(chuàng)建消息模板,自定義通知消息配置。
具體方法請參見創(chuàng)建告警行動策略。創(chuàng)建時選擇在SMN創(chuàng)建主題創(chuàng)建并訂閱的主題。
添加事件類告警
此功能為AOM的功能,詳細(xì)的參數(shù)說明請參見創(chuàng)建事件類告警規(guī)則。
添加閾值類告警
此功能為AOM的功能,詳細(xì)的參數(shù)說明請參見自定義靜態(tài)閾值規(guī)則。