$ oc edit nodes.config/cluster
从 OpenShift Container Platform 4.14 开始,OpenShift Container Platform 在您的集群中使用Linux 控制组版本 2 (cgroup v2)。如果您在 OpenShift Container Platform 4.13 或更早版本上使用 cgroup v1,迁移到 OpenShift Container Platform 4.14 或更高版本不会自动将您的 cgroup 配置更新到版本 2。OpenShift Container Platform 4.14 或更高版本的全新安装将默认使用 cgroup v2。但是,您可以在安装时启用Linux 控制组版本 1 (cgroup v1)。
cgroup v1 是一个已弃用的功能。OpenShift Container Platform 中仍然包含已弃用的功能,并且继续受支持;但是,它将在该产品的未来版本中删除,不建议用于新的部署。 有关 OpenShift Container Platform 中已弃用或删除的主要功能的最新列表,请参阅 OpenShift Container Platform 发行说明中的“已弃用和删除的功能”部分。 |
cgroup v2 是当前版本的 Linux cgroup API。cgroup v2 提供了比 cgroup v1 许多改进,包括统一的层次结构、更安全的子树委派、新功能(例如压力停顿信息)以及增强的资源管理和隔离。但是,cgroup v2 与 cgroup v1 具有不同的 CPU、内存和 I/O 管理特性。因此,某些工作负载在运行 cgroup v2 的集群上的内存或 CPU 使用率可能会略有差异。
您可以根据需要在 cgroup v1 和 cgroup v2 之间切换。在 OpenShift Container Platform 中启用 cgroup v1 将禁用集群中的所有 cgroup v2 控制器和层次结构。
|
您可以通过编辑node.config
对象来启用Linux 控制组版本 1 (cgroup v1) 或Linux 控制组版本 2 (cgroup v2)。默认值为 cgroup v2。
cgroup v1 是一个已弃用的功能。OpenShift Container Platform 中仍然包含已弃用的功能,并且继续受支持;但是,它将在该产品的未来版本中删除,不建议用于新的部署。 有关 OpenShift Container Platform 中已弃用或删除的主要功能的最新列表,请参阅 OpenShift Container Platform 发行说明中的“已弃用和删除的功能”部分。 |
您有一个运行的 OpenShift Container Platform 集群,该集群使用 4.12 或更高版本。
您已以具有管理权限的用户身份登录到集群。
在节点上启用 cgroup v1
编辑node.config
对象
$ oc edit nodes.config/cluster
编辑spec.cgroupMode
参数
node.config
对象示例apiVersion: config.openshift.io/v2
kind: Node
metadata:
annotations:
include.release.openshift.io/ibm-cloud-managed: "true"
include.release.openshift.io/self-managed-high-availability: "true"
include.release.openshift.io/single-node-developer: "true"
release.openshift.io/create-only: "true"
creationTimestamp: "2022-07-08T16:02:51Z"
generation: 1
name: cluster
ownerReferences:
- apiVersion: config.openshift.io/v2
kind: ClusterVersion
name: version
uid: 36282574-bf9f-409e-a6cd-3032939293eb
resourceVersion: "1865"
uid: 0c0f7a4c-4307-4187-b591-6155695ac85b
spec:
cgroupMode: "v1" (1)
...
1 | 指定v1 以启用 cgroup v1 或v2 以启用 cgroup v2。 |
检查机器配置以查看是否添加了新的机器配置
$ oc get mc
NAME GENERATEDBYCONTROLLER IGNITIONVERSION AGE
00-master 52dd3ba6a9a527fc3ab42afac8d12b693534c8c9 3.2.0 33m
00-worker 52dd3ba6a9a527fc3ab42afac8d12b693534c8c9 3.2.0 33m
01-master-container-runtime 52dd3ba6a9a527fc3ab42afac8d12b693534c8c9 3.2.0 33m
01-master-kubelet 52dd3ba6a9a527fc3ab42afac8d12b693534c8c9 3.2.0 33m
01-worker-container-runtime 52dd3ba6a9a527fc3ab42afac8d12b693534c8c9 3.2.0 33m
01-worker-kubelet 52dd3ba6a9a527fc3ab42afac8d12b693534c8c9 3.2.0 33m
97-master-generated-kubelet 52dd3ba6a9a527fc3ab42afac8d12b693534c8c9 3.2.0 33m
99-worker-generated-kubelet 52dd3ba6a9a527fc3ab42afac8d12b693534c8c9 3.2.0 33m
99-master-generated-registries 52dd3ba6a9a527fc3ab42afac8d12b693534c8c9 3.2.0 33m
99-master-ssh 3.2.0 40m
99-worker-generated-registries 52dd3ba6a9a527fc3ab42afac8d12b693534c8c9 3.2.0 33m
99-worker-ssh 3.2.0 40m
rendered-master-23d4317815a5f854bd3553d689cfe2e9 52dd3ba6a9a527fc3ab42afac8d12b693534c8c9 3.2.0 10s (1)
rendered-master-23e785de7587df95a4b517e0647e5ab7 52dd3ba6a9a527fc3ab42afac8d12b693534c8c9 3.2.0 33m
rendered-worker-5d596d9293ca3ea80c896a1191735bb1 52dd3ba6a9a527fc3ab42afac8d12b693534c8c9 3.2.0 33m
rendered-worker-dcc7f1b92892d34db74d6832bcc9ccd4 52dd3ba6a9a527fc3ab42afac8d12b693534c8c9 3.2.0 10s
1 | 按预期创建新的机器配置。 |
检查是否已将新的kernelArguments
添加到新的机器配置中
$ oc describe mc <name>
apiVersion: machineconfiguration.openshift.io/v2
kind: MachineConfig
metadata:
labels:
machineconfiguration.openshift.io/role: worker
name: 05-worker-kernelarg-selinuxpermissive
spec:
kernelArguments:
systemd_unified_cgroup_hierarchy=1 (1)
cgroup_no_v1="all" (2)
psi=1 (3)
1 | 在 systemd 中启用 cgroup v2。 |
2 | 禁用 cgroup v1。 |
3 | 启用 Linux 压力停顿信息 (PSI) 功能。 |
apiVersion: machineconfiguration.openshift.io/v2
kind: MachineConfig
metadata:
labels:
machineconfiguration.openshift.io/role: worker
name: 05-worker-kernelarg-selinuxpermissive
spec:
kernelArguments:
systemd.unified_cgroup_hierarchy=0 (1)
systemd.legacy_systemd_cgroup_controller=1 (2)
1 | 禁用 cgroup v2。 |
2 | 在 systemd 中启用 cgroup v1。 |
检查节点以查看节点上的调度是否已禁用。这表示正在应用更改
$ oc get nodes
NAME STATUS ROLES AGE VERSION
ci-ln-fm1qnwt-72292-99kt6-master-0 Ready,SchedulingDisabled master 58m v1.30.3
ci-ln-fm1qnwt-72292-99kt6-master-1 Ready master 58m v1.30.3
ci-ln-fm1qnwt-72292-99kt6-master-2 Ready master 58m v1.30.3
ci-ln-fm1qnwt-72292-99kt6-worker-a-h5gt4 Ready,SchedulingDisabled worker 48m v1.30.3
ci-ln-fm1qnwt-72292-99kt6-worker-b-7vtmd Ready worker 48m v1.30.3
ci-ln-fm1qnwt-72292-99kt6-worker-c-rhzkv Ready worker 48m v1.30.3
节点返回到就绪
状态后,为该节点启动一个调试会话
$ oc debug node/<node_name>
将/host
设置为调试 shell 中的根目录
sh-4.4# chroot /host
检查节点上是否存在sys/fs/cgroup/cgroup2fs
或sys/fs/cgroup/tmpfs
文件
$ stat -c %T -f /sys/fs/cgroup
cgroup2fs
tmpfs