Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

OpenShiftデプロイメント用のCloud-Native Router Helmチャートのカスタマイズ

このトピックでは、Juniper Cloud-Native Routerで利用可能な導入構成について説明します。

Juniper Cloud-Native Routerは、L2、L3またはL2-L3モードで導入して運用できます。展開モードを設定するには、展開前に values.yaml ファイル内の適切な属性を編集します。

手記:
  • values.yaml ファイルの fabricInterface キーで、次の操作を行います。

    • すべてのインターフェイスに interface_mode キーが設定されている場合、展開モードは L2 になります。

    • 1 つ以上のインターフェイスで interface_mode キーが設定され、残りのインターフェイスに interface_mode キーがない場合、展開モードは L2-L3 になります。

    • どのインターフェイスにも interface_mode キーが設定されていない場合、展開モードはL3になります。

Juniper_Cloud_Native_Router_release-number/helmchart/values.yaml ファイルを使用して Helm チャートをカスタマイズします。Helm チャートの構成キーを以下の表に示します。

OpenShift デプロイメントの Helm チャートの説明

Juniper_Cloud_Native_Router_<release>/helmchart/jcnr/values.yaml ファイルを使用して Helm チャートをカスタマイズします。デフォルトのvalues.yamlのコピーは、「Cloud-Native RouterのデフォルトHelmチャート」で提供しています。

表 1 には、OpenShift デプロイメントの values.yaml で設定可能な属性の説明が含まれています。

表 1: OpenShift デプロイメントの Helm チャートの説明
キー の説明
グローバル  
  記帳   Cloud-Native Routerコンテナ・イメージのDockerレジストリを定義します。デフォルト値は enterprise-hub.juniper.net です。tarball で提供されるイメージは、デフォルトのレジストリ名でタグ付けされます。コンテナー イメージをプライベート レジストリにホストする場合は、既定値をレジストリ URL に置き換えます。
  リポジトリ (オプション)Cloud-Native Routerコンテナ・イメージのリポジトリ・パスを定義します。これは、commonセクションのrepositoryパスより優先されるグローバルキーです。デフォルトはjcnr-container-prod/です。
  imagePullSecret (英語) (オプション)Docker レジストリー認証資格情報を定義します。資格情報は、Juniper Networks enterprise-hub.juniper.net レジストリまたはプライベートレジストリのいずれかに構成できます。
    registryCredentials Docker レジストリ資格情報の Base64 表現。詳細は、 リポジトリ資格証明の構成 を参照してください。
  secretName (シークレット名) 作成されるシークレットオブジェクトの名前。
  コモン   さまざまなCloud-Native Routerコンテナイメージのリポジトリパスとタグを定義します。プライベートレジストリを使用しない限り、defaultを使用します。
  リポジトリ リポジトリ パスを定義します。デフォルト値は jcnr-container-prod/ です。グローバルリポジトリキーが定義されている場合、優先されます。
  タグ イメージ タグを定義します。デフォルト値は、Cloud-Native Routerのリリースバージョンに適したタグ番号に設定されています。
  レプリカ (オプション)cRPDのレプリカの数を示します。既定値は 1 です。このキーの値は、マルチノードクラスターに対して指定する必要があります。この値は、JCNR を実行しているノードの数と等しくなります。
  noLocalSwitching (オプション)ブリッジ ドメイン内のインターフェイスによるイーサネット フレーム コピーの送受信を防ぎます。VLAN ID に属するインターフェイスが互いにフレームを送信しないようにするために、1 つ以上の VLAN ID をカンマで区切って入力します。このキーは、L2 および L2-L3 展開に固有です。このキーを有効にすると、すべてのアクセス インターフェイスで機能が提供されます。トランク インターフェイスでこの機能を有効にするには、fabricInterfaceno-local-switching を設定します。詳細については、「ローカル スイッチングの防止」を参照してください。
  iamロール   該当なし。
  ファブリックインターフェイス

複数のインターフェイスからトラフィックを受信する集約されたインターフェイス。ファブリックインターフェイスは常に物理インターフェイスです。それらは、物理機能 (PF) または仮想機能 (VF) のいずれかです。これらのインターフェイスのスループット要件はより高いため、複数のハードウェア キューが割り当てられます。各ハードウェア キューには、専用の CPU コアが割り当てられます。詳細については、 Cloud-Native Routerインターフェイスの概要 を参照してください。

このフィールドを使用して、DPDK にバインドするファブリック インターフェイスの一覧を提供します。インターフェイス名の代わりにサブネットを指定することもできます。インターフェイス名とサブネットの両方が指定されている場合、インターフェイス名がサブネット/ゲートウェイの組み合わせよりも優先されます。サブネット/ゲートウェイの組み合わせは、マルチノード クラスタでインターフェイス名が異なる場合に便利です。

