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

k8s pod “cpu和内存“ 资源限制

转载用于收藏学习:原文

文章目录

  • Pod资源限制
  • requests:
  • limits:
  • docker run命令和 CPU 限制相关的所有选项如下:

Pod资源限制

为了保证充分利用集群资源,且确保重要容器在运行周期内能够分配到足够的资源稳定运行,因此平台需要具备
Pod的资源限制的能力。 对于一个pod来说,资源最基础的2个的指标就是:CPU和内存。
Kubernetes提供了个采用requests和limits 两种类型参数对资源进行预分配和使用限制。

requests:

  1. 容器使用的最小资源需求,作用于schedule阶段,作为容器调度时资源分配的判断依赖
  2. 只有当前节点上可分配的资源量 >= request 时才允许将容器调度到该节点
  3. request参数不限制容器的最大可使用资源
  4. requests.cpu被转成docker的–cpu-shares参数,与cgroup cpu.shares功能相同 (无论宿主机有多少个cpu或者内核,–cpu-shares选项都会按照比例分配cpu资源)
  5. requests.memory没有对应的docker参数,仅作为k8s调度依据

limits:

  1. 容器能使用资源的最大值
  2. 设置为0表示对使用的资源不做限制, 可无限的使用
  3. 当pod 内存超过limit时,会被oom
  4. 当cpu超过limit时,不会被kill,但是会限制不超过limit值
  5. limits.cpu会被转换成docker的–cpu-quota参数。与cgroup cpu.cfs_quota_us功能相同
  6. limits.memory会被转换成docker的–memory参数。用来限制容器使用的最大内存

对于 CPU,我们知道计算机里 CPU 的资源是按 “时间片”的方式来进行分配的,系统里的每一个操作都需要 CPU 的处理,所以,哪个任务要是申请的 CPU 时间片越多,那么它得到的 CPU 资源就越多。然后还需要了解下 CGroup 里面对于 CPU 资源的单位换算:
1 CPU = 1000 millicpu(1 Core = 1000m)
这里的 m 就是毫、毫核的意思,Kubernetes 集群中的每一个节点可以通过操作系统的命令来确认本节点的 CPU 内核数量,然后将这个数量乘以1000,得到的就是节点总 CPU 总毫数。比如一个节点有四核,那么该节点的 CPU 总毫量为 4000m。

docker run命令和 CPU 限制相关的所有选项如下:

选项描述
–cpuset-cpus=“”允许使用的 CPU 集,值可以为 0-3,0,1
-c,–cpu-shares=0CPU 共享权值(相对权重)
cpu-period=0限制 CPU CFS 的周期,范围从 100ms~1s,即[1000, 1000000]
–cpu-quota=0限制 CPU CFS 配额,必须不小于1ms,即 >= 1000,绝对限制
docker run -it --cpu-period=50000 --cpu-quota=25000 ubuntu:16.04 /bin/bash> 将 CFS 调度的周期设为 50000,将容器在每个周期内的 CPU 配额设置为 25000,表示该容器每 50ms 可以得到 50% 的 CPU 运行时间。
注意:若内存使用超出限制,会引发系统的OOM机制,因CPU是可压缩资源,不会引发Pod退出或重建

————————————————
版权声明:本文为CSDN博主「凤舞飘伶」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/woshaguayi/article/details/129387686

http://www.lryc.cn/news/93805.html

相关文章:

  • datagrip 连接 phoenix
  • 黑客入侵的常法
  • VB报警管理系统设计(源代码+系统)
  • Redis入门 - Redis Stream
  • 微服务中常见问题
  • 更新删除清理购物车
  • 基于Intel NUC平台的字符设备陀螺仪GX5-25驱动程序
  • 建立小型医学数据库(总结)
  • Git学习笔记
  • vue面试题1. 请说下封装 vue 组件的过程?2. Vue组件如何进行传值的?3. Vue 组件 data 为什么必须是函数?4. 讲一下组件的命名规范
  • Docker使用记录
  • OpenCV(图像处理)-基于Python-形态学处理-开运算、闭运算、顶帽、黑帽运算
  • chatgpt赋能python:Python支持跨平台软件开发
  • 哈工大计算机网络课程网络层协议详解之:CIDR与路由聚集
  • C++ 教程(19)——日期 时间
  • React 应用 Effect Hook 函数式中操作生命周期
  • C代码程序实现扫雷游戏纯代码版本
  • ai代写---怎么在ubutnu服务器中安装mqtt
  • 【设计模式与范式:行为型】63 | 职责链模式(下):框架中常用的过滤器、拦截器是如何实现的?
  • Kendo UI for jQuery---03.组件___网格---02.开始
  • 初识Telegraf、InfluxDB和Grafana铁三角形成的监控可视化解决方案
  • 【哈佛积极心理学笔记】第20课 幸福与幽默
  • 设计模式-责任链模式
  • 不变的是需求,变化的是解决方法和工具:探讨iPaaS与ESB的差异
  • 网络解析----faster rcnn
  • modbus TCP协议讲解及实操
  • 既有内销又有外贸,多样性外贸业务管理解决方案
  • spring eurake中使用IP注册
  • c# 从零到精通 form界面之listView控件
  • Qt6.5.1+WebRTC学习笔记(十二)环境搭建流媒体服务器(ubuntu22.04+SRS)