Skip to content

Commit 799bdc3

Browse files
authored
Merge pull request #92278 from mburke5678/node-cgroup-v1-remove
OSDOCS13996: Remove cGroup v1 in OCP 4.19
2 parents 1f87e1a + d10c72e commit 799bdc3

17 files changed

+45
-224
lines changed

_topic_maps/_topic_map.yml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -657,8 +657,6 @@ Topics:
657657
File: installing-customizing
658658
- Name: Configuring your firewall
659659
File: configuring-firewall
660-
- Name: Enabling Linux control group version 1 (cgroup v1)
661-
File: enabling-cgroup-v1
662660
Distros: openshift-enterprise
663661
- Name: Validation and troubleshooting
664662
Dir: validation_and_troubleshooting
@@ -2832,8 +2830,6 @@ Topics:
28322830
- Name: Configuring your cluster to place pods on overcommited nodes
28332831
File: nodes-cluster-overcommit
28342832
Distros: openshift-enterprise
2835-
- Name: Configuring the Linux cgroup version on your nodes
2836-
File: nodes-cluster-cgroups-2
28372833
- Name: Enabling features using FeatureGates
28382834
File: nodes-cluster-enabling-features
28392835
Distros: openshift-enterprise,openshift-origin

architecture/index.adoc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,3 +103,5 @@ endif::openshift-dedicated,openshift-rosa[]
103103
[id="about-admission-plug-ins"]
104104
== About admission plugins
105105
You can use xref:../architecture/admission-plug-ins.adoc#admission-plug-ins[admission plugins] to regulate how {product-title} functions. After a resource request is authenticated and authorized, admission plugins intercept the resource request to the master API to validate resource requests and to ensure that scaling policies are adhered to. Admission plugins are used to enforce security policies, resource limitations, configuration requirements, and other settings.
106+
107+
include::modules/architecture-about-cgroup-v2.adoc[leveloffset=+1]

installing/install_config/enabling-cgroup-v1.adoc

Lines changed: 0 additions & 37 deletions
This file was deleted.

