1
0
mirror of https://github.com/openshift/openshift-docs.git synced 2026-02-05 12:46:18 +01:00
Files
openshift-docs/modules/nodes-nodes-rtkernel-arguments.adoc

90 lines
3.4 KiB
Plaintext

// Module included in the following assemblies:
//
// * nodes/nodes/nodes-nodes-managing.adoc
// * machine_configuration/machine-configs-configure.adoc
:_mod-docs-content-type: PROCEDURE
[id="nodes-nodes-rtkernel-arguments_{context}"]
= Adding a real-time kernel to nodes
Some {product-title} workloads require a high degree of determinism.While Linux is not a real-time operating system, the Linux real-time
kernel includes a preemptive scheduler that provides the operating system with real-time characteristics.
If your {product-title} workloads require these real-time characteristics, you can switch your machines to the Linux real-time kernel. For {product-title}, {product-version} you can make this switch using a `MachineConfig` object. Although making the change is as simple as changing a machine config `kernelType` setting to `realtime`, there are a few other considerations before making the change:
* Currently, real-time kernel is supported only on worker nodes, and only for radio access network (RAN) use.
* The following procedure is fully supported with bare metal installations that use systems that are certified for Red Hat Enterprise Linux for Real Time 8.
* Real-time support in {product-title} is limited to specific subscriptions.
* The following procedure is also supported for use with {gcp-full}.
.Prerequisites
* Have a running {product-title} cluster (version 4.4 or later).
* Log in to the cluster as a user with administrative privileges.
.Procedure
. Create a machine config for the real-time kernel: Create a YAML file (for example, `99-worker-realtime.yaml`) that contains a `MachineConfig`
object for the `realtime` kernel type. This example tells the cluster to use a real-time kernel for all worker nodes:
+
[source,terminal]
----
$ cat << EOF > 99-worker-realtime.yaml
apiVersion: machineconfiguration.openshift.io/v1
kind: MachineConfig
metadata:
labels:
machineconfiguration.openshift.io/role: "worker"
name: 99-worker-realtime
spec:
kernelType: realtime
EOF
----
. Add the machine config to the cluster. Type the following to add the machine config to the cluster:
+
[source,terminal]
----
$ oc create -f 99-worker-realtime.yaml
----
. Check the real-time kernel: Once each impacted node reboots, log in to the cluster and run the following commands to make sure that the real-time kernel has replaced the regular kernel for the set of nodes you configured:
+
[source,terminal]
----
$ oc get nodes
----
+
.Example output
[source,terminal]
----
NAME STATUS ROLES AGE VERSION
ip-10-0-143-147.us-east-2.compute.internal Ready worker 103m v1.34.2
ip-10-0-146-92.us-east-2.compute.internal Ready worker 101m v1.34.2
ip-10-0-169-2.us-east-2.compute.internal Ready worker 102m v1.34.2
----
+
[source,terminal]
----
$ oc debug node/ip-10-0-143-147.us-east-2.compute.internal
----
+
.Example output
[source,terminal]
----
Starting pod/ip-10-0-143-147us-east-2computeinternal-debug ...
To use host binaries, run `chroot /host`
sh-4.4# uname -a
Linux <worker_node> 4.18.0-147.3.1.rt24.96.el8_1.x86_64 #1 SMP PREEMPT RT
Wed Nov 27 18:29:55 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
----
+
The kernel name contains `rt` and text “PREEMPT RT” indicates that this is a real-time kernel.
. To go back to the regular kernel, delete the `MachineConfig` object:
+
[source,terminal]
----
$ oc delete -f 99-worker-realtime.yaml
----