Kubernetes 调度器监控
Kubernetes 调度器负责根据资源可用性、约束条件和调度策略,将 Pod 分配到最合适的节点上。监控调度器有助于排查 Pod 调度延迟、了解调度瓶颈、检测抢占循环,并确保整个集群的响应能力。
Site24x7 会自动发现 Kubernetes 控制平面中的调度器组件,并收集调度性能、队列延迟、goroutine 活动、工作队列操作和缓存健康状况等关键指标。
前提条件
- 安装 Site24x7 Kubernetes 代理版本 22.1.00 或更高版本。
- 对于现有客户,请将 Kubernetes 代理升级到最新版本 22.1.00 及以上。
注意
在启用调度器监控之前,必须在集群上安装并运行 Site24x7 Kubernetes 代理。
查看 Kubernetes 调度器监视器
升级代理后,Site24x7 Kubernetes 监控代理将立即获取所有调度器监控指标。
查看 Kubernetes 调度器监视器的步骤:
- 登录您的 Site24x7 账号。
- 导航至 K8s,然后选择集群名称。
- 单击调度器。
这将打开特定集群中的调度器监视器列表。选择任意一个以查看该监视器的详细洞察。

支持的指标
下表列出了从 Kubernetes 调度器收集的所有指标。
利用率
| 指标名称 | 描述 | 单位 |
|---|---|---|
| Goroutine Runnable Count | 上次轮询期间,调度器中处于可运行状态的 goroutine 总数。 | Count |
| Preemption Attempts | 上次轮询期间,调度器为满足调度约束而尝试抢占资源的总次数。 | Count |
| Scheduler Pending Pods | 上次轮询期间,处于各调度状态(ActiveQ、BackoffQ、Gated Unschedulable 和 Failed Scheduling)的待调度 Pod 数量。 | Count |
| Process Open File Descriptors | 上次轮询时,调度器进程打开的文件描述符数量。 | Count |
| Process CPU Time | 上次轮询期间,调度器进程消耗的 CPU 时间。 | Seconds |
| Preemption Victim Attempts | 上次轮询期间,发生的抢占受害者尝试总次数。 | Count |
| Go 调度延迟 | ||
| Average Goroutine Scheduling Latency | 上次轮询期间,调度器中每个 goroutine 的平均等待时间。 | Seconds |
| Total Goroutine Scheduling Latency | 上次轮询期间,goroutine 在调度器中处于可运行状态等待实际运行的总时间。 | Seconds |
| 调度器抢占受害者 | ||
| Average Preemption Victims | 上次轮询期间,每次抢占尝试中被抢占的 Pod 平均数量。 | Count |
| Total Preemption Victims | 上次轮询期间,被选中的抢占受害者(终止低优先级 Pod 以便高优先级 Pod 在节点上调度的过程)总数。 | Count |
| 进程内存使用量 | ||
| Process Resident Memory | 上次轮询期间,调度器进程使用的常驻内存大小(字节)。 | Bytes |
| Process Virtual Memory | 上次轮询期间,调度器进程使用的虚拟内存大小(字节)。 | Bytes |
| Go 使用量 | ||
| Go Threads | 上次轮询期间,调度器进程的 Go 运行时创建的操作系统线程数量。 | Count |
| Goroutines | 上次轮询期间,调度器进程当前存在的 goroutine 数量。 | Count |
操作
| 指标名称 | 描述 | 单位 |
|---|---|---|
| Successfully Scheduled Pods | 上次轮询期间,成功调度的 Pod 总数。 | Count |
| Cached Bound Pods | 上次轮询期间,调度器缓存中处于假定(已绑定)状态的 Pod 数量。 | Count |
| Total Algorithm Executions | 上次轮询期间,调度算法收到的尝试请求总数。 | Count |
| Pod 调度尝试 | ||
| Average Successful Scheduling Attempts | 上次轮询期间,每次尝试中成功调度的 Pod 平均数量。 | Count |
| Total Successful Scheduling Attempts | 上次轮询期间,成功调度 Pod 的尝试总次数。 | Count |
| 调度尝试 | ||
| Scheduler Error Attempts | 上次轮询期间,调度器尝试调度 Pod 时结果为错误的总次数。 | Count |
| Successful Schedule Attempts | 上次轮询期间,调度器尝试调度 Pod 时结果为已调度的总次数。 | Count |
| Scheduler Unscheduled Attempts | 上次轮询期间,调度器尝试调度 Pod 时结果为未调度的总次数。 | Count |
| 调度器缓存资源 | ||
| Cached Nodes | 上次轮询期间,调度器缓存中的节点数量。 | Count |
| Cached Pods | 上次轮询期间,调度器缓存中的 Pod 数量。 | Count |
| 调度算法耗时 | ||
| Average Scheduling Algorithm Duration | 上次轮询期间,调度算法处理每个请求的平均耗时。 | Seconds |
| Total Scheduling Algorithm Duration | 上次轮询期间,调度算法延迟的总时间(秒)。 | Seconds |
| 平均调度尝试耗时 | ||
| Average Scheduling Duration for Errors | 上次轮询期间,结果为错误的调度尝试所花费的平均时间。 | Seconds |
| Average Scheduling Duration for Success | 上次轮询期间,结果为已调度的调度尝试所花费的平均时间。 | Seconds |
| Average Scheduling Duration for Unscheduled Attempts | 上次轮询期间,结果为未调度的调度尝试所花费的平均时间。 | Seconds |
| 总调度尝试耗时 | ||
| Total Scheduling Duration for Errors | 上次轮询期间,调度和绑定过程中以错误状态结束所花费的总时间。 | Seconds |
| Total Scheduling Duration for Success | 上次轮询期间,调度和绑定过程中以已调度状态结束所花费的总时间。 | Seconds |
| Total Scheduling Duration for Unscheduled Attempts | 上次轮询期间,调度和绑定过程中以未调度状态结束所花费的总时间。 | Seconds |
调度流程
| 指标名称 | 描述 | 单位 |
|---|---|---|
| Queue Additions by Event Name | 上次轮询期间,按事件名称分组的添加到调度队列的 Pod 总数。 | Count |
| Queue Additions by Queue Type | 上次轮询期间,按队列类型分组的添加到调度队列的 Pod 总数。 | Count |
| Average Pod Scheduling Duration by Attempt | 上次轮询期间,在给定尝试次数下调度一个 Pod 所花费的平均时间。 | Seconds |
| Successful Schedule Attempts | 上次轮询期间,在给定尝试次数下成功调度 Pod 的总数。 | Count |
| Goroutines by Operation | 上次轮询期间,按所执行操作(工作)分组的运行中 goroutine 总数。 | Count |
| Unschedulable Pods by Plugin | 上次轮询期间,按插件名称分组的不可调度 Pod 总数。 | Count |
工作队列
| 指标名称 | 描述 | 单位 |
|---|---|---|
| Total Workqueue Adds | 上次轮询期间,按操作名称分组的工作队列处理的添加事件总数。 | Count |
| Workqueue Depth | 上次轮询期间,工作队列中等待处理的操作或任务数量。 | Count |
| Average Workqueue Queue Duration | 上次轮询期间,一个项目在被取出前在工作队列中等待的平均时间。 | Seconds |
| Average Workqueue Work Duration | 上次轮询期间,处理工作队列中一个项目所花费的平均时间。 | Seconds |
| Workqueue Retries | 上次轮询期间,按名称分组的工作队列处理的重试总次数。 | Count |
| Workqueue Unfinished Work Duration | 尚未被工作耗时捕获的进行中工作的总秒数。数值过高可能表示线程卡住。 | Seconds |
