当前位置: 首页 > news >正文

网站开发系统规划江西建设信息港网站

网站开发系统规划,江西建设信息港网站,网页设计在线制作,网站栏目变了怎么做跳转k8s笔记27--快速了解 k8s pod和 cgroup 的关系 介绍pod cgroup注意事项说明 介绍 随着云计算、云原生技术的成熟和广泛应用#xff0c;K8S已经成为容器编排的事实标准#xff0c;学习了解容器、K8S技术对于新时代的IT从业者显得极其重要了。 之前在文章 docker笔记13–… k8s笔记27--快速了解 k8s pod和 cgroup 的关系 介绍pod cgroup注意事项说明 介绍 随着云计算、云原生技术的成熟和广泛应用K8S已经成为容器编排的事实标准学习了解容器、K8S技术对于新时代的IT从业者显得极其重要了。 之前在文章 docker笔记13–面试必知的容器核心技术 中介绍了容器相关的核心技术包括容器的隔离技术和限制技术搞明白这些内容可以说理解了容器技术的底层原理。k8s作为当前最流行的开源的容器编排引擎用来对容器化应用进行自动化部署、 扩缩和管理它以pod为基础构成了各种有价值的工作负载。作为最重要的工作负载它和容器有什么关联呢是如何利用cgroup来实现资源限制的呢它的限制又体现在哪里呢本文就基于这些基础问题一步步展开… pod cgroup Pod 是可以在 Kubernetes 中创建和管理的、最小的可部署的计算单元, 它包含一组容器这些容器共享存储、网络、以及怎样运行这些容器的声明。 当Pod备调度期调度到某个节点后节点上的kubelet就会和High-Level的容器运行时通信把创建pod所涉及的容器参数传递给容器运行时容器运行时最终通过Low-Level的runc或者其它运行时工具创建对应的容器。当容器创建成功后我们可以通过docker inspect 或者 nerdctl inspect 来找到容器的pid然后通过pid找到具体的cgroup信息。 k8s pod相关cgroup基础信息位置如下 k8s pod相关cgroup位置 /sys/fs/cgroup/systemd/kubepods.sliceGuaranteed 类型pod 直接存放在 kubepods.slice 根目录下例如: /sys/fs/cgroup/systemd/kubepods.slice/kubepods-pod48574e3c_f4d0_4a5c_84bb_166fd32ea22b.sliceBurstable 类型pod直接在子目录 kubepods-burstable.slice下, 例如 /sys/fs/cgroup/systemd/kubepods.slice/kubepods-burstable.slice/kubepods-burstable-pod49f8fde6_4c35_44c7_a237_c5b8c4312953.sliceBest-Effort 类型pod直接在子目录 kubepods-besteffort.slice下, 例如 /sys/fs/cgroup/systemd/kubepods.slice/kubepods-besteffort.slice/kubepods-besteffort-podc1bb8757_1115_4dc5_a0cf_5fd39e14fdd9.slice此处以 xg-dev命名空间的 pod besteffort-busybox-778b6fb576-8p59p为例可以通过如下步骤找到对应的cgroup详细信息 1) 获取容器信息 # nerdctl --namespacek8s.io ps|grep besteffort b6ec5bbb1447 docker.io/kubesphere/pause:3.7 /pause 36 minutes ago Up k8s://xg-dev/besteffort-busybox-778b6fb576-8p59p be0bfc9325bc docker.io/library/busybox:1.32 /bin/sh -c sleep 36… 36 minutes ago Up k8s://xg-dev/besteffort-busybox-778b6fb576-8p59p/busybox2通过nerdctl inspect 获取容器pid # nerdctl --namespacek8s.io inspect be0bfc9325bc|grep -i pidPid: 33866,3通过pid获取 cgroup位置 通过 cat /proc/${pid}/cgroup 来找到实际pid的cgroup配置 # cat /proc/33866/cgroup 11:devices:/kubepods.slice/kubepods-besteffort.slice/kubepods-besteffort-podc1bb8757_1115_4dc5_a0cf_5fd39e14fdd9.slice/cri-containerd-be0bfc9325bcf952464d5bf613e29afd792cbb9069bd34164ddc6a23e5b10ea5.scope 10:blkio:/kubepods.slice/kubepods-besteffort.slice/kubepods-besteffort-podc1bb8757_1115_4dc5_a0cf_5fd39e14fdd9.slice/cri-containerd-be0bfc9325bcf952464d5bf613e29afd792cbb9069bd34164ddc6a23e5b10ea5.scope 9:hugetlb:/kubepods.slice/kubepods-besteffort.slice/kubepods-besteffort-podc1bb8757_1115_4dc5_a0cf_5fd39e14fdd9.slice/cri-containerd-be0bfc9325bcf952464d5bf613e29afd792cbb9069bd34164ddc6a23e5b10ea5.scope 8:memory:/kubepods.slice/kubepods-besteffort.slice/kubepods-besteffort-podc1bb8757_1115_4dc5_a0cf_5fd39e14fdd9.slice/cri-containerd-be0bfc9325bcf952464d5bf613e29afd792cbb9069bd34164ddc6a23e5b10ea5.scope 7:freezer:/kubepods.slice/kubepods-besteffort.slice/kubepods-besteffort-podc1bb8757_1115_4dc5_a0cf_5fd39e14fdd9.slice/cri-containerd-be0bfc9325bcf952464d5bf613e29afd792cbb9069bd34164ddc6a23e5b10ea5.scope 6:perf_event:/kubepods.slice/kubepods-besteffort.slice/kubepods-besteffort-podc1bb8757_1115_4dc5_a0cf_5fd39e14fdd9.slice/cri-containerd-be0bfc9325bcf952464d5bf613e29afd792cbb9069bd34164ddc6a23e5b10ea5.scope 5:net_prio,net_cls:/kubepods.slice/kubepods-besteffort.slice/kubepods-besteffort-podc1bb8757_1115_4dc5_a0cf_5fd39e14fdd9.slice/cri-containerd-be0bfc9325bcf952464d5bf613e29afd792cbb9069bd34164ddc6a23e5b10ea5.scope 4:cpuset:/kubepods.slice/kubepods-besteffort.slice/kubepods-besteffort-podc1bb8757_1115_4dc5_a0cf_5fd39e14fdd9.slice/cri-containerd-be0bfc9325bcf952464d5bf613e29afd792cbb9069bd34164ddc6a23e5b10ea5.scope 3:cpuacct,cpu:/kubepods.slice/kubepods-besteffort.slice/kubepods-besteffort-podc1bb8757_1115_4dc5_a0cf_5fd39e14fdd9.slice/cri-containerd-be0bfc9325bcf952464d5bf613e29afd792cbb9069bd34164ddc6a23e5b10ea5.scope 2:pids:/kubepods.slice/kubepods-besteffort.slice/kubepods-besteffort-podc1bb8757_1115_4dc5_a0cf_5fd39e14fdd9.slice/cri-containerd-be0bfc9325bcf952464d5bf613e29afd792cbb9069bd34164ddc6a23e5b10ea5.scope 1:namesystemd:/kubepods.slice/kubepods-besteffort.slice/kubepods-besteffort-podc1bb8757_1115_4dc5_a0cf_5fd39e14fdd9.slice/cri-containerd-be0bfc9325bcf952464d5bf613e29afd792cbb9069bd34164ddc6a23e5b10ea5.scope4通过 ls /sys/fs/cgroup/systemd/** 就可以看到这个pod指定容器的cgroup基础信息其中 cgroup.procs 存放了容器进程的id # ls /sys/fs/cgroup/systemd/kubepods.slice/kubepods-besteffort.slice/kubepods-besteffort-podc1bb8757_1115_4dc5_a0cf_5fd39e14fdd9.slice/cri-containerd-be0bfc9325bcf952464d5bf613e29afd792cbb9069bd34164ddc6a23e5b10ea5.scope cgroup.clone_children cgroup.event_control cgroup.procs notify_on_release tasks5进一步可以在 /sys/fs/cgroup/cpu/kubepods.slice/* 中查看cpu相关详细cgroup信息 # ls /sys/fs/cgroup/cpu/kubepods.slice/kubepods-besteffort.slice/kubepods-besteffort-podc1bb8757_1115_4dc5_a0cf_5fd39e14fdd9.slice/cri-containerd-be0bfc9325bcf952464d5bf613e29afd792cbb9069bd34164ddc6a23e5b10ea5.scope cgroup.clone_children cgroup.procs cpuacct.usage cpu.cfs_period_us cpu.rt_period_us cpu.shares notify_on_release cgroup.event_control cpuacct.stat cpuacct.usage_percpu cpu.cfs_quota_us cpu.rt_runtime_us cpu.stat tasks同理可以在 /sys/fs/cgroup/{blkio,memory}/** 中查看blkio、memory等详细信息。创建3个不同qosClass 的 deployment, 相关参数如下: besteffort-busyboxburstable-busyboxguaranted-busyboxcpu requests60m60m空memory requests50Mi50Mi空cpu limits60m100m空memory limits50Mi100Mi空cgroup 位置/sys/*/kubepods.slice//sys/*/kubepods.slice/kubepods-burstable.slice/sys/*/kubepods.slice/kubepods-besteffort.slice guaranted-busybox 容器的CPU和Memory信息如下 这里 cfs_period_us 默认为100ms 100ms内cfs_quota_us为6ms即1000ms内为60ms等价于我们的60m 这里 5010241024 52428800 刚好为50Mi 同理 burstable-busybox 容器的CPU和Memory信息如下 这里100ms内cfs_quota_us为10ms刚好对应CPU limit 100m, 10010241024 104857600 刚好对应memory limit 100Mi 同理 besteffort-busybox 容器的CPU和Memory信息如下 可以发现 besteffort 的pod对应的容器cpu.cfs_quota_us为-1 memory.limit_in_bytes为一个极大值(远超实际的内存)。 通过上述内容可以发现当Pod对应的容器在机器创建成功后系统上会对该容器做对应的cgroup限制后续CPU、内存的使用就会被限制了。 注意事项 每个pod在启动的时候除了有正常运行的容器外还有一个做初始化工作的pause容器 我们可以看到kubelet的启动配置参数中有一个类似–pod-infra-container-imagekubesphere/pause:3.7 类型的参数通过名字可以大概猜到时pod基础镜像相关的容器。pause 容器它cgroup 的 cpu.cfs_quota_us值也为-1 memory.limit_in_bytes也为一个极大值。 默认每个pod都有一个对应的pause容器: kubelet启动参数中指定了 pod-infra-container-image 参数 说明 软件环境: centos 7 k8s v1.24.9 containerd v1.7.3 cgroup v1 参考文档: k8s官方文档-工作负载 Kubernetes-Qos之 Guaranteed, BurstableBest-Effor Kubernetes中 Requests 和 Limits 的初步理解 Kubernetes中的Pause容器到底是干嘛的
http://www.dnsts.com.cn/news/240125.html

