Kubernetes 文档 / 概念 / Kubernetes 架构 / 关于 cgroup v2

Kubernetes 文档 / 概念 / Kubernetes 架构 / 关于 cgroup v2

此文档从 Kubernetes 官网摘录
中文地址
英文地址
kubelet 和底层容器运行时都需要对接 cgroup 来强制执行为 Pod 和容器管理资源, 这包括为容器化工作负载配置 CPU/内存请求和限制

什么是 cgroup v2?

cgroup v2 对 cgroup v1 进行了多项改进,例如:

  • API 中单个统一的层次结构设计
  • 更安全的子树委派给容器
  • 更新的功能特性, 例如压力阻塞信息(Pressure Stall Information,PSI)
  • 跨多个资源的增强资源分配管理和隔离
  • 统一核算不同类型的内存分配(网络内存、内核内存等)
  • 考虑非即时资源变化,例如页面缓存回写

使用 cgroup v2

使用 cgroup v2 的推荐方法是使用一个默认启用 cgroup v2 的 Linux 发行版。

要检查你的发行版是否使用 cgroup v2,请参阅识别 Linux 节点上的 cgroup 版本。

要求

cgroup v2 具有以下要求:

  • 操作系统发行版启用 cgroup v2
  • Linux 内核为 5.8 或更高版本
  • 容器运行时支持 cgroup v2。例如:
    • containerd v1.4 和更高版本
    • cri-o v1.20 和更高版本
  • kubelet 和容器运行时被配置为使用 systemd cgroup 驱动

Linux 发行版 cgroup v2 支持

有关使用 cgroup v2 的 Linux 发行版的列表, 请参阅 cgroup v2 文档

迁移到 cgroup v2

kubelet 能够自动检测操作系统是否运行在 cgroup v2 上并相应调整其操作,无需额外配置。

切换到 cgroup v2 时,用户体验应没有任何明显差异,除非用户直接在节点上或从容器内访问 cgroup 文件系统。

cgroup v2 使用一个与 cgroup v1 不同的 API,因此如果有任何应用直接访问 cgroup 文件系统, 则需要将这些应用更新为支持 cgroup v2 的版本。例如:

  • 一些第三方监控和安全代理可能依赖于 cgroup 文件系统。你要将这些代理更新到支持 cgroup v2 的版本。
  • 如果以独立的 DaemonSet 的形式运行 cAdvisor 以监控 Pod 和容器, 需将其更新到 v0.43.0 或更高版本。
  • 如果你部署 Java 应用程序,最好使用完全支持 cgroup v2 的版本:
    • OpenJDK / HotSpot: jdk8u372、11.0.16、15 及更高的版本
    • IBM Semeru Runtimes: 8.0.382.0、11.0.20.0、17.0.8.0 及更高的版本
    • IBM Java: 8.0.8.6 及更高的版本
  • 如果你正在使用 uber-go/automaxprocs 包, 确保你使用的版本是 v1.5.1 或者更高。

识别 Linux 节点上的 cgroup 版本

要检查你的发行版使用的是哪个 cgroup 版本,请在该节点上运行 stat -fc %T /sys/fs/cgroup/ 命令:

stat -fc %T /sys/fs/cgroup/

对于 cgroup v2,输出为 cgroup2fs

对于 cgroup v1,输出为 tmpfs

相关推荐

  1. Kubernetes 文档 / 概念 / Kubernetes 架构 / 控制器

    2024-05-12 12:36:07       35 阅读
  2. linux系统kubernetes概念

    2024-05-12 12:36:07       41 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-12 12:36:07       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-12 12:36:07       100 阅读
  3. 在Django里面运行非项目文件

    2024-05-12 12:36:07       82 阅读
  4. Python语言-面向对象

    2024-05-12 12:36:07       91 阅读

热门阅读

  1. 法人单位和产业活动单位有什么区别和联系

    2024-05-12 12:36:07       37 阅读
  2. 比亚迪算法岗面试,问的贼细!

    2024-05-12 12:36:07       31 阅读
  3. 数据库监控监听

    2024-05-12 12:36:07       37 阅读
  4. C# 实现加减乘除 (备忘)

    2024-05-12 12:36:07       35 阅读
  5. 计算机视觉教学实训解决方案

    2024-05-12 12:36:07       37 阅读
  6. 1080:余数相同问题

    2024-05-12 12:36:07       30 阅读
  7. [C/C++] -- 适配器模式

    2024-05-12 12:36:07       37 阅读
  8. 整体意义的构成与构建

    2024-05-12 12:36:07       42 阅读
  9. 【负载均衡式在线OJ项目day5】OJ服务模块概要

    2024-05-12 12:36:07       35 阅读
  10. 复习用到知识(asp.net)

    2024-05-12 12:36:07       37 阅读
  11. sass详解与使用

    2024-05-12 12:36:07       34 阅读