4.2. CRI-O パラメーターを編集するための ContainerRuntimeConfig CR の作成
特定のマシン設定プール (MCP) に関連付けられたノードの OpenShift Container Platform CRI-O ランタイムに関連付けられる設定の一部を変更することができます。ContainerRuntimeConfig カスタムリソース (CR) を使用して、設定値を設定し、MCP に一致するラベルを追加します。次に、MCO は関連付けられたノードで crio.conf および storage.conf 設定ファイルを更新された値を使用して再ビルドします。
ContainerRuntimeConfig CR を使用して実装された変更を元に戻すには、CR を削除する必要があります。マシン設定プールからラベルを削除しても、変更は元に戻されません。
ContainerRuntimeConfig CR を使用して以下の設定を変更することができます。
-
Log level:
logLevelパラメーターは CRI-Olog_levelパラメーターを設定します。これはログメッセージの詳細レベルです。デフォルトはinfo(log_level = info) です。他のオプションには、fatal、panic、error、warn、debug、およびtraceが含まれます。 -
Overlay size:
overlaySizeパラメーターは、コンテナーイメージの最大サイズである CRI-O Overlay ストレージドライバーのsizeパラメーターを設定します。 -
コンテナーランタイム:
defaultRuntimeパラメーターは、コンテナーランタイムをcrunまたはruncに設定します。デフォルトはcrunです。
マシン設定プールごとに、そのプールに加える設定変更をすべて含めて、ContainerRuntimeConfig CR を 1 つ割り当てる必要があります。同じコンテンツをすべてのプールに適用している場合には、すべてのプールに必要となるのは ContainerRuntimeConfig CR 1 つだけです。
既存の ContainerRuntimeConfig CR を編集して既存の設定を編集するか、変更ごとに新規 CR を作成する代わりに新規の設定を追加する必要があります。異なるマシン設定プールを変更する場合や、変更が一時的で元に戻すことができる場合のみ、新しい ContainerRuntimeConfig CR の作成を推奨しています。
必要に応じて複数の ContainerRuntimeConfig CR を作成できますが、クラスターあたり 10 個までという制限があります。最初の ContainerRuntimeConfig CR は、containerruntime が付いたマシン設定が MCO によって作成されます。後続の各 CR については、数字の接尾辞が付いた新しい containerruntime マシン設定がコントローラーによって作成されます。たとえば、-2 という接尾辞を持つ containerruntime マシン設定がある場合、次の containerruntime マシン設定には -3 が付けられます。
マシン設定を削除する場合、制限を超えないようにそれらを逆の順序で削除する必要があります。たとえば、containerruntime-3 マシン設定を、containerruntime-2 マシン設定を削除する前に削除する必要があります。
接尾辞が containerruntime-9 のマシン設定があり、別の ContainerRuntimeConfig CR を作成する場合には、containerruntime マシン設定が 10 未満の場合でも新規マシン設定は作成されません。
複数の ContainerRuntimeConfig CR を示す例
$ oc get ctrcfg
出力例
NAME AGE
ctr-overlay 15m
ctr-level 5m45s
複数の containerruntime マシン設定を示す例
$ oc get mc | grep container
出力例
...
01-master-container-runtime b5c5119de007945b6fe6fb215db3b8e2ceb12511 3.4.0 57m
...
01-worker-container-runtime b5c5119de007945b6fe6fb215db3b8e2ceb12511 3.4.0 57m
...
99-worker-generated-containerruntime b5c5119de007945b6fe6fb215db3b8e2ceb12511 3.4.0 26m
99-worker-generated-containerruntime-1 b5c5119de007945b6fe6fb215db3b8e2ceb12511 3.4.0 17m
99-worker-generated-containerruntime-2 b5c5119de007945b6fe6fb215db3b8e2ceb12511 3.4.0 7m26s
...
次の例では、log_level フィールドを debug に設定し、オーバーレイサイズを 8 GB に設定し、runC をコンテナーランタイムとして設定します。
ContainerRuntimeConfig CR の例
apiVersion: machineconfiguration.openshift.io/v1
kind: ContainerRuntimeConfig
metadata:
name: overlay-size
spec:
machineConfigPoolSelector:
matchLabels:
pools.operator.machineconfiguration.openshift.io/worker: ''
containerRuntimeConfig:
logLevel: debug
overlaySize: 8G
defaultRuntime: "runc"
手順
ContainerRuntimeConfig CR を使用して CRI-O 設定を変更するには、以下を実行します。
ContainerRuntimeConfigCR の YAML ファイルを作成します。apiVersion: machineconfiguration.openshift.io/v1 kind: ContainerRuntimeConfig metadata: name: overlay-size spec: machineConfigPoolSelector: matchLabels: pools.operator.machineconfiguration.openshift.io/worker: ''1 containerRuntimeConfig:2 logLevel: debug overlaySize: 8G defaultRuntime: "runc"ContainerRuntimeConfigCR を作成します。$ oc create -f <file_name>.yamlCR が作成されたことを確認します。
$ oc get ContainerRuntimeConfig出力例
NAME AGE overlay-size 3m19s新規の
containerruntimeマシン設定が作成されていることを確認します。$ oc get machineconfigs | grep containerrun出力例
99-worker-generated-containerruntime 2c9371fbb673b97a6fe8b1c52691999ed3a1bfc2 3.4.0 31sすべてが準備状態にあるものとして表示されるまでマシン設定プールをモニターします。
$ oc get mcp worker出力例
NAME CONFIG UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE worker rendered-worker-169 False True False 3 1 1 0 9h設定が CRI-O で適用されたことを確認します。
マシン設定プールのノードに対して
oc debugセッションを開き、chroot /hostを実行します。$ oc debug node/<node_name>sh-4.4# chroot /hostcrio.confファイルの変更を確認します。sh-4.4# crio config | grep 'log_level'出力例
log_level = "debug"storage.confファイルの変更を確認します。sh-4.4# head -n 7 /etc/containers/storage.conf出力例
[storage] driver = "overlay" runroot = "/var/run/containers/storage" graphroot = "/var/lib/containers/storage" [storage.options] additionalimagestores = [] size = "8G"crio/crio.conf.d/01-ctrcfg-defaultRuntimeファイルの変更を確認します。sh-5.1# cat /etc/crio/crio.conf.d/01-ctrcfg-defaultRuntime出力例
[crio] [crio.runtime] default_runtime = "runc"