Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

ベアメタルサーバー用の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になります。

Helm チャートの属性と説明

Juniper_Cloud_Native_Router_release-number/helmchart/values.yaml ファイルを使用して Helm チャートをカスタマイズします。Helm チャートの構成キーを以下の表に示します。
表 1: Helm チャートの属性と説明
キー 追加のキー 構成の説明
記帳   vRouter、cRPD、およびjcnr-cniコンテナイメージのDockerレジストリを定義します。デフォルト値は enterprise-hub.juniper.net です。tarball で提供されるイメージは、デフォルトのレジストリ名でタグ付けされます。コンテナー イメージをプライベート レジストリにホストする場合は、既定値をレジストリ URL に置き換えます。
リポジトリ   (オプション)vRouter、cRPD、およびjcnr-cniコンテナイメージのリポジトリパスを定義します。これはグローバルキーであり、「common」セクションの「repository」パスよりも優先されます。デフォルト値は jcnr-container-prod/ です。
imagePullSecret (英語)   (オプション)レジストリ認証資格情報を定義します。認証情報は、ジュニパーリポジトリまたはプライベートレジストリのいずれかに設定できます。
  registryCredentials Docker レジストリ資格情報の Base64 表現。詳細は、「 リポジトリ資格証明の構成 」トピックを参照してください。
  secretName (シークレット名) 作成されるシークレットオブジェクトの名前。
コモン   vRouter、cRPD、およびjcnr-cniコンテナイメージの応答パスとタグを定義します。プライベートレジストリを使用しない限り、defaultを使用します。
  リポジトリ リポジトリ パスを定義します。デフォルト値は atom-docker/cn2/bazel-build/dev/ です。グローバルリポジトリキーが定義されている場合、優先されます。
  タグ イメージ タグを定義します。デフォルト値は、Cloud-Native Routerのリリースバージョンに適したタグ番号に設定されています。
レプリカ (オプション)cRPDのレプリカの数を示します。値を指定しない場合は、デフォルト値の 1 が考慮されます。このキーの値は、マルチノードクラスターに対して指定する必要があります。この値は、Cloud-Native Routerを導入する必要があるノード数と等しくなければなりません。
storageClass クラウド以外の展開には適用されません。
awsリージョン   EKS 以外のデプロイには適用されません。
noLocalSwitching (オプション)ブリッジ ドメイン内のインターフェイスによるイーサネット フレーム コピーの送受信を防ぎます。VLAN ID に属するインターフェイスが互いにフレームを送信しないようにするために、1 つ以上の VLAN ID をカンマで区切って入力します。このキーは、L2 および L2-L3 展開に固有です。このキーを有効にすると、すべてのアクセス インターフェイスで機能が提供されます。トランク インターフェイスで機能を有効にするには、fabricInterface キーで no-local-switching キーを設定します。
ファブリックインターフェイス  

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モードでは、各サブネットでインターフェイスが自動検出されます。サブネット/ゲートウェイまたはインターフェイス名を指定します。両方を設定しないでください。サブネット/ゲートウェイ形式の入力は、マルチノードK8sクラスターでインターフェイス名が異なる環境で特に役立ちます。

  DDPの

(オプション)インターフェイスレベルのDDP(Dynamic Device Personalization)設定を示します。DDPは、GTPU、SCTPなどのトラフィックに対してNICでデータパス最適化を提供します。ボンディングインターフェイスの場合、DDP設定を有効にするには、すべてのスレーブインターフェイスNICが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  
  no-local-switching no-local-switching ステートメントが設定されている場合、インターフェイスが相互に直接通信することを防ぎます。使用できる値は true または false です。
fabricワークロードインターフェイス (オプション)さまざまなワークロードが接続されるインターフェイスを定義します。インターフェイスには、ソフトウェアベースまたはハードウェアベースのものがあります。
log_level ログの重大度を定義します。使用可能な値オプションは、DEBUG、INFO、WARN、および ERR です。
手記:

ジュニパーサポートから変更するように指示されない限り、log_levelはデフォルトのINFOに設定したままにします。

log_path

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

syslog_notifications

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

コアパターン

コア ファイルの生成方法を示すコア パターンを示します。この設定を空白のままにすると、Cloud-Native Routerポッドはデフォルトパターンを上書きしません。

