7.8. Topology Manager
Topology Manager について理解し、これを使用します。
7.8.1. Topology Manager ポリシー リンクのコピーリンクがクリップボードにコピーされました!
Topology Manager は、CPU マネージャーや Device Manager などの Hint Provider からトポロジーのヒントを収集し、収集したヒントを使用して Pod
リソースを調整することで、すべての Quality of Service (QoS) クラスの Pod
リソースを調整します。
Topology Manager は、cpumanager-enabled
という名前の KubeletConfig
カスタムリソース (CR) で割り当てる 4 つの割り当てポリシーをサポートしています。
none
ポリシー- これはデフォルトのポリシーで、トポロジーの配置は実行しません。
best-effort
ポリシー-
best-effort
トポロジー管理ポリシーを持つ Pod のそれぞれのコンテナーの場合、kubelet は、そのコンテナーの優先 NUMA ノードアフィニティーに従って、必要なすべてのリソースを NUMA ノード上に調整しようとします。リソース不足のために割り当てが不可能な場合でも、Topology Manager は Pod を許可しますが、割り当ては他の NUMA ノードと共有されます。 restricted
ポリシー-
restricted
トポロジー管理ポリシーを持つ Pod のそれぞれのコンテナーの場合、kubelet は要求を満たすことのできる NUMA ノードの理論上の最小数を決定します。実際の割り当てに該当数の NUMA ノード数が必要な場合、Topology Manager は受付を拒否し、Pod をTerminated
状態にします。NUMA ノードの数が要求を満たすことができる場合、Topology Manager は Pod を許可し、Pod の実行を開始します。 single-numa-node
ポリシー-
single-numa-node
トポロジー管理ポリシーがある Pod のそれぞれのコンテナーの場合、Pod に必要なすべてのリソースを同じ NUMA ノードに割り当てることができる場合は、kubelet は Pod を許可します。単一の NUMA ノードアフィニティーが使用できない場合には、Topology Manager は Pod をノードから拒否します。これにより、Pod は Pod の受付失敗と共にTerminated
(終了)状態になります。
7.8.2. Topology Manager のセットアップ リンクのコピーリンクがクリップボードにコピーされました!
Topology Manager を使用するには、cpumanager-enabled
という名前の KubeletConfig
カスタムリソース (CR) で割り当てポリシーを設定する必要があります。CPU マネージャーをセットアップしている場合は、このファイルが存在している可能性があります。ファイルが存在しない場合は、作成できます。
前提条件
-
CPU マネージャーのポリシーを
static
に設定します。
手順
Topology Manager をアクティブにするには、以下を実行します。
カスタムリソースで Topology Manager 割り当てポリシーを設定します。
oc edit KubeletConfig cpumanager-enabled
$ oc edit KubeletConfig cpumanager-enabled
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.8.3. Pod の Topology Manager ポリシーとの対話 リンクのコピーリンクがクリップボードにコピーされました!
Pod 仕様サンプルは、Pod
の Topology Manager との対話について説明しています。
以下の Pod は、リソース要求や制限が指定されていないために BestEffort
QoS クラスで実行されます。
spec: containers: - name: nginx image: nginx
spec:
containers:
- name: nginx
image: nginx
以下の Pod は、要求が制限よりも小さいために Burstable
QoS クラスで実行されます。
選択したポリシーが none
以外の場合は、Topology Manager はすべての Pod を処理し、Guaranteed
Qos Pod
仕様に対してのみリソース調整を強制します。Topology Manager ポリシーが none
に設定されている場合、関連するコンテナーは NUMA アフィニティーを考慮せずに、使用可能な CPU に固定されます。これはデフォルトの動作で、パフォーマンスに敏感なワークロードを最適化しません。その他の値により、CPU やメモリーなどのデバイスプラグインコアリソースからのトポロジー認識情報を使用できます。Topology Manager は、ポリシーが none
以外の値に設定されている場合に、ノードのトポロジーに応じて CPU、メモリー、およびデバイスの割り当ての調整を試行します。使用可能な値の詳細は、Topology Manager ポリシー を参照してください。
次の Pod のサンプルは、要求が制限と等しいために Guaranteed
QoS クラスで実行されます。
Topology Manager はこの Pod を考慮します。Topology Manager は、CPU マネージャー、デバイスマネージャー、および Memory Manager である Hint Providers を参照して、Pod のトポロジーヒントを取得します。
Topology Manager はこの情報を使用して、このコンテナーに最適なトポロジーを保管します。この Pod の場合、CPU マネージャーおよび Device Manager は、リソース割り当ての段階でこの保存された情報を使用します。