2.5. リアルタイムカーネルのノードへの追加
OpenShift Container Platform のワークロードでリアルタイムオペレーティングシステムの特性が必要な場合は、マシンを Linux リアルタイムカーネルに切り替えることができます。リアルタイムカーネルに切り替えることで、OpenShift Container Platform のワークロードに対する決定性が向上します。
Linux はリアルタイムオペレーティングシステムではないものの、Linux のリアルタイムカーネルにはプリエンプティブスケジューラーが含まれており、これによりオペレーティングシステムにリアルタイム特性が付与される。OpenShift Container Platform 4.20 では、MachineConfig オブジェクトを使用することでリアルタイムカーネルに切り替えることができます。
変更はマシン設定の kernelType 設定を realtime に変更するだけで簡単に行えますが、この変更を行う前に他のいくつかの点を考慮する必要があります。
- 現在、リアルタイムカーネルはワーカーノードでのみサポートされ、使用できるのはラジオアクセスネットワーク (RAN) のみになります。
- 以下の手順は、Red Hat Enterprise Linux for Real Time 8 で認定されているシステムを使用したベアメタルのインストールで完全にサポートされます。
- OpenShift Container Platform でのリアルタイムサポートは、特定のサブスクリプションに制限されます。
- 以下の手順は、Google Cloud での使用もサポートされます。
前提条件
- OpenShift Container Platform クラスター (バージョン 4.4 以降) が実行中である。
- 管理者権限を持つユーザーとしてクラスターにログインしている。
手順
リアルタイムカーネルのマシン設定を作成します。
realtimeカーネルタイプのMachineConfigオブジェクトが含まれる YAML ファイル (99-worker-realtime.yamlなど) を作成します。以下の例では、すべてのワーカーノードにリアルタイムカーネルを使用するようにクラスターに指示します。$ 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マシン設定をクラスターに追加します。以下を入力してマシン設定をクラスターに追加します。
$ oc create -f 99-worker-realtime.yamlリアルタイムカーネルを確認します。影響を受けるそれぞれのノードの再起動後に、クラスターにログインして以下のコマンドを実行し、リアルタイムカーネルが設定されたノードのセットの通常のカーネルを置き換えていることを確認します。
$ oc get nodes出力例
NAME STATUS ROLES AGE VERSION 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-169-2.us-east-2.compute.internal Ready worker 102m v1.33.4$ oc debug node/ip-10-0-143-147.us-east-2.compute.internal出力例
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カーネル名には
rtが含まれ、"PREEMPT RT" のテキストは、これがリアルタイムカーネルであることを示します。通常のカーネルに戻るには、
MachineConfigオブジェクトを削除します。$ oc delete -f 99-worker-realtime.yaml