Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Cloud-Native Router設定のカスタマイズ

このトピックでは、ConfigMapを使用してCloud-Native Routerの設定をカスタマイズする方法をご確認ください。

Cloud-Native Router ConfigMap

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

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

手記:

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

手記:

Cloud-Native Routerは、以前のリリースとの後方互換性を保つために、ノードアノテーションによるカスタマイズもサポートしています。ノードアノテーションがノード名と組み合わされていることを考慮すると、特にクラウド導入用に、ConfigMapを使用してCloud-Native Routerをカスタマイズすることを強くお勧めします。詳しくは、 ノード注釈を使用した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. テンプレートを設定したら、 jcnr-cni-custom-config.tmpl ファイルを Juniper_Cloud_Native_Router_release_number/helmchart/charts/jcnr-cni/files/ ディレクトリにコピーする必要があります。
  4. cRPDを含むCloud-Native Routerコンポーネントを導入します。インストールが完了したら、 cRPD CLIへのアクセスcRPD CLIへのアクセスをクリックし、cliモードで show configuration | display set コマンドを発行して、適用したカスタム設定を表示します。

ConfigMap の変更

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

トラブルシューティング

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