监控Kubernetes 控制面组件的关键指标

控制面组件的监控,包括 APIServer、Controller-manager(简称 CM)、Scheduler、etcd 四个组件。

1、APIServer

APIServer 的核心职能是 Kubernetes 集群的 API 总入口,Kube-Proxy、Kubelet、Controller-Manager、Scheduler 等都需要调用 APIServer,所以 APIServer 的监控,完全按照 RED 方法论来梳理即可,最核心的就是请求吞吐和延迟。

  • apiserver_request_total:请求量的指标,可以统计每秒请求数、成功率。
  • apiserver_request_duration_seconds:请求耗时的指标。
  • apiserver_current_inflight_requests:APIServer 当前处理的请求数,分为 mutating(非 get、list、watch 的请求)和 readOnly(get、list、watch 请求)两种,请求量过大就会被限流,所以这个指标对我们观察容量水位很有帮助。

2、Controller-manager

Controller-manager 负责监听对象状态,并与期望状态做对比。如果状态不一致则进行调谐,重点关注的是任务数量、队列深度等。

  • workqueue_adds_total:各个 controller 接收到的任务总数。
  • workqueue_depth:各个 controller 的队列深度,表示各个 controller 中的任务的数量,数量越大表示越繁忙。
  • workqueue_queue_duration_seconds:任务在队列中的等待耗时,按照控制器分别统计。
  • workqueue_work_duration_seconds:任务出队到被处理完成的时间,按照控制器分别统计。
  • workqueue_retries_total:任务进入队列的重试次数。

3、Scheduler

Scheduler 在 Kubernetes 架构中负责把对象调度到合适的 Node 上,在这个过程中会有一系列的规则计算和筛选,重点关注调度这个动作的相关指标。

  • leader_election_master_status:调度器的选主状态,1 表示 master,0 表示 backup。
  • scheduler_queue_incoming_pods_total:进入调度队列的 Pod 数量。
  • scheduler_pending_pods:Pending 的 Pod 数量。
  • scheduler_pod_scheduling_attempts:Pod 调度成功前,调度重试的次数分布。
  • scheduler_framework_extension_point_duration_seconds:调度框架的扩展点延迟分布,按 extension_point 统计。
  • scheduler_schedule_attempts_total:按照调度结果统计的尝试次数,“unschedulable”表示无法调度,“error”表示调度器内部错误。

4、etcd

etcd 在 Kubernetes 的架构中作用巨大,相对也比较稳定,不过 etcd 对硬盘 IO 要求较高,因此需要着重关注 IO 相关的指标,生产环境建议至少使用 SSD 的盘做存储。

  • etcd_server_has_leader :etcd 是否有 leader。
  • etcd_server_leader_changes_seen_total:偶尔切主问题不大,频繁切主就要关注了。
  • etcd_server_proposals_failed_total:提案失败次数。
  • etcd_disk_backend_commit_duration_seconds:提交花费的耗时。
  • etcd_disk_wal_fsync_duration_seconds  :wal 日志同步耗时。

5、KSM

Kube-state-metrics 这个组件,采集的很多指标都只是充当元信息,单独拿出来未必那么有用,但是和其他指标做 group_left、group_right 连接的时候可能又会很有用。

  • kube_node_status_condition:Node 节点状态,状态不正常、有磁盘压力等都可以通过这个指标发现。
  • kube_pod_container_status_last_terminated_reason:容器停止原因。
  • kube_pod_container_status_waiting_reason:容器处于 waiting 状态的原因。
  • kube_pod_container_status_restarts_total:容器重启次数。
  • kube_deployment_spec_replicas:deployment 配置期望的副本数。
  • kube_deployment_status_replicas_available:deployment 实际可用的副本数。

 

此文章为8月Day11学习笔记,内容来源于极客时间《运维监控系统实战笔记》,推荐该课程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/36616.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【字符串】649. Dota2 参议院

