12.5. オプション: NUMA リソース更新のポーリング操作の設定
nodeGroup
内の NUMA Resources Operator によって制御されるデーモンは、リソースをポーリングして、利用可能な NUMA リソースに関する更新を取得します。NUMAResourcesOperator
カスタムリソース (CR) で spec.nodeGroups
仕様を設定することで、これらのデーモンのポーリング操作を微調整できます。これにより、ポーリング操作の高度な制御が可能になります。これらの仕様を設定して、スケジューリング動作を改善し、最適ではないスケジューリング決定のトラブルシューティングを行います。
設定オプションは次のとおりです。
-
infoRefreshMode
: kubelet をポーリングするためのトリガー条件を決定します。NUMA Resources Operator は、結果として取得した情報を API サーバーに報告します。 -
infoRefreshPeriod
: ポーリング更新の間隔を決定します。 podsFingerprinting
: ノード上で実行されている現在の Pod セットのポイントインタイム情報がポーリング更新で公開されるかどうかを決定します。注記podsFingerprinting
のデフォルト値はEnabledExclusiveResources
です。スケジューラーのパフォーマンスを最適化するには、podsFingerprinting
をEnabledExclusiveResources
またはEnabled
に設定します。さらに、NUMAResourcesScheduler
カスタムリソース (CR) のcacheResyncPeriod
を 0 より大きい値に設定します。cacheResyncPeriod
仕様は、ノード上の保留中のリソースを監視することで、より正確なリソースの可用性を報告するのに役立ちます。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 -
cluster-admin
権限を持つユーザーとしてログインしている。 - NUMA Resources Operator をインストールしている。
手順
NUMAResourcesOperator
CR でspec.nodeGroups
仕様を設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow apiVersion: nodetopology.openshift.io/v1 kind: NUMAResourcesOperator metadata: name: numaresourcesoperator spec: nodeGroups: - config: infoRefreshMode: Periodic infoRefreshPeriod: 10s podsFingerprinting: Enabled name: worker
apiVersion: nodetopology.openshift.io/v1 kind: NUMAResourcesOperator metadata: name: numaresourcesoperator spec: nodeGroups: - config: infoRefreshMode: Periodic
1 infoRefreshPeriod: 10s
2 podsFingerprinting: Enabled
3 name: worker
- 1
- 有効な値は
Periodic
、Events
、PeriodicAndEvents
です。Periodic
を使用して、infoRefreshPeriod
で定義した間隔で kubelet をポーリングします。Events
を使用して、Pod のライフサイクルイベントごとに kubelet をポーリングします。両方のメソッドを有効にするには、PeriodicAndEvents
を使用します。 - 2
Periodic
またはPeriodicAndEvents
リフレッシュモードのポーリング間隔を定義します。リフレッシュモードがEvents
の場合、このフィールドは無視されます。- 3
- 有効な値は、
Enabled
、Disabled
、およびEnabledExclusiveResources
です。NUMAResourcesScheduler
のcacheResyncPeriod
仕様では、Enabled
またはEnabledExclusiveResources
に設定する必要があります。
検証
NUMA Resources Operator をデプロイした後、次のコマンドを実行して、ノードグループ設定が適用されたことを検証します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get numaresop numaresourcesoperator -o json | jq '.status'
$ oc get numaresop numaresourcesoperator -o json | jq '.status'
出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ... "config": { "infoRefreshMode": "Periodic", "infoRefreshPeriod": "10s", "podsFingerprinting": "Enabled" }, "name": "worker" ...
... "config": { "infoRefreshMode": "Periodic", "infoRefreshPeriod": "10s", "podsFingerprinting": "Enabled" }, "name": "worker" ...