installing/installing_openstack/installing-openstack-nfv-preparing.adoc

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,6 @@ include::modules/installation-openstack-ovs-dpdk-requirements.adoc[leveloffset=+
1717

1818
You must configure {rh-openstack} before you install a cluster that uses SR-IOV on it.
1919

20-
When installing a cluster using SR-IOV, you must deploy clusters using cgroup v1. For more information, xref:../../installing/install_config/enabling-cgroup-v1.adoc#enabling-cgroup-v1[Enabling Linux control group version 1 (cgroup v1)].
21-
22-
:FeatureName: cgroup v1
23-
include::snippets/deprecated-feature.adoc[]
24-
2520
include::modules/installation-osp-configuring-sr-iov.adoc[leveloffset=+2]
2621

2722
[id="installing-openstack-nfv-preparing-tasks-ovs-dpdk"]
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
// Module included in the following assemblies:
2+
//
3+
// * architecture/index.adoc
4+
5+
:_mod-docs-content-type: PROCEDURE
6+
[id="architecture-about-cgroup-v2_{context}"]
7+
= About Linux cgroup version 2
8+
9+
{product-title} uses link:https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v2.html[Linux control group version 2] (cgroup v2) in your cluster.
10+
11+
cgroup v2 offers several improvements over cgroup v1, including a unified hierarchy, safer sub-tree delegation, features such as link:https://www.kernel.org/doc/html/latest/accounting/psi.html[Pressure Stall Information], and enhanced resource management and isolation. However, cgroup v2 has different CPU, memory, and I/O management characteristics than cgroup v1. Therefore, some workloads might experience slight differences in memory or CPU usage on clusters that run cgroup v2.
12+
13+
[NOTE]
14+
====
15+
* If you run third-party monitoring and security agents that depend on the cgroup file system, update the agents to a version that supports cgroup v2.
16+
* If you have configured cgroup v2 and run cAdvisor as a stand-alone daemon set for monitoring pods and containers, update cAdvisor to v0.43.0 or later.
17+
* If you deploy Java applications, use versions that fully support cgroup v2, such as the following packages:
18+
** OpenJDK / HotSpot: jdk8u372, 11.0.16, 15 and later
19+
** NodeJs 20.3.0 and later
20+
** IBM Semeru Runtimes: jdk8u345-b01, 11.0.16.0, 17.0.4.0, 18.0.2.0 and later
21+
** IBM SDK Java Technology Edition Version (IBM Java): 8.0.7.15 and later
22+
====

modules/cnf-tuning-nodes-for-low-latency-via-performanceprofile.adoc

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,6 @@ The performance profile lets you control latency tuning aspects of nodes that be
1414

1515
You can use a performance profile to specify whether to update the kernel to kernel-rt, to allocate huge pages, and to partition the CPUs for performing housekeeping duties or running workloads.
1616

17-
:FeatureName: cgroup v1
18-
include::snippets/deprecated-feature.adoc[]
19-
2017
[NOTE]
2118
====
2219
You can manually create the `PerformanceProfile` object or use the Performance Profile Creator (PPC) to generate a performance profile. See the additional resources below for more information on the PPC.

modules/nodes-clusters-cgroups-2-install.adoc

Lines changed: 0 additions & 28 deletions
This file was deleted.

modules/nodes-nodes-kernel-arguments.adoc

Lines changed: 0 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -18,29 +18,6 @@ Examples of kernel arguments you could set include:
1818

1919
* **nosmt**: Disables symmetric multithreading (SMT) in the kernel. Multithreading allows multiple logical threads for each CPU. You could consider `nosmt` in multi-tenant environments to reduce risks from potential cross-thread attacks. By disabling SMT, you essentially choose security over performance.
2020
21-
ifndef::openshift-origin[]
22-
* **systemd.unified_cgroup_hierarchy**: Enables link:https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v2.html[Linux control group version 2] (cgroup v2). cgroup v2 is the next version of the kernel link:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/resource_management_guide/ch01[control group] and offers multiple improvements.
23-
+
24-
--
25-
:FeatureName: cgroup v1
26-
include::snippets/deprecated-feature.adoc[]
27-
--
28-
endif::openshift-origin[]
29-
30-
ifdef::openshift-origin[]
31-
* **systemd.unified_cgroup_hierarchy**: Configures the version of Linux control group that is installed on your nodes: link:https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v1.html[cgroup v1] or link:https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v2.html[cgroup v2]. cgroup v2 is the next version of the kernel link:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/resource_management_guide/ch01[control group] and offers multiple improvements. However, it can have some unwanted effects on your nodes.
32-
+
33-
[NOTE]
34-
====
35-
cgroup v2 is enabled by default. To disable cgroup v2, use the `systemd.unified_cgroup_hierarchy=0` kernel argument, as shown in the following procedure.
36-
====
37-
+
38-
--
39-
:FeatureName: cgroup v1
40-
include::snippets/deprecated-feature.adoc[]
41-
--
42-
endif::openshift-origin[]
43-
4421
* **enforcing=0**: Configures Security Enhanced Linux (SELinux) to run in permissive mode. In permissive mode, the system acts as if SELinux is enforcing the loaded security policy, including labeling objects and emitting access denial entries in the logs, but it does not actually deny any operations. While not supported for production systems, permissive mode can be helpful for debugging.
4522
+
4623
[WARNING]
@@ -88,7 +65,6 @@ rendered-master-23e785de7587df95a4b517e0647e5ab7 52dd3ba6a9a527fc3ab42afac8d12
8865
rendered-worker-5d596d9293ca3ea80c896a1191735bb1 52dd3ba6a9a527fc3ab42afac8d12b693534c8c9 3.5.0 33m
8966
----
9067

91-
ifndef::openshift-origin[]
9268
. Create a `MachineConfig` object file that identifies the kernel argument (for example, `05-worker-kernelarg-selinuxpermissive.yaml`)
9369
+
9470
[source,yaml]
@@ -114,41 +90,6 @@ a kernel argument to configure SELinux permissive mode).
11490
----
11591
$ oc create -f 05-worker-kernelarg-selinuxpermissive.yaml
11692
----
117-
endif::openshift-origin[]
118-
ifdef::openshift-origin[]
119-
. Create a `MachineConfig` object file that identifies the kernel argument (for example, `05-worker-kernelarg-selinuxpermissive.yaml`)
120-
+
121-
[source,yaml]
122-
----
123-
apiVersion: machineconfiguration.openshift.io/v1
124-
kind: MachineConfig
125-
metadata:
126-
labels:
127-
machineconfiguration.openshift.io/role: worker <1>
128-
name: 05-worker-kernelarg-selinuxpermissive <2>
129-
spec:
130-
config:
131-
ignition:
132-
version: 3.5.0
133-
kernelArguments:
134-
- enforcing=0 <3>
135-
systemd.unified_cgroup_hierarchy=0 <4>
136-
#...
137-
----
138-
+
139-
<1> Applies the new kernel argument only to worker nodes.
140-
<2> Named to identify where it fits among the machine configs (05) and what it does (adds
141-
a kernel argument to configure SELinux permissive mode).
142-
<3> Identifies the exact kernel argument as `enforcing=0`.
143-
<4> Configures cgroup v1 on the associated nodes. cgroup v2 is the default.
144-
145-
. Create the new machine config:
146-
+
147-
[source,terminal]
148-
----
149-
$ oc create -f 05-worker-kernelarg-selinuxpermissive.yaml
150-
----
151-
endif::openshift-origin[]
15293

