ベアメタルサーバー向けJuniper Cloud-Native Routerのインストールと検証
概要 Juniper Cloud-Native Router(クラウドネイティブルーター)は、JCNR-Controller(cRPD)を使用してコントロールプレーン機能を提供し、JCNR-CNIを使用してコンテナネットワークインターフェイスを提供します。Juniper Cloud-Native Routerは、DPDK対応のvRouterを使用してハイパフォーマンスなデータプレーン機能を提供し、Syslog-NGを使用して通知機能を提供します。このセクションでは、Cloud-Native Routerのこれらのコンポーネントをインストールする方法について説明します。
Helm Chartを使用してJuniper Cloud-Native Routerをインストールする
このセクションでは、クラウドネイティブ ルーター イメージ コンポーネントを Docker に読み込み、Helm チャートを使用してクラウドネイティブ ルーター コンポーネントをインストールするために必要な手順について説明します。
- 「ベアメタル サーバーのシステム要件」セクションを確認して、クラスターに必要なすべての構成があることを確認します。
- 目的のJCNRソフトウェアパッケージを任意のディレクトリにダウンロードします。
パッケージをダウンロードしてJCNRのみをインストールするか、パッケージをダウンロードしてJuniper cSRXと一緒にJNCRをインストールするかを選択できます。使用可能なパッケージの説明については 、JCNR ソフトウェア・ダウンロード・パッケージ を参照してください。Juniper cSRXを今すぐインストールしない場合は、後で作業中のJCNRインストールにJuniper cSRXをインストールすることをいつでも選択できます。
- ダウンロードしたパッケージを展開します。
tar xzvf <sw_package>.tar.gz
- ディレクトリをメインのインストールディレクトリに変更します。
JCNR のみをインストールする場合は、次のようにします。
cd Juniper_Cloud_Native_Router_<release>
JCNRとcSRXを同時にインストールする場合は、次のようになります。
cd Juniper_Cloud_Native_Router_CSRX_<release>
手記:インストールの残りのすべてのステップでは、現在の作業ディレクトリーが Juniper_Cloud_Native_Router_<release> または Juniper_Cloud_Native_Router_CSRX_<release> になっていることを前提としています。
- 現在のディレクトリの内容を表示します。
ls helmchart images README.md secrets
- ヘルムチャートディレクトリに移動し、ヘルムチャートを展開します。
cd helmchart
JCNR の場合のみ:
ls jcnr-<release>.tgz
tar -xzvf jcnr-<release>.tgz
ls jcnr jcnr-<release>.tgz
JCNRとcSRXを組み合わせた場合:
ls jcnr_csrx-<release>.tgz
tar -xzvf jcnr_csrx-<release>.tgz
ls jcnr_csrx jcnr_csrx-<release>.tgz
- JCNR コンテナー・イメージは、デプロイメントに必要です。次のいずれかのオプションを選択します。
-
Juniper Networks
enterprise-hub.juniper.net
リポジトリからイメージをデプロイするようにクラスターを構成します。デプロイ Helm チャートでリポジトリ資格情報を構成する方法については、「 リポジトリ資格情報の構成 」を参照してください。 -
ダウンロードした JCNR ソフトウェア・パッケージに含まれているイメージ tarball からイメージをデプロイするようにクラスターを構成します。ローカルのコンテナー化されたランタイムにイメージをインポートする方法については、「 パッケージ済みイメージのデプロイ 」を参照してください。
-
- ライセンスのインストールのステップに従って、JCNR ライセンスをインストールします。
- 次の行の secrets/jcnr-secrets.yaml ファイルにホスト サーバーの root パスワードを入力します。
root-password: <add your password in base64 format>
パスワードは base64 でエンコードされた形式で入力する必要があります。パスワードをエンコードするには、プレーンテキストのパスワードでファイルを1行で作成します。次に、コマンドbase64 -w 0 rootPasswordFile
- secrets/jcnr-secrets.yaml をクラスターに適用します。
kubectl apply -f secrets/jcnr-secrets.yaml namespace/jcnr created secret/jcnr-secrets created
- 必要に応じて、vRouter DPDKコンテナへのコアの割り当て方法を設定します。JCNR 転送プレーンへの CPU の割り当てを参照してください。
- helmchart/jcnr/values.yaml または helmchart/jcnr_csrx/values.yaml ファイルを使用して、デプロイに合わせて Helm チャートをカスタマイズします。
Helm チャート構成の説明については、 ベア・メタル・サーバー用の JCNR Helm チャートのカスタマイズ を参照してください。
- オプションで、JCNR 構成をカスタマイズします。
cRPDカスタマイズの作成および適用については、 JCNR設定のカスタマイズ を参照してください。
- 今すぐJuniper cSRXをインストールする場合は、cSRXライセンスの適用とcSRXの設定の手順に従ってください。
nodeaffinity
構成 (values.yaml
で定義されている場合) に基づいて、JCNR をインストールするノードにラベルを付けます。例えば:kubectl label nodes ip-10.0.100.17.lab.net key1=jcnr --overwrite
- Helmチャートを使用してJuniper Cloud-Native Routerをデプロイします。
helmchart/jcnr または helmchart/jcnr_csrx ディレクトリーに移動し、以下のコマンドを実行します:
helm install jcnr .
helm install jcnr_csrx .
NAME: jcnr LAST DEPLOYED: Fri Dec 22 06:04:33 2023 NAMESPACE: default STATUS: deployed REVISION: 1 TEST SUITE: None
- Juniper Cloud-Native Routerの導入を確認します。
helm ls
サンプル出力:
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION jcnr default 1 <date-time> deployed jcnr-<version> <version>
インストールの確認
この手順の例で示す出力は、クラスタ内のノード数の影響を受けます。セットアップに表示される出力は、その点で異なる場合があります。
kubectl get pods -A
コマンドを発行して、JCNR ポッドの状態を検証します。kubectl
コマンドの出力には、すべての名前空間の Kubernetes クラスター内のすべてのポッドが表示されます。デプロイが成功するということは、すべてのポッドが実行状態にあることを意味します。この例では、Juniper Cloud-Native Router Podsを 太字でマークしています。次に例を示します。kubectl get pods -A
NAMESPACE NAME READY STATUS RESTARTS AGE contrail-deploy contrail-k8s-deployer-579cd5bc74-g27gs 1/1 Running 0 103s contrail jcnr-0-dp-contrail-vrouter-nodes-b2jxp 2/2 Running 0 87s contrail jcnr-0-dp-contrail-vrouter-nodes-vrdpdk-g7wrk 1/1 Running 0 87s jcnr jcnr-0-crpd-0 1/1 Running 0 103s jcnr syslog-ng-ds5qd 1/1 Running 0 103s kube-system calico-kube-controllers-5f4fd8666-m78hk 1/1 Running 0 4h2m kube-system calico-node-28w98 1/1 Running 0 86d kube-system coredns-54bf8d85c7-vkpgs 1/1 Running 0 3h8m kube-system dns-autoscaler-7944dc7978-ws9fn 1/1 Running 0 86d kube-system kube-apiserver-ix-esx-06 1/1 Running 0 86d kube-system kube-controller-manager-ix-esx-06 1/1 Running 0 86d kube-system kube-multus-ds-amd64-jl69w 1/1 Running 0 86d kube-system kube-proxy-qm5bl 1/1 Running 0 86d kube-system kube-scheduler-ix-esx-06 1/1 Running 0 86d kube-system nodelocaldns-bntfp 1/1 Running 0 86d
kubectl get ds -A
コマンドを発行して、JCNR デーモンセットを検証します。kubectl get ds -A
コマンドを使用して、デーモンセットのリストを取得します。JCNR デーモンセットは太字で強調表示されています。kubectl get ds -A
NAMESPACE NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE contrail jcnr-0-dp-contrail-vrouter-nodes 1 1 1 1 1 <none> 90m contrail jcnr-0-dp-contrail-vrouter-nodes-vrdpdk 1 1 1 1 1 <none> 90m jcnr syslog-ng 1 1 1 1 1 <none> 90m kube-system calico-node 1 1 1 1 1 kubernetes.io/os=linux 86d kube-system kube-multus-ds-amd64 1 1 1 1 1 kubernetes.io/arch=amd64 86d kube-system kube-proxy 1 1 1 1 1 kubernetes.io/os=linux 86d kube-system nodelocaldns 1 1 1 1 1 kubernetes.io/os=linux 86d
kubectl get statefulsets -A
コマンドを発行して、JCNR ステートフルセットを検証します。コマンド出力はステートフルセットを提供します。
kubectl get statefulsets -A
NAMESPACE NAME READY AGE jcnr jcnr-0-crpd 1/1 27m
- cRPDがライセンスされており、適切な設定になっているかを確認する
- cRPD CLIにアクセスする手順については、「cRPD CLIへのアクセス」セクションを参照してください。
- cRPD CLIにアクセスしたら、CLIモードで
show system license
コマンドを発行して、システムライセンスを表示します。例えば:root@jcnr-01:/# cli root@jcnr-01> show system license License usage: Licenses Licenses Licenses Expiry Feature name used installed needed containerized-rpd-standard 1 1 0 2024-09-20 16:59:00 PDT Licenses installed: License identifier: 85e5229f-0c64-0000-c10e4-a98c09ab34a1 License SKU: S-CRPD-10-A1-PF-5 License version: 1 Order Type: commercial Software Serial Number: 1000098711000-iHpgf Customer ID: Juniper Networks Inc. License count: 15000 Features: containerized-rpd-standard - Containerized routing protocol daemon with standard features date-based, 2022-08-21 17:00:00 PDT - 2027-09-20 16:59:00 PDT
- CLIモードで
show configuration | display set
コマンドを発行し、cRPDのデフォルト設定とカスタム設定を表示します。出力は、カスタム構成と JCNR デプロイメント・モードに基づきます。root@jcnr-01# cli root@jcnr-01> show configuration | display set
exit
コマンドを入力して、ポッドシェルを終了します。
- vRouter インターフェイスの設定を確認する
- vRouter CLI にアクセスする手順については、「Access vRouter CLI 」セクションを参照してください。
- vRouter CLI にアクセスしたら、
vif --list
コマンドを発行して vRouter インターフェイスを表示します。出力は、JCNR デプロイメント・モードおよび構成によって異なります。1 つのファブリック インターフェイスを設定した L3 モードの導入例を以下に示します。$ vif --list Vrouter Interface Table Flags: P=Policy, X=Cross Connect, S=Service Chain, Mr=Receive Mirror Mt=Transmit Mirror, Tc=Transmit Checksum Offload, L3=Layer 3, L2=Layer 2 D=DHCP, Vp=Vhost Physical, Pr=Promiscuous, Vnt=Native Vlan Tagged Mnp=No MAC Proxy, Dpdk=DPDK PMD Interface, Rfl=Receive Filtering Offload, Mon=Interface is Monitored Uuf=Unknown Unicast Flood, Vof=VLAN insert/strip offload, Df=Drop New Flows, L=MAC Learning Enabled Proxy=MAC Requests Proxied Always, Er=Etree Root, Mn=Mirror without Vlan Tag, HbsL=HBS Left Intf HbsR=HBS Right Intf, Ig=Igmp Trap Enabled, Ml=MAC-IP Learning Enabled, Me=Multicast Enabled vif0/0 Socket: unix MTU: 1514 Type:Agent HWaddr:00:00:5e:00:01:00 Vrf:65535 Flags:L2 QOS:-1 Ref:3 RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 0 0 RX packets:0 bytes:0 errors:0 TX packets:0 bytes:0 errors:0 Drops:0 vif0/1 PCI: 0000:5a:02.1 (Speed 10000, Duplex 1) NH: 6 MTU: 9000 Type:Physical HWaddr:ba:9c:0f:ab:e2:c9 IPaddr:0.0.0.0 DDP: OFF SwLB: ON Vrf:0 Mcast Vrf:0 Flags:L3L2Vof QOS:0 Ref:12 RX port packets:66 errors:0 RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Fabric Interface: 0000:5a:02.1 Status: UP Driver: net_iavf RX packets:66 bytes:5116 errors:0 TX packets:0 bytes:0 errors:0 Drops:0 vif0/2 PMD: eno3v1 NH: 9 MTU: 9000 Type:Host HWaddr:ba:9c:0f:ab:e2:c9 IPaddr:0.0.0.0 DDP: OFF SwLB: ON Vrf:0 Mcast Vrf:65535 Flags:L3L2DProxyEr QOS:-1 Ref:13 TxXVif:1 RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 0 0 RX packets:0 bytes:0 errors:0 TX packets:66 bytes:5116 errors:0 Drops:0 TX queue packets:66 errors:0 TX device packets:66 bytes:5116 errors:0
exit
コマンドを入力して、ポッドシェルを終了します。