手記:
  • すべてのインターフェイスに interface_mode キーが設定されている場合、展開モードはL2になります。

  • 1 つ以上のインターフェイスに interface_mode キーが設定され、残りのインターフェイスに interface_mode キーがない場合、展開モードは L2-L3 になります。

  • どのインターフェイスにも interface_mode キーが設定されていない場合、展開モードはL3になります。

例えば:

  # L2 only
  - eth1:
      ddp: "auto"                
      interface_mode: trunk
      vlan-id-list: [100, 200, 300, 700-705]
      storm-control-profile: rate_limit_pf1
      native-vlan-id: 100
      no-local-switching: true
  # L3  only
  - eth1:
      ddp: "off"                                 
 # L2L3
  - eth1:
      ddp: "auto"                
  - eth2:
      ddp: "auto"                
      interface_mode: trunk
      vlan-id-list: [100, 200, 300, 700-705]
      storm-control-profile: rate_limit_pf1
      native-vlan-id: 100
      no-local-switching: true
  サブネット インターフェイス名を入力する代替モード。例えば:
- subnet: 10.40.1.0/24 
  gateway: 10.40.1.1 
  ddp: "off"    

subnet オプションは、L3インターフェイスにのみ適用されます。入力のsubnetモードでは、各サブネットでインターフェイスが自動検出されます。サブネット/ゲートウェイまたはインターフェイス名を指定します。両方を設定しないでください。サブネット/ゲートウェイ形式の入力は、マルチノードクラスタでインターフェイス名が異なる環境で特に役立ちます。

  DDPの

(オプション)インターフェイスレベルのDDP(Dynamic Device Personalization)設定を示します。DDPは、GTPU、SCTPなどのトラフィックに対してNICでデータパス最適化を提供します。ボンディングインターフェイスの場合、DDP設定を有効にするには、すべてのスレーブインターフェイスNICがDDPをサポートしている必要があります。詳細については、「 個々のインターフェイスでの動的デバイスパーソナライゼーション(DDP)の有効化 」を参照してください。

オプションには、自動、オン、オフがあります。デフォルトはオフです。

手記:

インターフェイスレベル ddp は、グローバル ddp 設定よりも優先されます。

  interface_mode

L2インターフェイスには trunk に設定し、L3インターフェイスには設定 しないでください 。例えば

interface_mode: trunk
  vlan-id-list

インターフェイスに関連付けられているVLAN IDのリストを提供します。

    ストーム制御プロファイル

storm-control-profileを使用して、目的のストーム制御プロファイルをインターフェイスに関連付けます。プロファイルは jcnr-vrouter.stormControlProfiles で定義されます。

  ネイティブVLAN ID

vlan-id-list内の任意のVLAN IDでnative-vlan-idを構成し、ファブリックトランクモードインターフェイスの物理インターフェイスで受信したタグなしデータパケットに関連付けます。例えば:

fabricInterface: 
  - bond0: 
      interface_mode: trunk 
      vlan-id-list: [100, 200, 300] 
      storm-control-profile: rate_limit_pf1 
      native-vlan-id: 100  

詳細については、「 ネイティブ VLAN 」を参照してください。

  no-local-switching 設定時にインターフェイス同士が直接通信することを防ぎます。使用できる値は true または false です。詳細については、「 ローカル スイッチングの防止 」を参照してください。
  fabricワークロードインターフェイス (オプション)さまざまなワークロードが接続されるインターフェイスを定義します。インターフェイスには、ソフトウェアベースまたはハードウェアベースのものがあります。
  log_level ログの重大度を定義します。使用可能な値オプションは、DEBUG、INFO、WARN、および ERR です。
手記:

ジュニパーネットワークスのサポートから変更するように指示されない限り、デフォルトのINFOに設定したままにしておきます。

  log_path

定義されたディレクトリには、 contrail-vrouter-agent.logcontrail-vrouter-dpdk.logなど、JCNR関連のさまざまな記述ログが格納されます。デフォルトは /var/log/jcnr/ です。

  syslog_notifications

生成された syslog-ng 通知をJSON形式で格納するファイルへの絶対パスを示します。デフォルトは /var/log/jcnr/jcnr_notifications.json です。

  コアパターン

コア・ファイルの core_pattern を示します。空白のままにすると、Cloud-Native Router ポッドはホストのデフォルト パターンを上書きしません。

手記:

JCNRを展開する前に、ホストに core_pattern を設定してください。この値は /etc/sysctl.conf で変更できます。例えば kernel.core_pattern=/var/crash/core_%e_%p_%i_%s_%h_%t.gz

  coreFileパス coreファイルへのパスを示します。デフォルトは /var/crash です。
  nodeAffinity

(オプション)ノードのラベルを定義して、vRouter Pod を配置する場所を決定します。

