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 チャートの説明
キー の説明
グローバル  
  インストールSyslog syslog-ng をインストールするには、true に設定します。
  記帳   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のリリースバージョンに適したタグ番号に設定されています。
  readinessチェック

インストール中にCloud-Native Router Readinessプリフライトおよびポストフライトチェックを有効にするには、trueに設定します。これをコメントアウトするか、falseに設定して、Cloud-Native Routerの準備状況のプリフライトチェックとポストフライトチェックを無効にします。

プリフライト チェックでは、インフラストラクチャが JCNR をサポートできることを確認します。プリフライトチェックは、Cloud-Native Routerをインストールする前に実行されます。

フライト後のチェックでは、Cloud-Native Routerのインストールが正しく機能していることを確認します。ポストフライト・チェックは、Cloud-Native Routerのインストール後に実行されます。

「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 です。詳細については、「 ローカル スイッチングの防止 」を参照してください。
    qosSchedulerProfileName (qosSchedulerプロファイル名)

このインターフェイスに適用可能な QoS スケジューラ プロファイルを指定します。「 qosSchedulerProfiles 」セクションを参照してください。

プロファイルを指定しない場合、このインターフェイスの QoS スケジューラは無効になり、パケットはトラフィック クラスに関係なくスケジューリングされます。

  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 を指定できます。
  容認

(オプション)JCNR Pod を特定のテイントを持つノードに配置できるようにする容認を定義します。

次の例では、容認は jcnr=yes として定義されています。つまり、ノードが jcnr=yes で汚染されている場合、またはまったく汚染されていない場合は、そのノードでJCNRポッドをスケジュールできます。ノードが別のキーと値のペアで汚染されている場合、JCNR ポッドをそのノードでスケジュールすることはできません(効果によって異なります)。

tolerations:
  - key: "jcnr"
    operator: "Equal"
    value: "yes"
    effect: "NoSchedule"
手記:

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

    容認を表すキーと値のペアのキー部分。
    演算子 容認とテイントの一致条件を定義します。有効な値は Exists と Equal です。
    価値 容認を表すキーと値のペアの値部分。フィールドは、演算子が Equal の場合にのみ存在します。
    影響 容認がテイントと一致しない場合の効果を定義します。有効な値は、NoExecute、NoSchedule、および PreferNoSchedule です。
  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")。ホストOSで使用されていないコアを使用します。

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

手記:

静的 CPU 割り当てと Kubernetes CPU Manager を同時に使用することはできません。Cloud-Native Router 準備状況プリフライト チェックが有効になっている場合、両方を指定するとインストールは失敗します。

  保証型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 割り当てを使用してコアを転送プレーンに割り当てる場合は、これをコメント アウトします。

  numberOfSchedulerLcores Kubernetes CPU Manager で QoS スケジューラ専用にする CPU コアの数 (最大 4)。静的 CPU 割り当てを使用してコアを転送プレーンに割り当てる場合は、これをコメント アウトします。
  インターフェイスの復元 vRouter Podがクラッシュまたは再起動した場合、またはCloud-Native Routerがアンインストールされた場合にインターフェイスを元の状態に戻すには、trueに設定します。
  bondInterfaceConfigs (ボンドインターフェイス設定) (オプション)L2 または L2-L3 展開でのみボンディングインターフェイス設定を有効にします。
  名前 ボンディング・インターフェースの名前。
  モード 1 (アクティブ バックアップ) に設定します。
  スレーブインターフェイス ボンディングするファブリックインターフェイスのリスト。
  プライマリインターフェイス

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

slaveNetwork詳細

該当なし。
  MTU すべての物理インターフェイス(VFおよびPF)のMTU(最大伝送単位)値。デフォルトは 9000 です。
  qosSchedulerプロファイル fabricInterface セクションから参照される QoS スケジューラ プロファイルを定義します。
    sched_profile_1 QoS スケジューラ プロファイルの名前。
     
cpu スケジューラ専用の CPU コアを指定します。 cpu_core_mask を指定する場合、これは一意の追加コアである必要があります。
bandwidth 帯域幅をGbps単位で指定します。
  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"
手記:

tx記述子とrx記述子の数、およびmempoolサイズを変更すると、必要なヒュージ・ページの数に影響します。これらのパラメータを明示的に変更する場合は、huge ページの数を 10 (x 1 GB) に設定します。

OpenShiftノードでヒュージ・ページを構成する方法については、「OpenShiftデプロイメントのシステム要件」の表2を、Cloud-Native Router vRouterが使用するヒュージ・ページ数を設定する方法については、「使用するヒュージ・ページ数の構成」を参照してください。

  DDPの

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

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

手記:

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

  TWAMPポート

(オプション)TWAMP セッション リフレクター ポート(TWAMP セッションで vRouter タイムスタンプを使用する場合)。vRouter は、このポートで TWAMP テスト メッセージをリッスンし、TWAMP テスト メッセージにタイムスタンプを挿入/上書きします。(cRPD ではなく)vRouter で TWAMP メッセージをタイムスタンプすると、より正確な測定が可能になります。有効な値は、862 および 49152 から 65535 です。

このパラメーターがない場合、vRouter は TWAMP セッションにタイムスタンプを挿入または上書きしません。タイムスタンプは、代わりにcRPDによって取得され、挿入されます。

TWAMP(Two-Way Active Measurement Protocol)を参照してください。

  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 です。
  enableLocalPersistence (英語) cRPD CLIまたはNETCONFを使用してJCNRを設定している場合は、trueに設定します。trueに設定すると、cRPD CLIおよびNETCONFの設定は、ノードの再起動、cRPDポッドの再起動、Cloud-Native Routerのアップグレードまで維持されます。既定値は false です。
 

terminationGracePeriodSeconds (終了猶予期間秒)

アンインストール中に vrouter がインターフェイスのクリーンアップとバインド解除を行うタイムアウトを指定します。デフォルトでは、タイムアウトは 60 秒です。JCNR が正常にアンインストールされない大規模なインストールでは、このタイムアウトを延長します。
  interfaceBoundType (インターフェイス バウンド タイプ) 該当なし。
  ネットワーク詳細 該当なし。
  ネットワークリソース 該当なし。
Contrailツール  
  取り付ける   contrail-tools(デバッグに使用)をインストールするには、true に設定します。