范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

深入理解kubernetes监控原理

  前言
  承接上文,我们在基于 Ubuntu 2204  使用 kubeadm  部署了 k8s  集群,且基于 helm  部署了 metrics-server  .
  然后我们可以很欢快的使用 kubectl top  命令查看node、pod的实时资源使用情况:如CPU、内存。
  本文将介绍其数据链路和实现原理,同时会阐述k8s中的监控体系。如有不对之处,请留言指教。 kubectl top
  kubectl top  是我们经常使用的基础命令,但是必须需要部署 metrics-server  组件,才能获取到监控值。 在kubernetes 1.8版本之前,则需要部署 heapter  , 现已被废弃 在kubernetes1.8以及以上,则需要部署 metrics-server
  我们所使用的版本是1.24.3的最新版本,所以一定要部署 metrics-server
  查看node的资源使用情况 $ kubectl top nodeNAME         CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%k8s-unode1   158m         7%     1814Mi          47%k8s-unode2   50m          2%     874Mi           23%k8s-unode3   51m          2%     943Mi           24%k8s-unode4   45m          2%     905Mi           23%$ kubectl top node k8s-unode1NAME         CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%k8s-unode1   160m         8%     1811Mi          47%
  查看pod的资源使用情况, --containers  可以显示pod内所有的 container  $ kubectl top pod -n metrics-serverNAME                              CPU(cores)   MEMORY(bytes)metrics-server-56c6866684-w6n9b   5m           17Mi$ kubectl top pod --containers -n metrics-serverPOD                               NAME             CPU(cores)   MEMORY(bytes)metrics-server-56c6866684-w6n9b   metrics-server   5m           17Mi
  指标的具体含义 这里CPU 的 m   和 memory 的  mi   与k8s中 request、limit是一致的,cpu单位的100m=0.1 内存单位 1MI=1204Ki pod的内存值是其内存的实际使用量,也是做limit限制时判断oom的依据。pod的使用量等于其所有业务容器的综合,但是不包含pause容器。与Cadvisr中的container_memory_working_set_bytes 指标值相等。 node的值并不等于该node上所有pod值的总和,也不等于直接在机器上执行top或free所得到的值。
  kubectl top pod 内存计算
  每次启动 pod,都会有一个 pause 容器,既然是容器就一定有资源消耗(一般在 2-3M 的内存),cgroup 文件中,业务容器和 pause 容器都在同一个 pod的文件夹下。
  但 cadvisor 在查询 pod 的内存使用量时,是先获取了 pod 下的container列表,再逐个获取container的内存占用,不过这里的 container 列表并没有包含 pause,因此最终 top pod 的结果也不包含 pause 容器
  pod 的内存使用量计算
  kubectl top pod 得到的内存使用量,并不是cadvisor 中的 container_memory_usage_bytes  ,而是 container_memory_working_set_bytes  ,计算方式为: container_memory_usage_bytes == container_memory_rss + container_memory_cache + kernel memory  container_memory_working_set_bytes = container_memory_usage_bytes – total_inactive_file  (未激活的匿名缓存页)
  container_memory_working_set_bytes  是容器真实使用的内存量,也是limit限制时的 oom 判断依据
  kubectl top命令和 top 的差异和上边 一致,无法直接对比,同时,就算你对 pod 做了limit 限制,pod 内的 top 看到的内存和 cpu总量仍然是机器总量,并不是pod 可分配量 进程的RSS为进程使用的所有物理内存(file_rss anon_rss),即Anonymous pages Mapped apges(包含共享内存) cgroup RSS为(anonymous and swap cache memory),不包含共享内存。两者都不包含file cache 实现原理
  数据链路
  k8s dashboard、kubectl top等都是通过apiserver获取监控数据,数据链路如下:
  使用 heapster 时:apiserver 会直接将metric请求通过 proxy 的方式转发给集群内的 hepaster 服务 使用 metrics-server 时:apiserver是通过/apis/metrics.k8s.io/的地址访问metric
  监控体系
  在提出 metric api 的概念时,官方页提出了新的监控体系,监控资源被分为了2种: Core metrics(核心指标):从 Kubelet、cAdvisor 等获取度量数据,再由metrics-server提供给 Dashboard、HPA 控制器等使用。 Custom Metrics(自定义指标):由Prometheus Adapter提供API custom.metrics.k8s.io,由此可支持任意Prometheus采集到的指标。
  核心指标只包含node和pod的cpu、内存等,一般来说,核心指标作HPA已经足够,但如果想根据自定义指标:如请求qps/5xx错误数来实现HPA,就需要使用自定义指标了。 目前Kubernetes中自定义指标一般由Prometheus来提供,再利用k8s-prometheus-adpater聚合到apiserver,实现和核心指标(metric-server)同样的效果。
  kubelet
  无论是废弃的heapster还是metric-server,都只是数据的中转和聚合;两者都是调用的kubelet的api接口获取的数据。kubelet代码中实际集成了采集指标的cAdvisor模块,可以通过kubelet暴露的10250端口获取监控数据 Kubelet Summary metrics: 127.0.0.1:10250/metrics,暴露 node、pod 汇总数据 Cadvisor metrics: 127.0.0.1:10250/metrics/cadvisor,暴露 container 维度数据
  kubelet虽然提供了 metric 接口,但实际监控逻辑由内置的cAdvisor模块负责。 cAdvisor
  cAdvisor由谷歌开源,使用go语言开发。项目地址: https://github.com/google/cadvisor
  cadvisor不仅可以搜集一台机器上所有运行的容器信息,包括CPU使用情况、内存使用情况、网络吞吐量及文件系统使用情况,还提供基础查询界面和http接口,方便其他组件进行数据抓取。在K8S中集成在Kubelet里作为默认启动项,k8s官方标配。
  cadvisor获取指标时实际调用的是 runc/libcontainer库,而libcontainer是对 cgroup文件 的封装,即 cadvsior也只是个转发者,它的数据来自于cgroup文件。 cgroup
  cgroup文件中的值是监控数据的最终来源,如 mem usage的值,来自于 /sys/fs/cgroup/memory/docker/[containerId]/memory.usage_in_bytes  如果没限制内存, Limit = machine_mem  ,否则来自于  /sys/fs/cgroup/memory/docker/[id]/memory.limit_in_bytes  内存使用率 =  memory.usage_in_bytes/memory.limit_in_bytes
  一般情况下,cgroup文件夹下的内容包括CPU、内存、磁盘、网络等信息。
  device:设备控制权限cpuset:分配指定的CPU和内存节点cpu:控制CPU占用率cpuacct:统计CPU使用情况memory:限制内存的使用上限freezer:冻结Cgroup中的进程net_cls:配合(traffic controller)限制网络带宽net_prio:设置进程的网络流量优先级huge_tlb:限制HugeTLB的使用pref_event:允许perf工具基于cgrgoup分组做性能监测
  memory下的几个常用的指标含义:
  memory.usage_in_bytes: 已使用的内存量(包含cache和buffer)字节,相当于linux的userd_memmemory.limit_in_bytes: 限制的内存总量(字节),相当于linux的total_memmemory.failcnt:    申请内存失败次数计数memory.stat: 内存相关状态memory.memsw.usage_in_bytes:  已使用内存和swapmemory.memsw.limit_in_bytes: 限制的内存和swapmemory.memsw.failcnt: 申请内存和swap失败次数计数

