Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

JCNR 設定のカスタマイズ

概要 ConfigMap を使用して JCNR 構成をカスタマイズする方法については、このトピックをお読みください。

JCNR コンフィグマップ

Juniper Cloud-Native Router(JCNR)リリース23.3以降、JCNRは、L3モードで展開された場合に、ConfigMapを使用した設定のカスタマイズをサポートしています。クラウドベースのデプロイメントでは、ノードに障害が発生した場合、JCNR ポッドが新しいノードまたは異なるノードに生成されることがあります。ConfigMap は、ノード名から構成パラメーターを分離し、代わりにノード ラベルに基づきます。これにより、JCNR CNIデプロイヤーは、ノードに一致するラベルが使用可能である限り、構成パラメーターを消費し、それらをcRPD構成テンプレートに適用し、構成をレンダリングすることができます。

ConfigMap は、キーと値のペアでデータを格納するための API オブジェクトです。ConfigMap は、ラベルに一致するノードによって使用されるノードごとの変数を定義します。キーと値のペアは、go テンプレートを介して設定をレンダリングするために使用されます。設定されたテンプレートは、 Juniper_Cloud_Native_Router_release_number/helmchart/charts/jcnr-cni/files/ cRPDポッドに適用される設定のディレクトリで使用可能である必要があります。

メモ:

JCNR をインストールする前に ConfigMap を適用して、カスタム構成で cRPD ポッドを作成する必要があります。JCNR のインストール後、いつでも設定パラメータを適用する場合は、cRPD ポッドを削除して再生成する必要があります。構成パラメーターは、新しく生成された cRPD ポッドにデフォルトで適用されます。ConfigMap による JCNR のカスタマイズはオプションです。

メモ:

JCNR は、以前のリリースとの後方互換性のために、ノード・アノテーションによるカスタマイズもサポートしています。ノード・アノテーションがノード名と結合されていることを考慮すると、特にクラウド・デプロイメントの場合、ConfigMap を介して JCNR をカスタマイズすることを強くお勧めします。詳しくは、 ノード・アノテーションを使用したJCNR構成のカスタマイズ を参照してください。

設定例

サンプルの ConfigMap ファイルとテンプレート ファイルは、ディレクトリの下にあります Juniper_Cloud_Native_Router_<release-number>/helmchart/cRPD_examples

クラスター内のさまざまなノードラベルのキーと値のペアを定義します。ファイルの例を次に示します jcnr-params-configmap.yaml

アノテーションで定義したキーと値のペアは、goテンプレートを介してcRPD設定をレンダリングするために使用されます。テンプレート ファイルの例 jcnr-cni-custom-config-cm.tmpl を以下に示します。

メモ:

テンプレートで追加のcRPD設定階層を定義できます。で定義された jcnr-params-configmap.yaml ConfigMap からレンダリングされる値は、 として {{.Params.var-name}}定義する必要があります。で values.yaml定義された変数などの環境変数は、 として {{.Env.variable_name}}定義する必要があります。

カスタマイズを適用するには、次の手順を実行します。

  1. ConfigMap で使用されるキーに基づいて各ノードにラベルを付けます。

  2. 次のコマンドを使用して、ConfigMap をクラスター ノードに適用します。
  3. テンプレートを構成したら、ファイルをディレクトリJuniper_Cloud_Native_Router_release_number/helmchart/charts/jcnr-cni/files/にコピーするjcnr-cni-custom-config.tmpl必要があります。
  4. cRPDを含むクラウドネイティブなルーターコンポーネントを導入します。インストールが完了したら、cRPD CLIにアクセスし、 モードで コマンドcliを発行show configuration | display setして、適用したカスタム設定を表示します。

コンフィグマップの変更

JCNR のインストール後にいつでも ConfigMap を変更する場合は、次のコマンドを使用して cRPD ポッドを削除し、再生成する必要があります。 これにより、すべての cRPD ポッドのローリング リスタートがトリガーされます。または、ConfigMap が変更されたノード上の cRPD ポッドを識別し、ポッドを手動で削除することもできます。ConfigMap の変更は、リスポーンされたポッドに自動的に適用されます。

トラブルシューティング

cRPDポッドは、無効な設定がレンダリングされ、goテンプレートを介して適用された場合、状態で再起動CrashLoopBackOffし続けます。レンダリングされたコンフィギュレーションは、 として JCNR ホストjuniper.conf.master上のディレクトリーに保存されます/config。レンダリングされた設定を実行中のcRPDポッドに手動で適用して、設定を検証し、問題を特定できます。AWS EKS デプロイの場合、レンダリングされた設定は、/configディレクトリの cRPD ポッド内にあります。