mirror of
https://github.com/openshift/openshift-docs.git
synced 2026-02-05 12:46:18 +01:00
129 lines
4.0 KiB
Plaintext
129 lines
4.0 KiB
Plaintext
// Module included in the following assemblies:
|
|
//
|
|
// * installing/install_config/installing-customizing.adoc
|
|
|
|
:_mod-docs-content-type: PROCEDURE
|
|
[id="installation-special-config-rtkernel_{context}"]
|
|
|
|
= Adding a real-time kernel to nodes (during installation)
|
|
|
|
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 set up your compute (worker) and/or control plane machines to use the
|
|
Linux real-time kernel when you first install the cluster. To do this,
|
|
create a `MachineConfig` object and inject that object into the set of manifest
|
|
files used by Ignition during cluster setup, as described in the following
|
|
procedure.
|
|
|
|
[NOTE]
|
|
====
|
|
This procedure is fully supported with bare metal installations using
|
|
systems that are certified for Red Hat Enterprise Linux for Real Time 8.
|
|
Real time support in {product-title} is also limited to specific subscriptions.
|
|
This procedure is also supported for use with Google Cloud Platform.
|
|
====
|
|
|
|
.Prerequisites
|
|
* For a bare metal installation of {product-title}, prepare masters and workers.
|
|
* Use {product-title} version 4.4 or later.
|
|
|
|
.Procedure
|
|
|
|
. Create the `intall-config.yaml` file using the installer or prepare it manually.
|
|
To create it using installer, run:
|
|
+
|
|
[source,terminal]
|
|
----
|
|
$ ./openshift-install create install-config --dir <installation_directory>
|
|
----
|
|
|
|
. Generate the Kubernetes manifests for the cluster:
|
|
+
|
|
[source,terminal]
|
|
----
|
|
$ ./openshift-install create manifests --dir <installation_directory>
|
|
----
|
|
|
|
. Decide if you want to add the real-time kernel to worker or control plane nodes.
|
|
|
|
. In the `openshift` directory, create a file (for example,
|
|
`99-worker-realtime.yaml`) to define a `MachineConfig` object that applies a
|
|
real-time kernel to the selected nodes (worker nodes in this case):
|
|
+
|
|
[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
|
|
----
|
|
+
|
|
You can change `worker` to `master` to add kernel arguments to control plane nodes instead.
|
|
Create a separate YAML file to add to both master and worker nodes.
|
|
|
|
. Create the cluster. You can now continue on to create the {product-title} cluster.
|
|
+
|
|
[source,terminal]
|
|
----
|
|
$ ./openshift-install create cluster --dir <installation_directory>
|
|
----
|
|
|
|
. Check the real-time kernel: Once the cluster comes up, 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 worker or control plane nodes you
|
|
configured:
|
|
+
|
|
[source,terminal]
|
|
----
|
|
$ oc get nodes
|
|
----
|
|
+
|
|
.Example output
|
|
[source,terminal]
|
|
----
|
|
NAME STATUS ROLES AGE VERSION
|
|
ip-10-0-139-200.us-east-2.compute.internal Ready master 111m v1.33.4
|
|
ip-10-0-143-147.us-east-2.compute.internal Ready worker 103m v1.33.4
|
|
ip-10-0-146-92.us-east-2.compute.internal Ready worker 101m v1.33.4
|
|
ip-10-0-156-255.us-east-2.compute.internal Ready master 111m v1.33.4
|
|
ip-10-0-164-74.us-east-2.compute.internal Ready master 111m v1.33.4
|
|
ip-10-0-169-2.us-east-2.compute.internal Ready worker 102m v1.33.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`
|
|
----
|
|
+
|
|
[source,terminal]
|
|
----
|
|
sh-4.4# uname -a
|
|
----
|
|
+
|
|
.Example output
|
|
[source,terminal]
|
|
----
|
|
Linux <worker_node> 4.20.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.
|