K8S体系监控

背景

由于业务容器化的推进,对K8S上运行的业务,也必须做到向之前物理机/虚拟机上一样,要有完备的监控保障。但是,毕竟K8S不是物理机/虚拟机,由于技术实现方式不同,监控方面也是有一定差别的。
Pod是K8S上调度的最小单元,本文就K8S Pod Docker容器该如何监控进行说明。

promethes容器内存监控
round(sum by(name, id, job, node) (container_memory_rss{image!=""}) / sum by(name, id, job, node) (container_spec_memory_limit_bytes{image!=""}) * 100 != +Inf) > 99

说明:

  • != +Inf:
    过滤正无穷的数据,如果容器没有定义限制内存,测container_spec_memory_limit_bytes值是0;
  • container_memory_rss:
    RSS内存,即常驻内存集(Resident Set Size),是分配给进程使用实际物理内存,而不是磁盘上缓存的虚拟内存。RSS内存包括所有分配的栈内存和堆内存,以及加载到物理内存中的共享库占用的内存空间,但不包括进入交换分区的内存。
  • container_memory_working_set_bytes 容器使用内存 更能体现出mem usage,也是oom killer指标(建议使用)
  • container_spec_memory_limit_bytes:
    容器的内存使用量限制,当k8s中的确认
promethes容器CPU监控
sum by(name, namespace, job) (rate(container_cpu_usage_seconds_total{image!=""}[10m])) >= (sum by(name, namespace, job) (container_spec_cpu_quota{image!=""} / 100000))

说明:
公式 平均1s容器使用CPU的时间/配额CPU个数*1s

  • container_cpu_usage_seconds_total 该容器服务针对每个CPU累计消耗的CPU时间。如果有多个CPU,则总的CPU时间需要把各个CPU耗费的时间相加,可以求出平均1s容器使用的时间
  • container_spec_cpu_quota 是容器的CPU配额,它的值是:为容器指定的CPU个数*100000。故Pod在1s内CPU的总时间为:Pod的CPU核数 * 1s:

注意:
CPU配额可以通过container_spec_cpu_quota除以container_spec_cpu_period来得到,
或用CPU Limit值kube_pod_container_resource_limits_cpu_cores也可以

说明:
CPU资源的限制与内存不同。当容器使用的内存超过限制配额后,会被系统加到OOM-Killing候选中。当容器使用CPU资源到达申请配额时,容器不会被系统驱逐或怎么样,只是限制CPU使用。

容器入带宽大于2M
round(sum by (namespace,job,name) (irate(container_network_receive_bytes_total{image!=""}[5m]))  / 1024 /1024*1000)/1000 > 2

说明:k8s对网络的记录级别是pod级别的

容器出带宽大于2M
round(sum by (namespace,job,name) (irate(container_network_transmit_bytes_total{image!=""}[5m]))  / 1024 /1024*1000)/1000 > 2
K8S集群内存使用率

表达式 PromQL语句:

sum (container_memory_working_set_bytes{id="/",kubernetes_io_hostname=~"^$Node$"}) / sum (machine_memory_bytes{kubernetes_io_hostname=~"^$Node$"}) * 100

相关指标:

  • container_memory_working_set_bytes 容器使用内存 更能体现出mem usage,也是oom killer指标
  • machine_memory_bytes 当前主机内存大小

说明:监控K8S集群总内存使用率,可以使用大屏展示

K8S集群CPU使用率

表达式 PromQL语句:

sum (rate (container_cpu_usage_seconds_total{}[5m])) / sum (machine_cpu_cores{}) * 100

相关指标:

  • container_cpu_usage_seconds_total 该容器服务针对每个CPU累计消耗的CPU时间。如果有多个CPU,则总的CPU时间需要把各个CPU耗费的时间相加,可以求出平均1s容器使用的时间
  • machine_cpu_cores cadvisor的当前节点CPU数目

说明:监控K8S集群总CPU使用率,可以使用大屏展示

