7.9. カーネルブートパラメーターを設定することによる、ホストされたクラスターの高度なノードチューニング
カーネルブートパラメーターの設定が必要な、ホストされたコントロールプレーンでのより高度なチューニングについては、Node Tuning Operator を使用することもできます。次の例は、Huge Page が予約されたノードプールを作成する方法を示しています。
手順
サイズが 2 MB の 10 個の Huge Page を作成するための
Tuned
オブジェクトマニフェストを含むConfigMap
オブジェクトを作成します。このConfigMap
マニフェストをtuned-hugepages.yaml
という名前のファイルに保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記.spec.recommend.match
フィールドは意図的に空白のままにしています。この場合、このTuned
オブジェクトは、このConfigMap
オブジェクトが参照されているノードプール内のすべてのノードに適用されます。同じハードウェア設定を持つノードを同じノードプールにグループ化します。そうしないと、TuneD オペランドは、同じノードプールを共有する 2 つ以上のノードに対して競合するカーネルパラメーターを計算する可能性があります。管理クラスターに
ConfigMap
オブジェクトを作成します。oc --kubeconfig="<management_cluster_kubeconfig>" create -f tuned-hugepages.yaml
$ oc --kubeconfig="<management_cluster_kubeconfig>" create -f tuned-hugepages.yaml
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<management_cluster_kubeconfig>
を管理クラスターのkubeconfig
ファイルの名前に置き換えます。
NodePool
マニフェスト YAML ファイルを作成し、NodePool
のアップグレードタイプをカスタマイズして、spec.tuningConfig
セクションで作成したConfigMap
オブジェクトを参照します。NodePool
マニフェストを作成し、hcp
CLI を使用してhugepages-nodepool.yaml
という名前のファイルに保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記hcp create
コマンドの--render
フラグはシークレットをレンダリングしません。シークレットをレンダリングするには、hcp create
コマンドで--render
フラグと--render-sensitive
フラグの両方を使用する必要があります。hugepages-nodepool.yaml
ファイルで、.spec.management.upgradeType
をInPlace
に設定し、作成したtuned-hugepages
ConfigMap
オブジェクトを参照するように.spec.tuningConfig
を設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記新しい
MachineConfig
オブジェクトを適用するときに不要なノードの再作成を回避するには、.spec.management.upgradeType
をInPlace
に設定します。Replace
アップグレードタイプを使用する場合、ノードは完全に削除され、TuneD オペランドが計算した新しいカーネルブートパラメーターを適用すると、新しいノードでノードを置き換えることができます。管理クラスターに
NodePool
を作成します。oc --kubeconfig="<management_cluster_kubeconfig>" create -f hugepages-nodepool.yaml
$ oc --kubeconfig="<management_cluster_kubeconfig>" create -f hugepages-nodepool.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
ノードが使用可能になると、コンテナー化された TuneD デーモンが、適用された TuneD プロファイルに基づいて、必要なカーネルブートパラメーターを計算します。ノードの準備が整い、一度再起動して生成された MachineConfig
オブジェクトを適用したら、TuneD プロファイルが適用され、カーネルブートパラメーターが設定されていることを確認できます。
ホストされたクラスター内の
Tuned
オブジェクトを一覧表示します。oc --kubeconfig="<hosted_cluster_kubeconfig>" get tuned.tuned.openshift.io -n openshift-cluster-node-tuning-operator
$ oc --kubeconfig="<hosted_cluster_kubeconfig>" get tuned.tuned.openshift.io -n openshift-cluster-node-tuning-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME AGE default 123m hugepages-8dfb1fed 1m23s rendered 123m
NAME AGE default 123m hugepages-8dfb1fed 1m23s rendered 123m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ホストされたクラスター内の
Profile
オブジェクトを一覧表示します。oc --kubeconfig="<hosted_cluster_kubeconfig>" get profile.tuned.openshift.io -n openshift-cluster-node-tuning-operator
$ oc --kubeconfig="<hosted_cluster_kubeconfig>" get profile.tuned.openshift.io -n openshift-cluster-node-tuning-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME TUNED APPLIED DEGRADED AGE nodepool-1-worker-1 openshift-node True False 132m nodepool-1-worker-2 openshift-node True False 131m hugepages-nodepool-worker-1 openshift-node-hugepages True False 4m8s hugepages-nodepool-worker-2 openshift-node-hugepages True False 3m57s
NAME TUNED APPLIED DEGRADED AGE nodepool-1-worker-1 openshift-node True False 132m nodepool-1-worker-2 openshift-node True False 131m hugepages-nodepool-worker-1 openshift-node-hugepages True False 4m8s hugepages-nodepool-worker-2 openshift-node-hugepages True False 3m57s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新しい
NodePool
の両方のワーカーノードには、openshift-node-hugepages
プロファイルが適用されています。チューニングが正しく適用されたことを確認するには、ノードでデバッグシェルを起動し、
/proc/cmdline
を確認します。oc --kubeconfig="<hosted_cluster_kubeconfig>" debug node/nodepool-1-worker-1 -- chroot /host cat /proc/cmdline
$ oc --kubeconfig="<hosted_cluster_kubeconfig>" debug node/nodepool-1-worker-1 -- chroot /host cat /proc/cmdline
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
BOOT_IMAGE=(hd0,gpt3)/ostree/rhcos-... hugepagesz=2M hugepages=50
BOOT_IMAGE=(hd0,gpt3)/ostree/rhcos-... hugepagesz=2M hugepages=50
Copy to Clipboard Copied! Toggle word wrap Toggle overflow