649. Dota2 参议院 解题思路 R true 表示循环结束之后 字符串仍然存在 Rflag > 0 说明R在D之前出现 R可以消灭Dflag < 0 说明D在R之前出现 D 可以消灭R一旦其中有一个为false 说明只剩下R 或者D 那么就可以决定谁获胜遍历字符串 如果当前字符是R 判断flag 如果flag &l…

‘open3d.open3d.geometry.PointCloud‘ object has no attribute ‘voxel_down_sample‘

scene_cloud open3d.geometry.PointCloud() scene_cloud.points open3d.utility.Vector3dVector(scene_points) scene_cloud scene_cloud.voxel_down_sample(voxel_size) 执行上面代码第三句报错&#xff0c;出现了下面这个错误&#xff1a; AttributeError: open3d.open…

TCP 协议十大相关特性总结

目录 一、TCP特性 二、报文格式 TCP十大核心特性 1. 确认应答 2. 超时重传 3. 连接管理(三次握手,四次挥手) 三次握手 四次挥手 4. 滑动窗口 情况一:接收方的ACK丢失 情况二:发送方的数据包丢失 5. 流量控制 6. 拥塞控制 7. 延迟应答 8. 捎带应答 9. 字节流粘包问题 10. TCP的…

k8s--使用cornJob定时执行sql文件

CronJob apiVersion: batch/v1beta1 kind: CronJob metadata:name: hello spec:schedule: "0 * * * *"jobTemplate:spec:template:spec:containers:- name: postgres-alpineimage: xxxximagePullPolicy: IfNotPresentcommand:- psql- -h- 数据库服务地址- -d- 数据库…

大语言模型:LLM的概念是个啥?

一、说明 大语言模型&#xff08;维基&#xff1a;LLM- large language model&#xff09;是以大尺寸为特征的语言模型。它们的规模是由人工智能加速器实现的&#xff0c;人工智能加速器能够处理大量文本数据&#xff0c;这些数据大部分是从互联网上抓取的。 [1]所构建的人工神…

02 - git 文件重命名

查看所有文章链接&#xff1a;&#xff08;更新中&#xff09;GIT常用场景- 目录 文章目录 1. 第一种方式2. 第二种方式 1. 第一种方式 mv kongfu_person.txt kongfu.txt git add .2. 第二种方式 git mv kongfu_person.txt kongfu.txt

微服务实战项目-学成在线-项目优化(redis缓存优化)

微服务实战项目-学成在线-项目优化(redis缓存优化) 1 优化需求 视频播放页面用户未登录也可以访问&#xff0c;当用户观看试学课程时需要请求服务端查询数据&#xff0c;接口如下&#xff1a; 1、根据课程id查询课程信息。 2、根据文件id查询视频信息。 这些接口在用户未认…

Unity 人物连招(三段连击)

一&#xff1a; 连招思路 首先人物角色上有三个攻击实例对象 Damage,每一个damage定义了攻击的伤害值&#xff0c;攻击距离&#xff0c;触发器名称&#xff0c;伤害的发起者&#xff0c;攻击持续时间&#xff0c;攻击重置时间&#xff0c;伤害的碰撞框大小等字段&#xff1a; …

【WordPress】给你一万个不使用WP-Cron定时机制的理由

这篇文章也可以在我的博客中查看 定时任务 cron Cron是Unix/Linux系统中的任务调度工具&#xff0c;允许用户在预定的时间和日期间隔自动运行命令或脚本 它通过Cron表达式定义任务执行的频率&#xff0c;该表达式包含分钟、小时、日期等信息 我们可以利用Cron来定期执行维护…

MySQL表的增删查改

目录 一&#xff0c;新增 二&#xff0c;查询 2.1 全列查询 2.2 指定列查询 2.3 查询字段为表达式 2.4 别名 - as 2.5 去重 - distinct 2.6 排序 - order by 2.7 条件查询 - where 2.8 分页查询 - limit 三&#xff0c;修改 - update 四&#xff0c;删除 - delete 一…

