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

kubernetes中pod spec设置的limits request会转换为哪些参数进行限制

在 Kubernetes 中,Pod 的 spec 中定义的 requests 和 limits 是用于管理和限制容器资源使用的重要参数。它们主要涉及 CPU 和内存资源。当你为一个容器设置了 requests 和 limits,Kubernetes 会将这些值转换为底层系统(如 Linux cgroups)中的相应参数,以对容器进行资源管理和限制。

1. CPU 限制和请求

  • CPU Requests (requests.cpu):
    • 定义: 指定了容器在调度时所需的最小 CPU 资源。调度器使用此值来决定在哪个节点上运行 Pod,以确保节点具有足够的可用 CPU 资源。
    • 转换为 cgroups 参数:
      • 在 Linux cgroups 中,requests.cpu 影响的是 cpu.shares。cpu.shares 是相对权重,用于决定在节点资源紧张时,容器可以获得多少 CPU 资源。默认情况下,一个 CPU 核心的 cpu.shares` 设置为 1024。
  • CPU Limits (limits.cpu):
    • 定义: 指定了容器可以使用的最大 CPU 资源。容器的 CPU 使用量不能超过这个限制。
    • 转换为 cgroups 参数:
      • 在 Linux cgroups 中,limits.cpu 影响的是 cpu.cfs_quota_us 和 cpu.cfs_period_us。这些参数限制了容器可以使用的 CPU 时间。例如,cpu.cfs_quota_us 设定为 100ms 意味着容器每 100ms 的周期中最多只能使用 100ms 的 CPU 时间,相当于限制容器使用一个 CPU 核心。

2. 内存限制和请求

  • Memory Requests (requests.memory):
    • 定义: 指定了容器在调度时所需的最小内存资源。调度器会根据这个值来确保节点有足够的可用内存资源。
    • 转换为 cgroups 参数:
      • 在 Linux cgroups 中,requests.memory 不直接转换为一个硬性限制参数,而是影响调度决策,确保节点具有足够的内存资源来启动容器。
  • Memory Limits (limits.memory):
    • 定义: 指定了容器可以使用的最大内存资源。容器的内存使用量不能超过这个限制,如果超过,可能会触发 OOM(Out Of Memory)杀手。
    • 转换为 cgroups 参数:
      • 在 Linux cgroups 中,limits.memory 转换为 memory.limit_in_bytes。这是一个硬性限制,容器使用的内存量不能超过这个值。如果容器尝试使用超过该值的内存,会触发 OOM 杀手,导致容器被终止。

5. 总结

  • CPU Requests → cpu.shares (相对权重)
  • CPU Limits → cpu.cfs_quota_us 和 cpu.cfs_period_us (CPU 时间配额)
  • Memory Requests → 影响调度,但不直接限制 (无直接 cgroups 参数)
  • Memory Limits → memory.limit_in_bytes (硬性内存限制)

通过这些机制,Kubernetes 可以在集群节点上有效地管理和隔离容器资源,确保不同的工作负载得到公平和合理的资源分配。

4.干货分享(自取)

  • 1. kubernetes CKA认证学习视频
  • 2. AI人工智能学习资料下载
  • 3. 信息安全管理体系(ISMS)制度模板分享
  • 4. 文档翻译工具,支持word、pdf、ppt、excel
  • 5. PuTTY中文版安装包
  • 6. MobaXterm中文版安装包

http://www.kler.cn/a/562162.html

相关文章:

  • [杂学笔记]OSI七层模型作用、HTTP协议中的各种方法、HTTP的头部字段、TLS握手、指针与引用的使用场景、零拷贝技术
  • 形式化数学编程在AI医疗中的探索路径分析
  • 爬虫运行后如何保存数据?
  • 【redis】数据类型之hyperloglog
  • 利用Java爬虫获取VIP商品详情实战案例指南
  • 如何使用深度学习进行手写数字识别(MNIST)
  • 基于Prometheus与Grafana构建实时监控与告警体系,保障微服务稳定性!
  • python如何去除列表末尾的None
  • Nmap网络安全审计
  • 超多目标优化:基于导航变量的多目标粒子群优化算法(NMOPSO)的无人机三维路径规划,MATLAB代码
  • https和http有什么区别
  • kotlin 知识点 七 泛型的高级特性
  • 【gitlab】认识 持续集成与部署
  • Java 值传递
  • python实现基于文心一言大模型的sql小工具
  • Unity Shader Graph 2D - Procedural程序化图形循环加载进度效果
  • 从零开始:使用PyTorch构建DeepSeek R1模型及其训练详解
  • 【愚公系列】《Python网络爬虫从入门到精通》034-DataFrame简单数据计算整理
  • PHP入门基础学习五(函数1)
  • 模型参数量与显存占用分析