8.6. 启用 Linux 控制组版本 2 (cgroup v2)
您可以通过编辑 node.config
对象在集群中启用 Linux 控制组群版本 2 (cgroup v2)。在 OpenShift Container Platform 中启用 cgroup v2 禁用集群中所有 cgroup 版本 1 控制器和层次结构。默认情况下,会启用 cgroup v1。
cgroup v2 是 Linux cgroup API 的当前版本。cgroup v2 比 cgroup v1 提供多种改进,包括统一层次结构、更安全的子树委派、新功能,如 Pressure Stall Information,以及增强的资源管理和隔离。但是,cgroup v2 与 cgroup v1 具有不同的 CPU、内存和 I/O 管理特征。因此,在运行 cgroup v2 的集群上,一些工作负载可能会遇到内存或 CPU 用量差异。
- 如果您运行依赖于 cgroup 文件系统的第三方监控和安全代理,请将代理更新为支持 cgroup v2 的版本。
- 如果您配置了 cgroup v2,并将 cAdvisor 作为监控 pod 和容器的独立守护进程集运行,请将 cAdvisor 更新至 v0.43.0 或更高版本。
如果您部署 Java 应用程序,请使用完全支持 cgroup v2 的版本,如以下软件包:
- OpenJDK / HotSpot: jdk8u372, 11.0.16, 15 及更新版本
- IBM Semeru Runtimes: jdk8u345-b01, 11.0.16.0, 17.0.4.0, 18.0.2.0 及更新版本
- IBM SDK Java 技术版本(IBM Java): 8.0.7.15 及更新版本
OpenShift Container Platform cgroups 版本 2 支持只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
8.6.1. 配置 Linux cgroup v2 复制链接链接已复制到粘贴板!
您可以通过编辑 node.config
对象来启用 cgroup v2。
目前,cgroup v2 不支持禁用 CPU 负载均衡。因此,如果您启用了 cgroup v2,则可能无法从性能配置集中获取所需的行为。如果您使用 executeace 配置集,则不建议启用 cgroup v2。
先决条件
- 您有一个正在运行的 OpenShift Container Platform 集群,它使用版本 4.12 或更高版本。
- 以具有管理特权的用户身份登录集群。
-
已使用功能门启用
TechPreviewNoUpgrade
功能集。
流程
在节点上启用 cgroup v2:
编辑
node.config
对象:oc edit nodes.config/cluster
$ oc edit nodes.config/cluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加
spec.cgroupMode: "v2"
:node.config
对象示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 启用 cgroup v2。
验证
检查机器配置以查看是否添加了新的机器配置:
oc get mc
$ oc get mc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 创建新机器配置,如预期一样。
检查新的
kernelArguments
是否已添加到新机器配置中:oc describe mc <name>
$ oc describe mc <name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查节点以查看是否禁用了在节点上调度。这表示要应用更改:
oc get nodes
$ oc get nodes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 节点返回
Ready
状态后,为该节点启动 debug 会话:oc debug node/<node_name>
$ oc debug node/<node_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
/host
设置为 debug shell 中的根目录:chroot /host
sh-4.4# chroot /host
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查您的节点上是否存在
sys/fs/cgroup/cgroup2fs
文件。此文件由 cgroup v2 创建:stat -c %T -f /sys/fs/cgroup
$ stat -c %T -f /sys/fs/cgroup
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
cgroup2fs
cgroup2fs
Copy to Clipboard Copied! Toggle word wrap Toggle overflow