文档

kube-scheduler组件监控

更新时间:

本文主要介绍kube-scheduler组件的指标清单、对应大盘的使用指导以及常见指标异常的问题解析。

指标清单

指标是组件对外透出状态和参数的方式之一,kube-scheduler组件使用的指标清单如下。

指标清单

类型

说明

scheduler_scheduler_cache_size

Gauge

调度器缓存中Node、Pod和AssumedPod的数量。

scheduler_pending_pods

Gauge

Pending Pod的数量。队列种类如下:

  • unschedulable:表示不可调度的Pod数量。

  • backoff:表示backoffQ的Pod数量。

  • active:表示activeQ的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绘制,大盘可观测性展示和功能解析如下。

概览

  • 可观测性展示schedule1

  • 功能解析

    指标清单

    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。

资源

  • 可观测性展示schedule2

  • 功能解析

    指标清单

    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

  • 可观测性展示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-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。

当前集群无可用调度器。

  1. 查看调度器相关的Deployment或者StatefulSet是否存在。

  2. 定位调度器Pod下线是否为预计的人为操作。

Pending Pod数量

正常情况

异常情况

异常说明

建议

Pod调度速度较稳定,且维持在较低数值。

  1. Unschedulable队列中Pod的数量持续增加。

  2. Unschedulable队列中Pod的数量在其他Pod完成后未出现减少。

当前集群中Pod的资源请求不合理,或节点资源配置不足。

  1. 查看节点资源是否满足Pod需求。

  2. 查看Pod是否设置了无法满足的节点亲和属性。

成功调度一个Pod的尝试次数

正常情况

异常情况

异常说明

建议

Pod能够在几次尝试后被调度到节点上。

Pod在多次尝试后依然无法被成功调度。

当前集群中Pod的资源请求不合理,或节点资源配置不足。

  1. 查看节点资源是否满足Pod需求。

  2. 查看Pod是否设置了无法满足的节点亲和属性。

  • 本页导读 (1)
文档反馈