2.3. カーネル引数のノードへの追加
特殊なケースとして、クラスターのノードセットにカーネル引数を追加する必要がある場合があります。これは十分に注意して実行する必要があり、設定する引数による影響を十分に理解している必要があります。
カーネル引数を正しく使用しないと、システムが起動不可能になる可能性があります。
設定可能なカーネル引数の例には、以下が含まれます。
-
nosmt: カーネルの対称マルチスレッド (SMT) を無効にします。マルチスレッドは、各 CPU の複数の論理スレッドを許可します。潜在的なクロススレッド攻撃に関連するリスクを減らすために、マルチテナント環境での
nosmtの使用を検討できます。SMT を無効にすることは、基本的にパフォーマンスよりもセキュリティーを重視する選択をしていることになります。 enforcing=0: SELinux (Security Enhanced Linux) を Permissive モードで実行するように設定します。Permissive モードでは、システムは、SELinux が読み込んだセキュリティーポリシーを実行しているかのように動作します。これには、オブジェクトのラベル付けや、アクセスを拒否したエントリーをログに出力するなどの動作が含まれますが、いずれの操作も拒否される訳ではありません。Permissive モードは、実稼働システムでの使用はサポートされませんが、デバッグには役に立ちます。
警告実稼働環境の RHCOS での SELinux の無効化はサポートされていません。SELinux をノードで無効にしたら、実稼働クラスターで再度プロビジョニングする前に、これを再プロビジョニングする必要があります。
カーネル引数の一覧と説明は、Kernel.org カーネルパラメーター を参照してください。
次の手順では、以下を特定する MachineConfig オブジェクトを作成します。
- カーネル引数を追加する一連のマシン。この場合、ワーカーロールを持つマシン。
- 既存のカーネル引数の最後に追加されるカーネル引数。
- マシン設定のリストで変更が適用される場所を示すラベル。
前提条件
-
cluster-admin権限がある。 - クラスターが稼働している。
手順
OpenShift Container Platform クラスターの既存の
MachineConfigをリスト表示し、マシン設定にラベルを付ける方法を判別します。oc get MachineConfig
$ oc get MachineConfigCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow カーネル引数を識別する
MachineConfigオブジェクトファイルを作成します (例:05-worker-kernelarg-selinuxpermissive.yaml)。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここでは、以下のようになります。
machineconfiguration.openshift.io/role- 新しいカーネル引数をワーカーノードのみに適用します。
name- マシン設定 (05) 内の適切な場所を特定するための名前が指定されます (SELinux permissive モードを設定するためにカーネル引数を追加します)。
kernelArguments-
正確なカーネル引数を
enforcing=0として特定します。
新規のマシン設定を作成します。
oc create -f 05-worker-kernelarg-selinuxpermissive.yaml
$ oc create -f 05-worker-kernelarg-selinuxpermissive.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow マシン設定で新規の追加内容を確認します。
oc get MachineConfig
$ oc get MachineConfigCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ノードを確認します。
oc get nodes
$ oc get nodesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 変更が適用されているため、各ワーカーノードのスケジューリングが無効にされていることを確認できます。
ワーカーノードのいずれかに移動し、(ホストの
/proc/cmdline内の) カーネルコマンドライン引数をリスト表示して、カーネル引数が機能していることを確認します。oc debug node/ip-10-0-141-105.ec2.internal
$ oc debug node/ip-10-0-141-105.ec2.internalCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow enforcing=0引数が他のカーネル引数に追加されていることを確認できるはずです。