mirror of
https://github.com/openshift/openshift-docs.git
synced 2026-02-05 12:46:18 +01:00
90 lines
3.4 KiB
Plaintext
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 Google Cloud Platform.
|
|
|
|
.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.29.4
|
|
ip-10-0-146-92.us-east-2.compute.internal Ready worker 101m v1.29.4
|
|
ip-10-0-169-2.us-east-2.compute.internal Ready worker 102m v1.29.4
|
|
----
|
|
+
|
|
[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
|
|
----
|