第7章 Topology Manager の使用
Topology Manager は、CPU マネージャーおよびデバイスマネージャーからヒントを収集し、Pod CPU およびデバイスリソースを同じ Non-Uniform Memory Access (NUMA) ノードに配置する Kubelet コンポーネントです。
Topology Manager は、収集したヒントのトポロジー情報を使用し、設定される Topology Manager ポリシーおよび要求される Pod リソースに基づいて、Pod がノードから許可されるか、または拒否されるかどうかを判別します。
Topology Manager は、ハードウェアアクセラレーターを使用して低遅延 (latency-critical) の実行と高スループットの並列計算をサポートするワークロードの場合に役立ちます。
Topology Manager は OpenShift Container Platform のアルファ機能です。
7.1. Topology Manager のセットアップ
前提条件
-
CPU マネージャーのポリシーを
static
に設定します。「スケーラビリティーおよびパフォーマンス」セクションの「 CPU マネージャーの使用」を参照してください。
手順
LatencySensitive FeatureGate を有効にします。
# oc edit featuregate/cluster
Feature Set: LatencySensitive を仕様に追加します。
# oc describe featuregate/cluster Name: cluster Namespace: Labels: <none> Annotations: release.openshift.io/create-only: true API Version: config.openshift.io/v1 Kind: FeatureGate Metadata: Creation Timestamp: 2019-10-30T15:06:41Z Generation: 2 Resource Version: 7773803 Self Link: /apis/config.openshift.io/v1/featuregates/cluster UID: b00204ab-cc5e-4ca5-ad93-b9bdd738c1de Spec: Feature Set: LatencySensitive Events: <none>
KubeletConfig で Topology Manager ポリシーを設定します。
以下の YAML ファイルのサンプルには、
single-numa-node
ポリシーが指定されています。apiVersion: machineconfiguration.openshift.io/v1 kind: KubeletConfig metadata: name: cpumanager-enabled spec: machineConfigPoolSelector: matchLabels: custom-kubelet: cpumanager-enabled kubeletConfig: cpuManagerPolicy: static cpuManagerReconcilePeriod: 5s topologyManagerPolicy: single-numa-node 1
- 1
- 選択した Topology Manager ポリシーを指定します。
# oc create -f topologymanager-kubeletconfig.yaml