15394
. Check the machine configs to see that the new one was added:
15495
+

modules/telco-core-application-workloads.adoc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ Engineering considerations::
2020
--
2121
Use the following information to plan telco core workloads and cluster resources:
2222

23+
include::snippets/nodes-cgroup-vi-removed.adoc[]
24+
2325
* CNF applications should conform to the latest version of https://redhat-best-practices-for-k8s.github.io/guide/[Red Hat Best Practices for Kubernetes].
2426
* Use a mix of best-effort and burstable QoS pods as required by your applications.
2527
** Use guaranteed QoS pods with proper configuration of reserved or isolated CPUs in the `PerformanceProfile` CR that configures the node.

modules/telco-core-cpu-partitioning-and-performance-tuning.adoc

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ Limits and requirements::
2424
For more information, see "Creating a performance profile".
2525

2626
Engineering considerations::
27+
28+
include::snippets/nodes-cgroup-vi-removed.adoc[]
29+
2730
* The minimum reserved capacity (`systemReserved`) required can be found by following the guidance in the link:https://access.redhat.com/solutions/5843241[Which amount of CPU and memory are recommended to reserve for the system in OpenShift 4 nodes?] Knowledgebase article.
2831
* The actual required reserved CPU capacity depends on the cluster configuration and workload attributes.
2932
* The reserved CPU value must be rounded up to a full core (2 hyper-threads) alignment.
@@ -46,12 +49,3 @@ With no configuration, the default queue count is one RX/TX queue per online CPU
4649
====
4750
Some drivers do not deallocate the interrupts even after reducing the queue count.
4851
====
49-
50-
* If workloads running on the cluster require cgroup v1, you can configure nodes to use cgroup v1 as part of the initial cluster deployment.
51-
See "Enabling Linux control group version 1 (cgroup v1)" and link:https://www.redhat.com/en/blog/rhel-9-changes-context-red-hat-openshift-workloads[Red Hat Enterprise Linux 9 changes in the context of Red Hat OpenShift workloads].
52-
+
53-
[NOTE]
54-
====
55-
Support for cgroup v1 is planned for removal in {product-title} 4.19.
56-
Clusters running cgroup v1 must transition to cgroup v2.
57-
====

0 commit comments

Comments
 (0)