12.5. 単一の NUMA ノードポリシーの設定
NUMA Resources Operator では、クラスター上に単一の NUMA ノードポリシーを設定する必要があります。この設定を行うには、パフォーマンスプロファイルを作成して適用するか、KubeletConfig を設定するという 2 つの方法があります。
単一の NUMA ノードポリシーの設定方法としては、パフォーマンスプロファイルを適用する方法が推奨されます。パフォーマンスプロファイルの作成には、Performance Profile Creator (PPC) ツールを使用できます。クラスター上にパフォーマンスプロファイルを作成すると、KubeletConfig
や tuned
プロファイルなどの他のチューニングコンポーネントが自動的に作成されます。
パフォーマンスプロファイルの作成の詳細は、「関連情報」セクションの「Performance Profile Creator の概要」を参照してください。
12.5.1. NUMA 対応スケジューラーの高可用性(HA)の管理 リンクのコピーリンクがクリップボードにコピーされました!
高可用性の管理はテクノロジープレビュー機能としてのみご利用いただけます。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
NUMA Resources Operator は、NUMAResourcesScheduler
カスタムリソース(CR)の spec.replicas
フィールドに基づいて、NUMA 対応のセカンダリースケジューラーの高可用性を管理します。デフォルトでは、NUMA Resources Operator は、最大 3 つのレプリカを持つコントロールプレーンノードごとに 1 つのスケジューラーレプリカを作成して HA モードを自動的に有効にします。
次のマニフェストは、このデフォルトの動作を示しています。レプリカの検出を自動的に有効にするには、replicas
フィールドを省略します。
以下のオプションのいずれかを使用して、スケジューラーの動作を制御できます。
- レプリカの数をカスタマイズする。
- NUMA 対応のスケジューリングの無効化。
12.5.1.1. スケジューラーレプリカのカスタマイズ リンクのコピーリンクがクリップボードにコピーされました!
NUMAResourcesScheduler
カスタムリソースの spec.replicas
フィールドを更新して、スケジューラーレプリカの特定の数を設定します。これにより、デフォルトの HA 動作が上書きされます。
手順
レプリカの数を 2 に設定する
custom-ha.yaml
などの名前を付けられた次の YAML でNUMAResourcesScheduler
CR を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、NUMA 対応 Pod スケジューラーをデプロイします。
oc apply -f custom-ha.yaml
$ oc apply -f custom-ha.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
12.5.1.2. NUMA 対応スケジューリングの無効化 リンクのコピーリンクがクリップボードにコピーされました!
NUMA 対応スケジューラーを無効にし、実行中のスケジューラー Pod をすべて停止し、新規スケジューラー Pod を起動しないようにします。
手順
以下の最小限の YAML を
nro-disable-scheduler.yaml
ファイルに保存します。spec.replicas
フィールドを0
に設定してスケジューラーを無効にします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、NUMA 対応 Pod スケジューラーを無効にします。
oc apply -f nro-disable-scheduler.yaml
$ oc apply -f nro-disable-scheduler.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
12.5.1.3. スケジューラーの高可用性(HA)ステータスの確認 リンクのコピーリンクがクリップボードにコピーされました!
NUMA 対応スケジューラーのステータスを確認し、設定に基づいて予想されるレプリカ数で実行されていることを確認します。
手順
次のコマンドを実行して、スケジューラー Pod のみを一覧表示します。
oc get pods -n openshift-numaresources -l app=secondary-scheduler
$ oc get pods -n openshift-numaresources -l app=secondary-scheduler
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 予想される出力
デフォルトの HA モードを使用すると、Pod 数はコントロールプレーンノードの数と等しくなります。標準の HA OpenShift Container Platform クラスターには通常 3 つのコントロールプレーンノードがあるため、3 つの Pod が表示されます。
NAME READY STATUS RESTARTS AGE secondary-scheduler-5b8c9d479d-2r4p5 1/1 Running 0 5m secondary-scheduler-5b8c9d479d-k2f3p 1/1 Running 0 5m secondary-scheduler-5b8c9d479d-q8c7b 1/1 Running 0 5m
NAME READY STATUS RESTARTS AGE secondary-scheduler-5b8c9d479d-2r4p5 1/1 Running 0 5m secondary-scheduler-5b8c9d479d-k2f3p 1/1 Running 0 5m secondary-scheduler-5b8c9d479d-q8c7b 1/1 Running 0 5m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - レプリカをカスタマイズした 場合、Pod の数は設定した値と一致します。
スケジューラーを無効 にした場合、このラベルを持つ実行中の Pod はありません。
注記NUMA 対応のスケジューラーには、3 つのレプリカの制限が適用されます。ホステッドコントロールプレーンクラスターでは、スケジューラー Pod はホストされたクラスターのワーカーノードで実行されます。
次のコマンドを実行して、レプリカの数とそのステータスを確認します。
oc get deployment secondary-scheduler -n openshift-numaresources
$ oc get deployment secondary-scheduler -n openshift-numaresources
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY UP-TO-DATE AVAILABLE AGE secondary-scheduler 3/3 3 3 5m
NAME READY UP-TO-DATE AVAILABLE AGE secondary-scheduler 3/3 3 3 5m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この出力では、3/3 は予想される 3 つのレプリカから準備ができていることを意味します。
詳細については、次のコマンドを実行してください。
oc describe deployment secondary-scheduler -n openshift-numaresources
$ oc describe deployment secondary-scheduler -n openshift-numaresources
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Replicas
行には、3 つのレプリカ用に設定されたデプロイメントが表示され、3 つのレプリカすべてが更新され、利用可能な状態が表示されます。Replicas: 3 desired | 3 updated | 3 total | 3 available | 0 unavailable
Replicas: 3 desired | 3 updated | 3 total | 3 available | 0 unavailable
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
12.5.2. パフォーマンスプロファイルの例 リンクのコピーリンクがクリップボードにコピーされました!
この YAML の例は、Performance Profile Creator (PPC) ツールを使用して作成されたパフォーマンスプロファイルを示しています。
- 1
- この値は、NUMA Resources Operator を設定する
MachineConfigPool
値と一致する必要があります。たとえば、worker-cnf
という名前のMachineConfigPool
オブジェクトを作成し、通信ワークロードを実行する一連のノードを指定します。MachineConfigPool
の値は、後ほど「NUMAResourcesOperator カスタムリソースの作成」で設定するNUMAResourcesOperator
CR のmachineConfigPoolSelector
値と一致する必要があります。 - 2
- PPC ツールを実行する際に、
topology-manager-policy
引数をsingle-numa-node
に設定して、topologyPolicy
フィールドがsingle-numa-node
に設定されていることを確認します。注記Hosted Control Plane クラスターの場合、
machineConfigPoolSelector
は機能しません。代わりに、ノードの関連付けは指定されたNodePool
オブジェクトによって決定されます。
12.5.3. KubeletConfig CR の作成 リンクのコピーリンクがクリップボードにコピーされました!
単一の NUMA ノードポリシーの設定方法としては、パフォーマンスプロファイルを適用する方法が推奨されます。もう 1 つの方法は、次の手順に示すように、KubeletConfig
カスタムリソース (CR) を作成して適用することです。
手順
マシンプロファイルの Pod アドミタンスポリシーを設定する
KubeletConfig
カスタムリソース (CR) を作成します。以下の YAML を
nro-kubeletconfig.yaml
ファイルに保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- このラベルが、後ほど「NUMAResourcesOperator カスタムリソースの作成」で設定する
NUMAResourcesOperator
CR のmachineConfigPoolSelector
設定と一致していることを確認します。 - 2
cpuManagerPolicy
の場合、static
は小文字のs
を使用する必要があります。- 3
- ノード上の CPU に基づいて調整します。
- 4
memoryManagerPolicy
の場合、Static
は大文字のS
を使用する必要があります。- 5
topologyManagerPolicy
はsingle-numa-node
に設定する必要があります。
注記Hosted Control Plane クラスターの場合、
machineConfigPoolSelector
設定は機能しません。代わりに、ノードの関連付けは指定されたNodePool
オブジェクトによって決定されます。Hosted Control Plane クラスターにKubeletConfig
を適用するには、設定を含むConfigMap
を作成し、NodePool
のspec.config
フィールド内でそのConfigMap
を参照する必要があります。以下のコマンドを実行して
KubeletConfig
CR を作成します。oc create -f nro-kubeletconfig.yaml
$ oc create -f nro-kubeletconfig.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記パフォーマンスプロファイルまたは
KubeletConfig
を適用すると、ノードの再起動が自動的にトリガーされます。再起動がトリガーされない場合は、ノードグループに対応するKubeletConfig
のラベルを確認して、問題のトラブルシューティングを実施できます。