4.3. コンテナーランタイムの設定
ノード上の新しいワークロードで使用するコンテナーランタイムは、ユーザーまたは組織が好むランタイムに基づいて設定できます。より高速で軽量なランタイムとされる crun、または crun よりも広く使われている runc のどちらかを使用できます。
crun と runc の詳細は、コンテナーエンジンとコンテナーランタイムについてを参照してください。
OpenShift Container Platform 4.18 以降、crun は新規インストール時のデフォルトのコンテナーランタイムです。以下の手順で説明するように、ContainerRuntimeConfig オブジェクトを使用することで、ランタイムを切り替えることができます。コンテナーのランタイムを変更しても、新しいワークロードにのみ影響します。既存のワークロードは、引き続き既存のコンテナーランタイムを使用します。
OpenShift Container Platform 4.17 からクラスターをアップデートした場合、runc コンテナーのランタイムはデフォルトのまま変更されません。アップグレード中に、新しいデフォルトのランタイムを上書きするために、コントロールプレーンノード用とワーカーノード用の 2 つの MachineConfig オブジェクトが作成されました。MachineConfig オブジェクトのいずれか、または両方を削除することで、コンテナーのランタイムを任意のスケジュールで crun に移行できます。
手順
クラスターが OpenShift Container Platform 4.17 からアップデートされている場合は、以下の
MachineConfigオブジェクトを削除することで、crun コンテナーランタイムを使用できます。以下のコマンドを実行して、ワーカーノードを crun に移行してください。
$ oc delete machineconfig 00-override-worker-generated-crio-default-container-runtime以下のコマンドを実行して、コントロールプレーンノードを crun に移行します。
$ oc delete machineconfig 00-override-master-generated-crio-default-container-runtime
OpenShift Container Platform 4.18 以降のクラスターでは、コンテナーランタイム設定を作成することで、特定のノードのコンテナーランタイムとして crun または runc を設定できます。
ContainerRuntimeConfigCR の YAML ファイルを作成します。apiVersion: machineconfiguration.openshift.io/v1 kind: ContainerRuntimeConfig metadata: name: configure-runc spec: machineConfigPoolSelector: matchLabels: pools.operator.machineconfiguration.openshift.io/worker: '' containerRuntimeConfig: defaultRuntime: "runc"ここでは、以下のようになります。
-
spec.machineConfigPoolSelector.matchLabels:: 変更するマシン設定プールのラベルを指定します。 -
spec.containerRuntimeConfig.defaultRuntime:: 指定されたマシン設定プール内のノードで新しいワークロードに使用するコンテナーランタイムを指定します。crunまたはruncのいずれかです。
-
ContainerRuntimeConfigCR を作成します。$ oc create -f <file_name>.yaml
検証
ノードが準備完了状態に戻ったら、次のコマンドを実行してノードへの
oc debugセッションを開きます。$ oc debug node/<node_name>次のコマンドを実行して、デバッグシェル内のルートディレクトリーとして
/hostを設定します。sh-5.1# chroot /host以下のコマンドを使用して、コンテナーの実行時間を確認してください。
sh-5.1# crio status config | grep default_runtime出力例
INFO[2026-01-27 23:09:18.413462914Z] Starting CRI-O, version: 1.30.14-6.rhaos4.17.gitfa27f6f.el9, git: unknown(clean) default_runtime = "runc"default_runtimeパラメーターは、OpenShift Container Platform がこのノード上の新しいワークロードに使用するコンテナーランタイムを指定します。設定に応じて、crunまたはruncのいずれかになります。