Prometheus监控Kubernetes核心组件详解
Prometheus监控Kubernetes核心组件详解
本文详细介绍了Prometheus如何监控Kubernetes的核心组件,包括APIServer、Controller、Scheduler、Etcd、CoreDNS和KubeProxy等组件的监控配置、常用指标和告警规则。文章结构清晰,内容详实,适合对Kubernetes和Prometheus有一定了解的技术人员阅读。
prometheus如何监控k8s核心组件
1、监控K8S控制组件
1.1 监控控制平面组件
1.2 监控控制平面组件策略
2、监控控制组件-APIServer
2.1 获取APIServer的Metrics
1)API-Server 用的是https协议
2)APIServer有对应的Service,是default命名空间下的kubernetes
2.2 配置Prometheus监控APIServer
1)修改prometheus配置
2)检查prometheus的Targets
2.3 relabel为Pod添加新标签
1)Service的元数据标签,我们希望保留 __meta_kubernetes_namespace、__meta_kubernetes_service_name ,这两个维度的标签。
2)检查最终结果
2.4 APIServer常用指标与示例
1)APIServer请求以及请求错误相关指标
2)APIServer延迟相关指标
2.5 APIServer告警规则文件
1)编辑Prometheus的Alert规则文件
2)检查告警规则
3、监控K8S核心组件-Controller
3.1 获取Controller的Metrics
2)在 Kubernetes 1.28 版本之后,默认配置不再允许通过 HTTP 访问 ControllerManager 的 metrics 端点,因此必须使用 HTTPS。
3)Controller Manager没有Service,因此我们直接获取对应Pod的标签(labels)
3.2 配置Prometheus监控Controller
1)修改Prometheus配置
3.4 relabel为Pod添加新标签
1)修改prometheus配置
2)检查结果
3.5 Controller常用指标与示例
1)Controller-manager任务数相关指标
2)Controller-manager延迟相关指标
3.6 controller-manager告警规则文件
1)编写controller-manager告警文件
2)查看告警规则
4、监控K8S核心组件-Scheduler
4.1 获取Scheduler的Metrics
1)修改Scheduler Pod的配置清单
2)本地测试访问 Scheduler 的Metrics ,我们可以使用已存在的 prometheus-sa 服务账户来创建一个令牌(token),
3)Scheduler没有Service,因此我们直接获取对应Pod的标签(labels)
4.2 配置Prometheus监控Scheduler
1)修改Prometheus配置
2)查看抓取结果
4.3 Scheduler常用指标与实例
1)Scheduler调度相关指标
2)Scheduler调度延迟相关指标
4.4 Schedule告警规则文件
1)编写告警规则文件
2)检查告警规则
5、监控K8S核心组件-Etcd
5.1 获取Etcd的Metrics
2)本地访问etcd的Metrics
3)etcd没有Service,因此我们直接获取对应Pod的标签(labels),以便Prometheus 只抓取提供 etcd 服务的 Pod 实例
5.2 配置Prometheus监控Etcd
5.3 Etcd常用指标与示例
1)etcd集群相关指标
2)etcd磁盘性能相关指标
5.4 Etcd告警规则文件
1)编写etcd告警规则文件
2)检查etcd告警规则
5.5 导入Etcd图形
6、监控K8S核心组件-CoreDNS
6.1 获取CoreDNS的Metrics
6.2 配置Prometheus监控DNS
1)修改prometheus配置文件
2)查看Targets页面
6.3 CoreDNS常用指标与示例
1)CoreDNS请求与响应相关指标
2)CoreDNS延迟相关指标
6.4 CoreDNS告警规则文件
1)编写告警规则文件
2)检查告警规则