相关文章:

  • wordpress做网站手机建设局焊工证图样
  • 权威的南昌网站设计深圳网站建设网站制作网站设计
  • 网站能带来什么职业教育网站平台建设
  • 消防电气火灾监控系统网站开发集团网站风格
  • 免费微网站系统源码免费网络推广
  • 决定网站打开的速度昆山做网站的kamese
  • 阿里云做网站开发吗汽车租赁网站建设
  • 公司网站如何被百度收录深圳市建设工程造价管理站
  • 九江哪里做网站公司做网站需要什么内容
  • 怎么优化网站关键词的方法争对银行排队做一网站
  • 提供营销单页网站乌市做网站的公司
  • 苏州市城乡建设局网站首页网站建设 域名 数据库
  • 青岛网页建站工具文化建设的中心环节是什么
  • wordpress所有版本百度搜索seo怎么做
  • 怎么把文件发送到网站1688货源网一件代发童装
  • wordpress网站弹窗插件福建住房和城乡建设厅网站首页
  • 程序员 做 个人网站android编程
  • 怎么建设网站阿里云html开头基础代码
  • 做外贸网站咨询网站优化推广培训
  • 自己做网站运营网站开发 零基础
  • 综合型网站建设青浦网站制作公司
  • 如何建开发手机网站文字logo免费设计在线生成
  • 什么网站做外贸最多的成都建设网官网
  • 中江门户网站餐饮网站建设优化建站
  • 莱芜找工作网站百度爱采购平台登录
  • 漳州最专业的网站建设公司微信公众号运营大学
  • 移动课程播放网站建设多少钱wordpress adminlte
  • 网站是别人做的 ftp账号吗建设婚恋网站基本功能有哪些
  • 想买手表在哪个网站买是正品asp.net sql server网站建设 pdf
  • 江苏优化网站哪家好三合一网站建设口碑好