Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Cloud-Native Routerの転送プレーンにCPUを割り当てる

静的 CPU 割り当てまたは Kubernetes CPU マネージャーを使用して CPU コアを割り当てる方法について説明します。

Cloud-Native RouterのインストールHelmチャートとvRouter CRDには、CPUコアをCloud-Native Router vRouterに割り当てるためのさまざまな制御が用意されています。要求されたコア数、コア制限、および割り当てるコアは、静的 CPU 割り当てまたは Kubernetes CPU Manager を使用して指定できます。

Kubernetes CPU Manager を使用した CPU の割り当て

Kubernetes CPU Manager を使用して CPU コアを vRouter DPDK ポッドに割り当てるには、この手順を使用します。

これは、クラスターで Kubernetes CPU Manager を実行している場合に推奨される方法です。

  1. contrail-vrouter-kernel-init-dpdkコンテナとcontrail_vrouter_agent_dpdkコンテナのリソース制限とリクエストを指定します。
    1. インストール ディレクトリで helmchart/jcnr/charts/jcnr-vrouter/values.yaml ファイルを見つけます。
    2. そのファイルを編集して、contrail-vrouter-kernel-init-dpdkコンテナとcontrail_vrouter_agent_dpdkコンテナの両方のリソース制限とリクエストを指定します。
      各コンテナーが要求どおりのものを確実に取得するには、 limits セクションと requests セクションの両方に同じ cpu値を設定し、各コンテナーの limits セクションと requests セクションの両方に同じ memory値を設定します。
  2. Helm チャートを構成して、vRouter ポッドに必要な保証された vRouter CPU の数を指定します。
    メインの values.yaml ファイルで、次の操作を行います。
    1. 次の行をコメントアウトして、CPU コアを割り当てる静的 CPU 割り当て方法を無効にします。
    2. Kubernetes CPU Manager によって予約された保証済み CPU を使用するように vRouter DPDK ポッドを構成します。
      たとえば、5 つの CPU コアを予約するには、次のようにします この値は次のようになります。
      • helmchart/charts/jcnr/jcnr-vrouter/values.yamlcontrail-vrouter-kernel-init-dpdk および contrail_vrouter_agent_dpdk コンテナに構成されている CPU コア数以上、および

      • Kubernetes CPU Manager によって予約されている CPU コアの数以下。

      推奨される最小数は、必要な転送コア数より 1 つ多い数です。
    3. vRouter DPDKサービス/制御スレッドに使用するCPUコア数を指定します。
      たとえば、vRouter DPDK サービス/制御スレッド用に 1 つのコアを予約するには、次のようにします これにより、残りのコア (この例では 4 つ) が転送用に残ります。
  3. Cloud-Native Routerのインストールを続行します。
  4. Cloud-Native Router をインストールしたら、vRouter DPDK ポッドの QoS クラスが [保証] であることを確認します。
    出力は次のようになります
  5. vRouter DPDKコンテナに割り当てられているCPUを確認するには、次の手順に従います。
    出力には、コンテナーに割り当てられたコアが一覧表示されます。
  6. Kubernetes CPU Manager から CPU 割り当てを表示するには、次のようにします。
    1. Cloud-Native Routerが実行されているノードにSSHで接続します。
    2. Kubernetes CPU Manager の状態を確認します。
      次に例を示します。
      手記:

      フォーマットされた出力を表示するには、 jq (dnf install -y jq)をインストールする必要があります。

静的 CPU 割り当てを使用した CPU 割り当て

静的 CPU 割り当てを使用して vRouter DPDK ポッドに CPU コアを割り当てるには、この手順を使用します。

この方法は、クラスターで Kubernetes CPU Manager が実行されていない場合にのみ使用することをお勧めします。

  1. contrail-vrouter-kernel-init-dpdkコンテナとcontrail_vrouter_agent_dpdkコンテナのリソース制限とリクエストを指定します。
    1. インストール ディレクトリで helmchart/jcnr/charts/jcnr-vrouter/values.yaml ファイルを見つけます。
    2. そのファイルを編集して、contrail-vrouter-kernel-init-dpdkコンテナとcontrail_vrouter_agent_dpdkコンテナの両方のリソース制限と要求を指定します。
      各コンテナーが要求どおりのものを確実に取得するには、 limits セクションと requests セクションの両方に同じ cpu値を設定し、各コンテナーの limits セクションと requests セクションの両方に同じ memory値を設定します。
  2. Helm チャートを構成して、vRouter DPDK で使用するコアを指定します。
    1. 以下をコメントアウトして、vRouterコア割り当てでのKubernetes CPU Managerの使用を無効にします。
    2. 静的 CPU 割り当てに使用する CPU コアを指定します。
      例えば、コア2、3、22、23を指定するには、次のようにします。
    3. vRouter DPDKサービス/制御スレッドに使用するCPUコアを指定します。
      たとえば、コア 2 と 3 を vRouter DPDK サービス/制御スレッド用に予約するには、次のようにします。

      この例では、コア 22 と 23 を転送用に残します。

  3. Cloud-Native Routerのインストールを続行します。