全部產品
Search
文件中心

Container Service for Kubernetes:kube-scheduler組件監控指標及大盤使用說明

更新時間:Aug 30, 2024

kube-scheduler組件是Kubernetes叢集的預設調度器,負責將Pod調度到合適的叢集節點上運行。本文介紹kube-scheduler組件的監控指標清單、大盤使用指導以及常見指標異常解析。

使用前須知

操作入口

請參見查看叢集控制面組件監控大盤

指標清單

指標是組件對外透出狀態和參數的方式之一,kube-scheduler組件使用的指標清單如下。

指標清單

類型

說明

scheduler_scheduler_cache_size

Gauge

調度器緩衝中節點、Pod和AssumedPod(假定要調度的Pod)的數量。

scheduler_pending_pods

Gauge

Pending Pod的數量。隊列種類如下:

  • unschedulable:不可調度的Pod數量。

  • backoff:backoffQ的Pod數量,即因為某種原因暫時不能被調度的Pod數量。

  • active:activeQ的Pod數量,即準備就緒並等待被調度的Pod數量。

scheduler_pod_scheduling_attempts_bucket

Histogram

調度器嘗試成功調度Pod的次數,Bucket閾值為{1、2、4、8、16}

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:記憶體使用量率。

大盤使用指導

大盤基於組件指標和相關PromQL繪製,大盤可觀測性展示和功能解析如下。

如果組件的常見指標異常,請對照下文的情況說明排查是否為預期內情況。如果發生非預期異常,請提交工單處理。

概覽

可觀測性展示

image

功能解析

指標清單

PromQL

說明

Scheduler Pending Pods

scheduler_pending_pods{job="ack-scheduler"}

Pending Pod的數量。隊列種類如下:

  • unschedulable:不可調度的Pod數量。

  • backoff:backoffQ的Pod數量,即因為某種原因暫時不能被調度的Pod數量。

  • active:activeQ的Pod數量,即準備就緒並等待被調度的Pod數量。

Scheduler 嘗試成功調度Pod次數

histogram_quantile($quantile, sum(rate(scheduler_pod_scheduling_attempts_bucket{job="ack-scheduler"}[$interval])) by (pod, le))

調度器嘗試調度Pod的次數。Bucket閾值為{1、2、4、8、16}

Scheduler 快取資料統計

  • scheduler_scheduler_cache_size{job="ack-scheduler",type="nodes"}

  • scheduler_scheduler_cache_size{job="ack-scheduler",type="pods"}

  • scheduler_scheduler_cache_size{job="ack-scheduler",type="assumed_pods"}

調度器緩衝中Node、Pod和AssumedPod的數量。

資源

可觀測性展示schedule2

功能解析

指標清單

PromQL

說明

記憶體使用量量

memory_utilization_byte{container="kube-scheduler"}

記憶體使用量量。單位:位元組。

CPU使用量

cpu_utilization_core{container="kube-scheduler"}*1000

CPU使用量。單位:毫核。

Kube API

可觀測性展示schedule3

功能解析

指標清單

PromQL

說明

Kube API 請求QPS

  • sum(rate(rest_client_requests_total{job="ack-scheduler",code=~"2.."}[$interval])) by (method,code)

  • sum(rate(rest_client_requests_total{job="ack-scheduler",code=~"3.."}[$interval])) by (method,code)

  • sum(rate(rest_client_requests_total{job="ack-scheduler",code=~"4.."}[$interval])) by (method,code)

  • sum(rate(rest_client_requests_total{job="ack-scheduler",code=~"5.."}[$interval])) by (method,code)

kube-schedulerkube-apiserver組件發起的HTTP請求,從方法(Method)和傳回值(Code) 維度分析。

Kube API 請求時延

histogram_quantile($quantile, sum(rate(rest_client_request_duration_seconds_bucket{job="ack-scheduler"}[$interval])) by (verb,url,le))

kube-schedulerkube-apiserver組件發起的HTTP請求時延,從方法(Verb)和請求URL維度分析。

常見指標異常

如果組件的常見指標異常,請對照下文的情況說明排查是否為預期內情況。如果發生非預期異常,請提交工單處理。

存活調度器Pod數量

正常情況

異常情況

異常說明

建議

存活調度器Pod數量大於等於1。

存活調度器數量為0。

當前叢集無可用調度器。

  • 查看調度器相關的Deployment或者StatefulSet是否存在。

  • 定位調度器Pod下線是否為預期內的人為操作。

Pending Pod數量

正常情況

異常情況

異常說明

建議

Pod調度速度較穩定,且維持在較低數值。

  • Unschedulable隊列中的Pod數量持續增加。

  • Unschedulable隊列中的Pod數量在其他Pod完成調度後仍然沒有減少。

當前叢集中Pod的資源請求不合理,或節點資源配置不足。

  • 查看節點資源是否滿足Pod需求。

  • 查看Pod是否設定了無法滿足的節點親和屬性。

成功調度一個Pod的嘗試次數

正常情況

異常情況

異常說明

建議

Pod能夠在幾次嘗試後正常被調度到節點上。

Pod在多次嘗試後依然無法成功調度。

當前叢集中Pod的資源請求不合理,或節點資源配置不足。

  • 查看節點資源是否滿足Pod的需求。

  • 查看Pod是否設定了無法滿足的節點親和屬性。

相關文檔

關於其他叢集控制面組件監控的指標詳情、大盤使用指引和常見指標異常說明,請參見kube-apiserver組件監控指標說明etcd組件監控指標說明kube-controller-manager組件監控指標說明cloud-controller-manager組件監控指標說明