K8S体系监控-cadvisor监控相关推荐

  1. Prometheus 基于k8s服务发现通过Cadvisor监控Kubernetes

    Prometheus服务发现 Prometheus添加被监控端支持两种方式: • 静态配置:手动配置 • 服务发现:动态发现需要监控的Target实例 支持服务发现的来源 • azure_sd_con ...

  2. k8s1.11.0安装、一个master、一个node、查看node名称是ip、node是扩容进来的、带cadvisor监控服务...

    一个master.一个node.查看node节点是ip# 安装顺序:先在test1 上安装完必要组件后,就开始在 test2 上单独安装node组件,实现node功能,再返回来配置test1加入集群, ...

  3. 数据展示_使用Cadvisor监控容器并展示数据

    Cadvisor使用Go语言开发,利用Linux的cgroups获取容器的资源使用信息,cadvisor不仅可以搜集一台机器上所有运行的容器信息,还提供基础查询界面和http接口,方便其他组件如Pro ...

  4. 【Flink on k8s】JConsole 远程监控 TaskManager

    1.概述 转载:[Flink on k8s]JConsole 远程监控 TaskManager 问题:如何定位 Flink 作业卡在哪里? 首先,配置文件 flink-conf.yaml 添加 Jav ...

  5. K8S Pod该如何监控

    背景 由于业务容器化的推进,对K8S上运行的业务,也必须做到向之前物理机/虚拟机上一样,要有完备的监控保障.但是,毕竟K8S不是物理机/虚拟机,由于技术实现方式不同,监控方面也是有一定差别的. Pod ...

  6. 直播的用户体验体系与质量监控方案

    6月24日,又拍云OpenTalk |2018音视频技术沙龙·上海站顺利落幕,这是又拍云OpenTalk | 2018音视频技术沙龙系列活动的第二站.作为又拍云技术分享的看家活动,本次OpenTalk ...

  7. Prometheus使用cAdvisor监控Docker容器指标

    完整译文请访问:使用cAdvisor监控Docker容器指标. 点击这里获取云原生干货https://www.coderdocument.com/resource_credential.html?co ...

  8. 云计算监控—Prometheus监控系统(文末赠书)

    陈金窗 刘政委 张其栋 郑少斌 读完需要 20 分钟 速读仅需 7 分钟 本文摘自于<Prometheus 监控技术与实战>一书,从云计算时代的业务特点出发,探讨了云计算监控的目标和挑战, ...

  9. 【第7期】云计算监控——Prometheus监控系统

    本文摘自于<Prometheus监控技术与实战>一书,从云计算时代的业务特点出发,探讨了云计算监控的目标和挑战,梳理了云资源监控的范围及监控系统实现的一般方式.接着从开源监控软件的演进出发 ...

最新文章

  1. 前端开发之JavaScript基础篇一
  2. 面试官问:线程池除了常见的4种拒绝策略,你还知道哪些?
  3. 联结你与万物的8种元素
  4. GC DevKit 快速入门 -- 游戏概览(三)
  5. backbone.js全栈开发
  6. Java中的异常 Exception
  7. 第九课:循环链表与双向链表
  8. 虚拟机配置网络eth1
  9. 5年 Python 功力,总结了 10 个开发技巧
  10. 在业务层实现校验请求参数
  11. 程序员过关斩将--重复的请求并不好过滤
  12. AOP和Spring AOP介绍
  13. Maven入门详解与安装配置
  14. php form表单属性,HTML5 表单属性
  15. 【BZOJ4016】最短路径树问题,最短路+点分治
  16. 从天地图下载瓦片构建本地瓦片地图
  17. main run方法没用_多线程:解决Runnable接口无start()方法的问题
  18. paip.jdbc 连接自动释放的测试
  19. 2019西北工业大学程序设计创新实践基地春季选拔赛(重现赛) CEGHI 题解
  20. 本地词库翻译php,有道词典词库(您也可以轻松翻译离线的有道词典词库)

热门文章

  1. 深圳一日游攻略农家乐团建聚会自驾游好去处
  2. 下载各平台的课程视频链接的m3u8
  3. 汽车车牌识别系统实现(三)-- 车牌矫正+字符分割+代码实现
  4. 《移动应用开发》实验——仿饿了么的APP
  5. 后处理工具 icampost v19 v21 v22
  6. HIPAA合规SSL数字证书是什么?
  7. 不惧繁杂背景,视频编辑服务一键实现人像抠图
  8. unity鼠标点击显示粒子特效
  9. docker安装部署实战详细手册
  10. 多功能RFID手持机9171A