蔡少芬在没有爱的环境中带泪成长,46岁儿女双全蔡少芬是香港小姐出身,签约经纪公司后,开始进入演艺圈。她参演过大话西游妙手仁心创世纪水月洞天甄嬛传等精彩作品。蔡少芬不管在香港还是在大陆,是最受欢迎的女演员。她能走到今天的地步,是永劫无间ASE单局第一,斩获战神的竟然是ASE?这手大佛太吓人随着永劫无间的世界赛,来到了白热化的阶段,很多的网友也都在关注着,自己喜欢的队伍,在这一场赛事上面的表现。其中CC直播有很多强力的签约战队,他们在这一次的世界赛上面,表现的非常的好前广厦太子爷落寞无比,已失去郭士强的信任,离开李春江难有发展如今的CBA拥有很多的球二代,因为他们这个身份,比其他球员受到更多的关注,其中有的球员实力不错,比如辽宁队的三位球员,郭艾伦,张镇麟和付豪,他们都是球二代,实力也都是联盟顶级,当然曝小贝长子秘密完婚!百亿儿媳娶进家门,46岁贝克汉姆当喜公公了近段时间,世界足坛接连传出感染病毒的消息,不过对于昔日的超级巨星贝克汉姆来说,生活没有受到任何打扰,而且显得十分惬意。贝克汉姆晒出了全家人出游的照片,可以看到他们乘坐一艘豪华邮轮出恭喜林丹!4年3层豪华别墅建成,内饰犹如皇宫,300万豪车放门前随着中国经济水平的不断提升能够知道,国内的职业运动员们的工资也越来越高,像男篮,男足这些运动员,一年的工资可能普通人一辈子都赚不到。毕竟现在体育事业发展得也非常迅速,所以高工资也是郎平赖亚文安家杰已放弃竞聘女排主帅拥有博士学位的他或许有机会1月10日,在中国排协发布选聘中国女排主教练公告的同一天,前中国女排主教练郎平的助手安家杰正式出任山东女排主教练。排协公布了选聘领导小组和专家组,赖亚文出任领导小组和专家组的双料副CBA处罚来了,球迷直言处罚太轻,杨宝岩一举止更是不可原谅媒体人与首钢男篮球员的不和谐场面有了处理结果,涉事的媒体人杨宝岩向场内球员喊话,直接导致首钢男篮的球员与其发生争执,之后现场工作人员进行劝阻并且将媒体人带出现场。CBA联赛给出了处17分17助攻,打破119年队史纪录!模板保罗,不愧是全美第一控卫肯塔基大一新生TytyWashington,很有可能会成为下一位乐透顺位的NBA球员。对阵乔治亚斗牛犬的比赛中,控卫SahvirWheeler因伤无法出战。临危受命的Tyty,被球李宵鹏国足大名单深度剖析李家军集训将于2022年1月11日开启,首期集训52人,1月27日2月1日的2场12强赛,中国队都是打客场,哪些队员会登上飞往日本和越南的航班?深度剖析那些人只是集训,那些人会出征策划这是喝多了?赢一局竟然加2颗星!王者段位直接烂大街策划你这是喝多了吗?赢一局竟然能加两颗星,只因策划的这个骚操作,以后王者段位彻底烂大街了,这到底是咋回事呢?就在今天我突然发现,在体验服排位中,只要到达白银三段位,系统就会送你2张PDD曾经迷恋的女人现在也是我的小伙伴了如果你还没遇到心仪的游戏女角色,我建议老哥你千万别心急。因为,这没准是一件好事儿今年中旬,PDD直播幻塔(测试阶段)时,相中里面一个名叫梅丽尔的拟态女角色。不知道是干柴烈火的缘故,
十三塑造地球表面景观水文循环和崩坏作用2(崩坏作用)4。崩坏作用4。1什么是崩坏作用1970年5月31日,秘鲁安第斯小镇Yungay发生地震。地面震动还打破了一块800米宽的冰板,这块冰从NevadoHuascaran山顶的冰川末端比黄金还贵!这个起源于洲际导弹的材料你可能常看见却不知道说起聚酰亚胺,你听起来可能会觉得陌生,但一定或多或少的见过它。最典型的例子就是卫星和航天器,你可以回想一下它们的外观,是不是外表常会裹着一层像金箔纸一样的东西?新视野号探测器(左)视频丨中国大学生高分子材料创新创业大赛元宇宙决赛成功举办视频加载中12月7日,由中国石油和化学工业联合会中国化工教育协会中共广饶县委广饶县人民政府和橡胶谷集团有限公司联合主办的孙武故里现代之城幸福广饶第十届中国大学生高分子材料创新创业大串起灵动的岛屿OPPO长安研发中心部分结构封顶OPPO长安研发中心OPPO长安研发中心在设计中运用圆形元素串起各个塔楼,形成活力四射的岛屿群,相互交融又错落有致。近期项目主体结构部分封顶,已进入二次施工及机电安装阶段。筑博设计空气消毒机的外壳和结构是怎么设计的空气消毒机的外壳和结构是怎么设计的等离子空气净化器医用空气消毒机空气净化消毒机中央家用新风系统厂家利安达官网的的结构是怎么设计的?空气消毒机一般是使用风机,滤网,消毒配件等组合而成明尼苏达大学工程师开发出超声元表面可移动大型物体而不接触它们明尼苏达大学的工程师们开发了一个新系统,可以在不进行物理接触的情况下移动物体。该技术涉及超声波作用于专门的表面,将物体推向甚至拉向不同的方向,这一技术进步有助于制造业和机器人技术。伊万卡特朗普时尚穿搭系列伊万卡特朗普(IvankaTrump),1981年10月30日出生于美国纽约,毕业于宾夕法尼亚大学沃顿商学院,世界超级名模,美国纽约房地产特朗普集团副总裁,身高180厘米,体重60旗舰红魔8Pro系列真机照出炉方方正正高颜值板砖?日前高通骁龙8Gen2发布后,红魔游戏手机曾预热红魔8Pro系列将是首款搭载骁龙8Gen2的游戏手机,现在红魔8Pro系列已经入网,工信部证件照也能查看了。如上图所见,红魔8ProAdobe全家桶一键直装无需破解(支持Win全系列和Mac全系列)Adobe系列软件是摄影师和设计师的必备软件旗下各类型软件可以说在软件工具领域遍地开花,只要从事多媒体设计相关的工作者,基本都会用到Adobe的软件,大家对其软件的集合更有全家桶的历代华为mate系列最经典的3款机型,每一款都比iPhone手机好用前言华为mate系列是华为手机的高端旗舰系列,华为对mate系列的定位是商务旗舰。基于这个定位,华为把自己能够给的配置技术都给了mate系列,并把mate系列的价格设置得非常高,起小米12系列对比小米13系列手机对比1213小米13相较于小米12由曲屏变为直屏对处理器内存及储存规格无线充电前置相机后置主摄及长焦镜头防抖水平变焦能力徕卡影像IP68防尘防水机身厚度储存版本等方面进行了升级