kube-controller-manager是管理多種Kubernetes控制器的控制面組件,例如負責節點管理的Node Controller、管理有狀態應用的控制器StatefulSet Controller、處理無狀態應用的Deployment Controller等。本文介紹kube-controller-manager組件的指標清單和對應大盤的使用指導。
相關概念
Workqueue
kube-controller-manager管理的Controller,例如Node Controller、StatefulSet Controller、Deployment Controller等,通常通過工作隊列Workqueue機制來安全、并發地處理資源對象的更新。每當有新的事件發生時(例如Pod的創建、更新、刪除等),相應的Controller會收到事件通知,將關聯的資源標識符(例如Pod的名稱、命名空間等)放入Workqueue中。Controller的工作循環會不斷從Workqueue中取出這些資源標識符,并執行相應的邏輯來處理資源。
使用前須知
操作入口
請參見查看集群控制面組件監控大盤。
指標清單
指標是組件對外透出狀態和參數的方式之一,kube-controller-manager組件使用的指標清單如下。
指標 | 類型 | 說明 |
workqueue_adds_total | Counter | Workqueue處理的新增事件(Adds)數量。 |
workqueue_depth | Gauge | Workqueue當前隊列深度。如果隊列深度長時間保持在較高水平,表明Controller不能及時處理隊列中的任務,導致任務堆積。 |
workqueue_queue_duration_seconds_bucket | Histogram | 任務在Workqueue中存在的時長。Bucket閾值為{10-8, 10-7, 10-6, 10-5, 10-4, 10-3, 10-2, 10-1, 1, 10}。單位:秒。 |
memory_utilization_byte | Gauge | 內存使用量。單位:字節(Byte)。 |
cpu_utilization_core | Gauge | CPU使用量。單位:核(Core)。 |
rest_client_requests_total | Counter | 從狀態值(Status Code)、方法(Method)和主機(Host)維度分析HTTP請求次數。 |
rest_client_request_duration_seconds_bucket | Histogram | 從方法(Verb)和URL維度分析HTTP請求時延。 |
如下資源使用率指標已廢棄,請及時去除依賴該指標的告警和監控。
cpu_utilization_ratio:CPU使用率。
memory_utilization_ratio:內存使用率。
大盤使用指導
您可以配置大盤觀測請求的分位數quantile和PromQL的采樣時長interval。大盤基于組件指標和相關PromQL繪制,大盤的可觀測性展示和功能解析如下。
Workqueue
可觀測性展示
功能解析
名稱 | PromQL | 說明 |
Workqueue入隊速率 | sum(rate(workqueue_adds_total{job="ack-kube-controller-manager"}[$interval])) by (name) | Workqueue在單位時間內新增事件(Adds)的數量。 |
Workqueue深度 | sum(rate(workqueue_depth{job="ack-kube-controller-manager"}[$interval])) by (name) | Workqueue深度在單位時間內的變化。 |
Workqueue處理時延 | histogram_quantile($quantile, sum(rate(workqueue_queue_duration_seconds_bucket{job="ack-kube-controller-manager"}[5m])) by (name, le)) | 事件在Workqueue中存在的時長。 |
資源
可觀測性展示
功能解析
大盤名稱 | PromQL | 說明 |
內存使用量 | memory_utilization_byte{container="kube-controller-manager"} | 內存使用量。單位:字節。 |
CPU使用量 | cpu_utilization_core{container="kube-controller-manager"}*1000 | CPU使用量。單位:毫核。 |
Kube API
可觀測性展示
功能解析
大盤名稱 | PromQL | 說明 |
Kube API請求QPS |
| kube-controller-manager對kube-apiserver發起的HTTP請求,從方法(Method)和返回值(Code)維度分析。 |
Kube API請求時延 | histogram_quantile($quantile, sum(rate(rest_client_request_duration_seconds_bucket{job="ack-kube-controller-manager"}[$interval])) by (verb,url,le)) | kube-controller-manager對kube-apiserver發起的HTTP請求時延,從方法(Verb)和請求URL維度進行分析。 |
相關文檔
關于其他集群控制面組件監控的指標詳情、大盤使用指引和常見指標異常說明,請參見kube-apiserver組件監控指標說明、etcd組件監控指標說明、kube-scheduler組件監控指標說明、cloud-controller-manager組件監控指標說明。