デフォルトでは、vRouter Pod はクラスタのすべてのノードにデプロイされます。

以下の例では、ノードアフィニティラベルは key1=jcnrとして定義されています。このラベルは、Cloud-Native Routerを導入する各ノードに適用する必要があります。

nodeAffinity:
- key: key1
operator: In
values:
- jcnr

OCP設定では、ワーカー・ノードでのみCloud-Native Routerを起動するようにノード・アフィニティを設定する必要があります。例えば:

  nodeAffinity:
  - key: node-role.kubernetes.io/worker
    operator: Exists
  - key: node-role.kubernetes.io/master
    operator: DoesNotExist
手記:

このキーはグローバル設定です。

  ノード アフィニティを適用するために一致する必要があるノード ラベルを表すキーと値のペア。
  演算子 ノードラベルと、ポッド仕様の matchExpression パラメーターの値のセットとの関係を定義します。この値には、In、NotIn、Exists、DoesNotExist、Lt、または Gt を指定できます。
  cni_bin_dir Red Hat OpenShift の場合は、このフィールドを空のままにしないでください。/ var/lib/cni/bin に設定します。これは、すべての OCP デプロイメントのデフォルトパスです。
  grpcTelemetryPort

(オプション)このパラメーターの値を入力して、cRPD テレメトリ gRPC サーバーのデフォルト ポート 50053 を上書きします。

  grpcVrouterPort (オプション)既定値は 50052 です。上書きするように設定します。
  vRouterDeployerPort (オプション)デフォルトは 8081 です。上書きするように設定します。
jcnr-vrouter  
  cpu_core_mask

存在する場合は、静的 CPU 割り当てを使用してコアを転送プレーンに割り当てることを示します。

この値は、転送プレーンに静的に割り当てる分離された CPU コアのコンマ区切りリストである必要があります (例: cpu_core_mask: "2,3,22,23")。EC2 インスタンスのホスト OS で使用されていないコアを使用します。

Kubernetes CPU Manager を使用してコアを転送プレーンに割り当てる場合は、これをコメントアウトします。

手記:

静的 CPU 割り当てと Kubernetes CPU Manager を同時に使用することはできません。両方を使用すると、予期しない動作が発生する可能性があります。

  保証型VrouterCPU

存在する場合は、Kubernetes CPU マネージャーを使用して CPU コアを転送プレーンに割り当てることを示します。

この値は、Kubernetes CPU Manager が転送プレーンに割り当てる保証された CPU コアの数である必要があります。この値は、転送コアの数より少なくとも 1 つ多い値に設定する必要があります。

静的 CPU 割り当てを使用してコアを転送プレーンに割り当てる場合は、これをコメント アウトします。

手記:

静的 CPU 割り当てと Kubernetes CPU Manager を同時に使用することはできません。両方を使用すると、予期しない動作が発生する可能性があります。

  dpdkCtrlスレッドマスクdpdkCtrlThreadMask

静的 CPU 割り当てを使用する場合に、vRouter DPDK 制御スレッドに割り当てる CPU コアを指定します。このリストは、 cpu_core_mask に記載されているコアのサブセットである必要があり、 serviceCoreMask のリストと同じにすることができます。

cpu_core_maskには記載されているが、serviceCoreMaskまたはdpdkCtrlThreadMaskには記載されていない CPU コアが転送用に割り当てられます。

Kubernetes CPU Manager を使用してコアを転送プレーンに割り当てる場合は、これをコメントアウトします。

  serviceCoreMask (サービスコアマスク)

静的CPU割り当てを使用する場合に、vRouter DPDKサービススレッドに割り当てるCPUコアを指定します。このリストは、 cpu_core_mask に記載されているコアのサブセットである必要があり、 dpdkCtrlThreadMask のリストと同じにすることができます。

cpu_core_maskには記載されているが、serviceCoreMaskまたはdpdkCtrlThreadMaskには記載されていない CPU コアが転送用に割り当てられます。

Kubernetes CPU Manager を使用してコアを転送プレーンに割り当てる場合は、これをコメントアウトします。

  numServiceCtrlスレッドCPU

Kubernetes CPU Manager使用時に、vRouter DPDKサービス/制御トラフィックに割り当てるCPUコア数を指定します。

この数は、 guaranteedVrouterCpus コアの数よりも小さくする必要があります。残りの guaranteedVrouterCpus コアは転送用に割り当てられます。

