本文主要介绍kube-scheduler组件的指标清单、对应大盘的使用指导以及常见指标异常的问题解析。
指标清单
指标是组件对外透出状态和参数的方式之一,kube-scheduler组件使用的指标清单如下。
指标清单 | 类型 | 说明 |
---|---|---|
scheduler_scheduler_cache_size | Gauge | 调度器缓存中Node、Pod和AssumedPod的数量。 |
scheduler_pending_pods | Gauge | Pending Pod的数量。队列种类如下:
|
scheduler_pod_scheduling_attempts_bucket | Histogram | 调度器尝试成功调度Pod的次数,Bucket阈值为1、2、4、8、16。 |
memory_utilization_byte | Gauge | 内存使用量,单位:字节(Byte)。 |
memory_utilization_ratio | Gauge | 内存使用率=内存使用量/内存资源上限,百分比形式。 |
cpu_utilization_core | Gauge | CPU使用量,单位:核(Core)。 |
cpu_utilization_ratio | Gauge | CPU使用率=CPU使用量/内存资源上限,百分比形式。 |
rest_client_requests_total | Counter | 从状态值(Status Code)、方法(Method)和主机(Host)维度分析HTTP请求数。 |
rest_client_request_duration_seconds_bucket | Histogram | 从方法(Verb)和URL维度分析HTTP请求时延。 |
大盘使用指导
大盘基于组件指标和相关PromQL绘制,大盘可观测性展示和功能解析如下。
概览
- 可观测性展示
- 功能解析
指标清单 PromQL 说明 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的数量。 Scheduler Pending Pods scheduler_pending_pods{job="ack-scheduler"} Pending Pod的数量。队列种类如下: - unschedulable:表示不可调度的Pod数量。
- backoff:表示backoffQ的Pod数量。
- active:表示activeQ的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。
资源
- 可观测性展示
- 功能解析
指标清单 PromQL 说明 内存使用量 memory_utilization_byte{container="kube-scheduler"} 内存使用量,单位:字节。 CPU使用量 cpu_utilization_core{container="kube-scheduler"}*1000 CPU使用量,单位:毫核。 内存使用率 memory_utilization_ratio{container="kube-scheduler"} 内存使用率,百分比。 CPU使用率 cpu_utilization_ratio{container="kube-scheduler"} CPU使用率,百分比。
Kube API
- 可观测性展示
- 功能解析
指标清单 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-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-apiserver发起的HTTP请求时延,从方法(Verb)和请求URL维度分析。
常见指标异常
存活调度器Pod数量
正常情况 | 异常情况 | 异常说明 | 建议 |
---|---|---|---|
存活调度器Pod数量大于等于1。 | 存活调度器数量为0。 | 当前集群无可用调度器。 |
|
Pending Pod数量
正常情况 | 异常情况 | 异常说明 | 建议 |
---|---|---|---|
Pod调度速度较稳定,且维持在较低数值。 |
| 当前集群中Pod的资源请求不合理,或节点资源配置不足。 |
|
成功调度一个Pod的尝试次数
正常情况 | 异常情况 | 异常说明 | 建议 |
---|---|---|---|
Pod能够在几次尝试后被调度到节点上。 | Pod在多次尝试后依然无法被成功调度。 | 当前集群中Pod的资源请求不合理,或节点资源配置不足。 |
|