手記:

JCNR をデプロイする前に、ホストで corePattern 値を設定します。 /etc/sysctl.confで値を変更できます。例えば kernel.core_pattern=/var/crash/core_%e_%p_%i_%s_%h_%t.gz

coreFileパス コア・ファイルのパスを示します。値を空白のままにすると、vRouter は /var/crashes をデフォルト値と見なします。
nodeAffinity

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

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

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

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

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

ノード アフィニティを適用するために一致する必要があるノード ラベルを表すキーと値のペア。
演算子 ノードラベルと、ポッド仕様の matchExpression パラメーターの値のセットとの関係を定義します。この値には、In、NotIn、Exists、DoesNotExist、Lt、または Gt を指定できます。
cni_bin_dir (オプション)デフォルトのパスは /opt/cni/bin です。デフォルトのcniパスをディストリビューションのパス(例:/var/opt/cni/bin)で上書きできます。
grpcTelemetryPort

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

grpcVrouterPort (オプション)このパラメータの値を入力して、vRouter gRPCサーバーのデフォルトポート50052を上書きします。
vRouterDeployerPort   (オプション)デフォルト値は 8081 です。デフォルトポートが利用できない場合に上書きするように設定します。
インターフェイスの復元 このキーの値を true に設定すると、vRouter Pod がクラッシュまたは再起動した場合にインターフェイスが元の状態に復元されます。
bondInterfaceConfigs (ボンドインターフェイス設定) (オプション)L2 または L2-L3 展開でのみボンディングインターフェイス設定を有効にします。
名前 ボンディング・インターフェースの名前。
モード デフォルト値は 1 (Active_Backup) です
スレーブインターフェイス 集約するファブリックインターフェイス。

プライマリインターフェイス

(オプション)ボンドのプライマリインターフェイスを定義します。このキーが設定されていない場合、プライマリインターフェイスオプションは無効になります。

MTU すべての物理インターフェイス(VFおよびPF)のMTU(最大伝送単位)値。デフォルト値は 9000 です。
cpu_core_mask

vRouter フォワード コア マスクを示します。qos が有効になっている場合は、4 つの CPU コア (プライマリと兄弟) を割り当てる必要があります。

stormControlProfiles ファブリックインターフェイス上のBUMトラフィックのレート制限プロファイルをバイト/秒で設定します。

dpdkコマンド追加引数

追加の dpdk cmd 行パラメーターを渡します。--yield_option 0 はデフォルトで設定されており、dpdk 転送コアが割り当てられている CPU コアを生成しないことを意味します。追加できるその他の共通パラメータは、txおよびrx記述子とmempoolです。例えば:

dpdkCommandAdditionalArgs: "--yield_option 0 --dpdk_txd_sz 2048 --dpdk_rxd_sz 2048 --vr_mempool_sz 131072"
DDPの

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

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

手記:

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

qos有効化

QoS を有効または無効にするには、true または false に設定します。

手記:

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

vrouter_dpdk_uio_driver uio ドライバは vfio-pciです。

agentModeType (エージェントモードタイプ)

dpdk または xdp を指定できます。agentModeType を dpdk に設定すると、dpdk データパスが表示されます。agentModeType を xdp に設定すると、ebpf が使用されます。デフォルト値は dpdk です。

fabricRpfCheckDisable

JNCR のすべてのファブリック インターフェイスで RPF チェックを有効にするには、このフラグを false に設定します。デフォルトでは、RPF チェックは無効になっています。

persistConfig

jcnr-cni で生成されたポッド構成をアンインストール後も保持する場合は、このフラグを true に設定します。オプションは、L2モードでのみ設定する必要があります。デフォルト値は false です。

サンプル Helm チャート

L2 のみのデプロイメントの Helm チャート

動作中の L2 のみの Helm チャートのサンプルを以下に示します。設定されたセクションは 太字で強調表示されます。

L3 のみのデプロイの Helm チャート

動作中の L3 のみの Helm チャートのサンプルを以下に示します。設定されたセクションは 太字で強調表示されます。

L2-L3 展開の Helm チャート

動作中の L2-L3 Helm チャートのサンプルを以下に示します。設定されたセクションは 太字で強調表示されます。