静的 CPU 割り当てを使用してコアを転送プレーンに割り当てる場合は、これをコメント アウトします。

  インターフェイスの復元 vRouter Podがクラッシュまたは再起動した場合、またはCloud-Native Routerがアンインストールされた場合にインターフェイスを元の状態に戻すには、trueに設定します。
  bondInterfaceConfigs (ボンドインターフェイス設定) (オプション)L2 または L2-L3 展開でのみボンディングインターフェイス設定を有効にします。
  名前 ボンディング・インターフェースの名前。
  モード 1 (アクティブ バックアップ) に設定します。
  スレーブインターフェイス ボンディングするファブリックインターフェイスのリスト。
  プライマリインターフェイス

(オプション)ボンディングのプライマリインターフェイス。

slaveNetwork詳細

該当なし。
  MTU すべての物理インターフェイス(VFおよびPF)のMTU(最大伝送単位)値。デフォルトは 9000 です。
  stormControlProfiles ファブリックインターフェイス上のBUMトラフィックのレート制限プロファイルをバイト/秒で設定します。詳細は /Content/l2-bum-rate-limiting_xi931744_1_1.dita を参照してください。
  dpdkコマンド追加引数

追加の DPDK コマンド ライン パラメーターを渡します。この --yield_option 0 はデフォルトで設定されており、DPDK 転送コアが割り当てられた CPU コアを明け渡さないことを意味します。追加できるその他の一般的なパラメータは、 tx および rx 記述子と mempoolです。例えば:

dpdkCommandAdditionalArgs: "--yield_option 0 --dpdk_txd_sz 2048 --dpdk_rxd_sz 2048 --vr_mempool_sz 131072"
  dpdk_monitoring_thread_config (オプション)vRouter DPDKコンテナの監視スレッドを有効にします。 loggingInterval 秒ごとに、 loggingMask で示される情報を含むログが生成されます。
    ロギングマスク 生成する情報を指定します。次のようにビット位置を持つビットマスクで表されます。
  • 0b001 はnl_counterです

  • 0b010 は lcore_timestamp

  • 0b100 はprofile_histogram

    ロギング間隔 ログ生成の間隔を秒単位で指定します。
  DDPの

(オプション)グローバルな動的デバイス個人用設定 (DDP) 構成を示します。DDPは、GTPU、SCTPなどのトラフィックに対してNICでデータパス最適化を提供します。ボンディングインターフェイスの場合、DDP設定を有効にするには、すべてのスレーブインターフェイスNICがDDPをサポートしている必要があります。詳細については、「 個々のインターフェイスでの動的デバイスパーソナライゼーション(DDP)の有効化 」を参照してください。

オプションには、自動、オン、オフがあります。デフォルトはオフです。

手記:

インターフェイスレベル ddp は、グローバル ddp 設定よりも優先されます。

  qos有効化

QoS を有効または無効にするには、true または false に設定します。詳細については、「 サービス品質(QoS)」 を参照してください。

手記:

QoS は Intel X710 NIC ではサポートされていません。

  vrouter_dpdk_uio_driver uio ドライバは vfio-pciです。
  agentModeType (エージェントモードタイプ)

dpdk に設定します。

  fabricRpfCheckDisable false に設定すると、すべての Cloud-Native Router ファブリックインターフェイスで RPF チェックが有効になります。デフォルトでは、RPF チェックは無効になっています。
  テレメトリー

(オプション)cRPDテレメトリ設定を行います。テレメトリの詳細については、「 テレメトリ機能 」を参照してください。

  無効にする

cRPD テレメトリを無効にするには、true に設定します。デフォルトはfalseで、cRPDテレメトリがデフォルトで有効であることを意味します。

  メトリックポート

cRPD テレメトリ エクスポーターが Prometheus クエリをリッスンしているポート。既定値は 8072 です。

  ログレベル

warn、warning、info、debug、trace、verbose のいずれか。既定値は info です。

  gnmi

(オプション)cRPD gNMI 設定を行います。

enable cRPD テレメトリ エクスポーターが gNMI 要求に応答できるようにするには、true に設定します。

vRouterの  
  テレメトリー

(オプション)vRouter テレメトリを設定します。テレメトリの詳細については、「 テレメトリ機能 」を参照してください。

metricsPort vRouter テレメトリエクスポーターが Prometheus クエリをリッスンするポートを指定します。既定値は 8070 です。

logLevel warn、warning、info、debug、trace、verbose のいずれか。既定値は info です。

gnmi (オプション)vRouter gNMI 設定を行います。

enable - vRouter テレメトリエクスポーターが gNMI 要求に応答できるようにするには、true に設定します。

  persistConfig Cloud-Native Router オペレーターが生成したポッド構成をアンインストール後も保持する場合は、true に設定します。このオプションは、L2モード展開でのみ設定できます。既定値は false です。
  interfaceBoundType (インターフェイス バウンド タイプ) 該当なし。
  ネットワーク詳細 該当なし。
  ネットワークリソース 該当なし。
Contrailツール  
  取り付ける   contrail-tools(デバッグに使用)をインストールするには、true に設定します。