@Mapper POJO 与DTO之间的class属性转换映射

Mapper注解基于mapStract 框架实现对象转换&#xff1a;MapStract java bean 属性转换映射 引用转自&#xff1a;org.mapstruct:mapstruct 包&#xff08;Mapper、Mapping&#xff09;的使用 依赖包&#xff1a; <!--mapStruct依赖--> <dependency><groupId&g…

Spring-2-透彻理解Spring 注解方式创建Bean--IOC

今日目标 学习使用XML配置第三方Bean 掌握纯注解开发定义Bean对象 掌握纯注解开发IOC模式 1. 第三方资源配置管理 说明&#xff1a;以管理DataSource连接池对象为例讲解第三方资源配置管理 1.1 XML管理Druid连接池(第三方Bean)对象【重点】 数据库准备 -- 创建数据库 create …

纯前端 -- html转pdf插件总结

一、html2canvasjsPDF&#xff08;文字会被截断&#xff09;&#xff1a; 将HTML元素呈现给添加到PDF中的画布对象&#xff0c;不能仅使用jsPDF&#xff0c;需要html2canvas或rasterizeHTML html2canvasjsPDF的具体使用链接 二、html2pdf&#xff08;内容显示不全文字会被截断…

[RoarCTF 2019Online Proxy]sql巧妙盲注

文章目录 [RoarCTF 2019Online Proxy]sql巧妙盲注解题脚本脚本解析 [RoarCTF 2019Online Proxy]sql巧妙盲注 解题 在源代码界面发现&#xff1a;Current Ip 我们会联想到&#xff1a;X-Forwarded-For来修改ip&#xff1a; 结果我们发现&#xff0c;response会讲Last Ip回显出…

Semaphore 原理分析

分析下SemaPhore吧&#xff0c;也是基于AQS实现的&#xff0c;对并发进行控制的工具类&#xff0c;看下其怎么实现的&#xff0c; Semaphore semaphore new Semaphore(3);semaphore.acquire();semaphore.release();Semaphore 常用于控制并发量&#xff0c;比如这里设置为3&…

请教电路高手帮忙Review一下是否可行?

想要实现STM32 3.3V GPIO 控制5V电源通断&#xff0c;默认状态为&#xff1a;接通。 使用如下电路图有无问题&#xff1f;参数是否需要调整&#xff1f;

8.14 ARM

1.练习一 .text 文本段 .global _start 声明一个_start函数入口 _start: _start标签&#xff0c;相当于C语言中函数mov r0,#0x2mov r1,#0x3cmp r0,r1beq stopsubhi r0,r0,r1subcc r1,r1,r0stop: stop标签&#xff0c;相当于C语言中函数b stop 跳转到stop标签下的第一条…

C++的IO流

C语言的输入与输出 C语言中我们用到的最频繁的输入输出方式就是scanf ()与printf()。 scanf(): 从标准输入设备(键盘)读取数据&#xff0c;并将值存放在变量中。printf(): 将指定的文字/字符串输出到标准输出设备(屏幕)。注意宽度输出和精度输出控制。C语言借助了相应的缓冲区来…

javaScript:如何获取html中的元素对象

目录 前言&#xff1a; 方法 1.通过id获取元素 2.通过标签名获取元素 3.通过类名class获取元素 获取body的方法 1.document.getElementsByTagName(body)[0] 2.document.body 相关代码 前言&#xff1a; 通过获取HTML中的元素对象&#xff0c;JavaScript可以对网页进行动…

学生成绩管理系统V1.0

某班有最多不超过30人&#xff08;具体人数由键盘输入&#xff09;参加某门课程的考试&#xff0c;用一维数组作函数参数编程实现如下学生成绩管理&#xff1a; &#xff08;1&#xff09;录入每个学生的学号和考试成绩&#xff1b; &#xff08;2&#xff09;计算课程的总分…