OpenShift導入向けジュニパークラウドネイティブルーターのインストールと検証
ジュニパークラウドネイティブルーター(クラウドネイティブルーター)は、JCNR-Controller(cRPD)を使用してコントロールプレーン機能を提供し、JCNR-CNIを使用してコンテナネットワークインターフェイスを提供します。ジュニパークラウドネイティブルーターは、DPDK対応のvRouterを使用して高性能なデータプレーン機能を提供し、Syslog-NGを使用して通知機能を提供します。このセクションでは、Red Hat OpenShift Container Platform (OCP) に Cloud-Native Router のこれらのコンポーネントをインストールする方法について説明します。
Helmチャートを使用してジュニパークラウドネイティブルーターをインストールする
このセクションでは、Helm チャートを使用してクラウドネイティブルーターコンポーネントをインストールするために必要な手順について説明します。
- OpenShift デプロイメントのシステム要件を確認して、クラスターに必要な設定がすべて行われることを確認します。
- 目的のCloud-Native Routerソフトウェアパッケージを、選択したディレクトリにダウンロードします。
パッケージをダウンロードしてCloud-Native Routerのみをインストールするか、パッケージをダウンロードしてJNCRとジュニパーcSRXをインストールするかを選択できます。利用可能なパッケージの説明については、 クラウドネイティブルーターソフトウェアのダウンロードパッケージ を参照してください。ジュニパー cSRX を今すぐインストールしたくない場合は、後で作業中のクラウドネイティブルーターにジュニパー cSRX をインストールすることができます。
- ファイルジュニパー_Cloud_Native_Router_release-number.tgzを展開します。
tar xzvf Juniper_Cloud_Native_Router_release-number.tgz
- ディレクトリをメインインストールディレクトリに変更します。
Cloud-Native Routerのみをインストールする場合は、次のようになります。
このディレクトリには、Cloud-Native Router の Helm チャートのみが含まれています。cd Juniper_Cloud_Native_Router_<release>
Cloud-Native RouterとcSRXを同時にインストールする場合は、次のようになります。
このディレクトリには、Cloud-Native RouterとcSRXのHelmコンビネーションチャートが含まれています。cd Juniper_Cloud_Native_Router_CSRX_<release>
注:インストールの残りの手順はすべて、現在の作業ディレクトリが ジュニパー_Cloud_Native_Router_<release> または ジュニパー_Cloud_Native_Router_CSRX_<release> のいずれかになっていることを前提としています。
- 現在のディレクトリの内容を表示します。
ls helmchart images README.md scripts secrets
- helmchartディレクトリに移動し、Helmチャートを展開します。
cd helmchart
Cloud-Native Routerのみ:
ls jcnr-<release>.tgz
tar -xzvf jcnr-<release>.tgz
Helmチャートは、jcnrディレクトリにあります。ls jcnr jcnr-<release>.tgz
Cloud-Native RouterとcSRXの組み合わせの場合:
ls jcnr_csrx-<release>.tgz
tar -xzvf jcnr_csrx-<release>.tgz
Helm チャートは jcnr_csrx ディレクトリにあります。ls jcnr_csrx jcnr_csrx-<release>.tgz
- 導入にはCloud-Native Routerコンテナイメージが必要です。以下のオプションのいずれかを選択します。
-
ジュニパーネットワークス
enterprise-hub.juniper.netリポジトリからイメージを展開するようにクラスターを設定します。デプロイメント Helm チャートでリポジトリ資格情報を構成する方法の手順については、 リポジトリ資格情報の設定 を参照してください。 -
ダウンロードしたCloud-Native Routerソフトウェアパッケージに含まれるイメージtarballからイメージをデプロイするようにクラスターを設定します。ローカルコンテナランタイムにイメージをインポートする方法については、 事前パッケージ化されたイメージのデプロイ を参照してください。
-
- ライセンスのインストールの手順に従って、Cloud-Native Routerライセンスをインストールします。
- ホストサーバーのrootパスワードをsecrets/jcnr-secrets.yamlファイルの次の行に入力します。
root-password: <add your password in base64 format>
パスワードはbase64エンコード形式で入力する必要があります。パスワードを次のようにエンコードします。 このコマンドの出力を secrets/jcnr-secrets.yamlにコピーします。echo -n "password" | base64 -w0
- secrets/jcnr-secrets.yamlをクラスターに適用します。
kubectl apply -f secrets/jcnr-secrets.yaml namespace/jcnr created secret/jcnr-secrets created
- 必要に応じて、vRouter DPDKコンテナにコアを割り当てる方法を設定します。クラウドネイティブルーターの転送プレーンへのCPUの割り当てを参照してください。
- helmchart/jcnr/values.yamlまたはhelmchart/jcnr_csrx/values.yamlファイルを使用して、デプロイメント用のHelmチャートをカスタマイズします。
Helm チャート設定の説明は、 OpenShift デプロイメント用のクラウドネイティブルーター Helm チャートのカスタマイズ を参照してください。
- オプションで、Cloud-Native Routerの設定をカスタマイズします。
cRPDのカスタマイズを作成および適用するには、 クラウドネイティブルーター設定のカスタマイズ を参照してください。
- ジュニ パー cSRX を今すぐインストールする場合は、「 cSRX ライセンスの適用と cSRX の設定」の手順に従ってください。
- Helmチャートを使用してジュニパークラウドネイティブルーターを展開します。
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
- ジュニパークラウドネイティブルーターの導入を確認します。
helm ls
出力例:
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION jcnr default 1 2023-12-22 06:04:33.144611017 -0400 EDT deployed jcnr-<version> <version>
インストールの確認
この例の手順で示す出力は、クラスター内のノード数の影響を受けます。この点では、セットアップに表示される出力が異なる場合があります。
kubectl get pods -Aコマンドを発行して、Cloud-Native Routerポッドの状態を確認します。kubectlコマンドの出力には、すべての名前空間にあるKubernetesクラスターのすべてのポッドが表示されます。デプロイメントが成功すると、すべてのポッドが実行状態になります。この例では、ジュニパークラウドネイティブルーターポッドを 太字でマークしています。たとえば、kubectl get pods -A
NAMESPACE NAME READY STATUS RESTARTS AGE contrail jcnr-0-dp-contrail-vrouter-nodes-b2jxp 2/2 Running 0 16d contrail jcnr-0-dp-contrail-vrouter-nodes-vrdpdk-g7wrk 1/1 Running 0 16d jcnr jcnr-0-crpd-0 1/1 Running 0 16d jcnr syslog-ng-vh89p 1/1 Running 0 16d openshift-cluster-node-tuning-operator tuned-zccwc 1/1 Running 8 69d openshift-dns dns-default-wmchn 2/2 Running 14 69d openshift-dns node-resolver-dm9b7 1/1 Running 8 69d openshift-image-registry image-pruner-28212480-bpn9w 0/1 Completed 0 2d11h openshift-image-registry image-pruner-28213920-9jk74 0/1 Completed 0 35h openshift-image-registry node-ca-jbwlx 1/1 Running 8 69d openshift-ingress-canary ingress-canary-k6jqs 1/1 Running 8 69d openshift-ingress router-default-55dff9cbc5-kz8bg 1/1 Running 1 62d openshift-kni-infra coredns-node-warthog-41 2/2 Running 16 69d openshift-kni-infra keepalived-node-warthog-41 2/2 Running 14 69d openshift-machine-config-operator machine-config-daemon-w8fbh 2/2 Running 16 69d openshift-monitoring alertmanager-main-1 6/6 Running 7 62d openshift-monitoring node-exporter-rbht9 2/2 Running 15 69d openshift-monitoring prometheus-adapter-7d77cfb894-nx29s 1/1 Running 0 6d18h openshift-monitoring prometheus-k8s-1 6/6 Running 6 62d openshift-monitoring prometheus-operator-admission-webhook-7d4759d465-mv98x 1/1 Running 1 62d openshift-monitoring thanos-querier-6d77dcb87-c4pr6 6/6 Running 6 62d openshift-multus multus-additional-cni-plugins-jbrv2 1/1 Running 8 69d openshift-multus multus-x2ddp 1/1 Running 8 69d openshift-multus network-metrics-daemon-tg528 2/2 Running 16 69d openshift-network-diagnostics network-check-target-mqr4t 1/1 Running 8 69d openshift-operator-lifecycle-manager collect-profiles-28216020-66xqc 0/1 Completed 0 6m8s openshift-ovn-kubernetes ovnkube-node-d4g2s 5/5 Running 37 69d
kubectl get ds -Aコマンドを発行して、Cloud-Native Routerデーモンセットを確認します。デーモンセットのリストを取得するには、
kubectl get ds -Aコマンドを使用します。Cloud-Native Routerデーモンセットは太字で強調表示されています。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> 16d contrail jcnr-0-dp-contrail-vrouter-nodes-vrdpdk 1 1 1 1 1 <none> 16d jcnr syslog-ng 1 1 1 1 1 <none> 16d openshift-cluster-node-tuning-operator tuned 5 5 5 5 5 kubernetes.io/os=linux 69d openshift-dns dns-default 5 5 5 5 5 kubernetes.io/os=linux 69d openshift-dns node-resolver 5 5 5 5 5 kubernetes.io/os=linux 69d openshift-image-registry node-ca 5 5 5 5 5 kubernetes.io/os=linux 69d openshift-ingress-canary ingress-canary 2 2 2 2 2 kubernetes.io/os=linux 69d openshift-machine-api ironic-proxy 3 3 3 3 3 node-role.kubernetes.io/master= 69d openshift-machine-config-operator machine-config-daemon 5 5 5 5 5 kubernetes.io/os=linux 69d openshift-machine-config-operator machine-config-server 3 3 3 3 3 node-role.kubernetes.io/master= 69d openshift-monitoring node-exporter 5 5 5 5 5 kubernetes.io/os=linux 69d openshift-multus multus 5 5 5 5 5 kubernetes.io/os=linux 69d openshift-multus multus-additional-cni-plugins 5 5 5 5 5 kubernetes.io/os=linux 69d openshift-multus network-metrics-daemon 5 5 5 5 5 kubernetes.io/os=linux 69d openshift-network-diagnostics network-check-target 5 5 5 5 5 beta.kubernetes.io/os=linux 69d openshift-ovn-kubernetes ovnkube-master 3 3 3 3 3 beta.kubernetes.io/os=linux,node-role.kubernetes.io/master= 69d openshift-ovn-kubernetes ovnkube-node 5 5 5 5 5 beta.kubernetes.io/os=linux 69d
kubectl get statefulsets -Aコマンドを発行して、Cloud-Native Routerのステートフルセットを検証します。コマンド出力は、ステートフルセットを提供します。
kubectl get statefulsets -A
NAMESPACE NAME READY AGE jcnr jcnr-0-crpd 1/1 16d openshift-monitoring alertmanager-main 2/2 69d openshift-monitoring prometheus-k8s 2/2 69d
- 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が表示されます。出力は、カスタム設定とCloud-Native Routerの導入モードに基づきます。root@jcnr-01# cli root@jcnr-01> show configuration | display set
exitコマンドを入力して、ポッドシェルから終了します。
- vRouterインターフェイス設定の検証
- vRouter CLIにアクセスするには、「vRouter CLIにアクセスする」セクションを表示してください。
- vRouter CLIにアクセスしたら、
vif --listコマンドを発行して vRouter インターフェイスを表示します。出力は、Cloud-Native Routerの導入モードと設定によって異なります。2つのファブリックインターフェイスを設定した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 port packets:864 errors:0 RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 RX packets:864 bytes:75536 errors:0 TX packets:13609 bytes:1419892 errors:0 Drops:0 vif0/1 PCI: 0000:17:00.0 (Speed 25000, Duplex 1) NH: 6 MTU: 9000 Type:Physical HWaddr:40:a6:b7:a0:f0:6c IPaddr:0.0.0.0 DDP: OFF SwLB: ON Vrf:0 Mcast Vrf:0 Flags:TcL3L2Vof QOS:0 Ref:9 RX port packets:243886 errors:0 RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 Fabric Interface: 0000:17:00.0 Status: UP Driver: net_ice RX packets:243886 bytes:20529529 errors:0 TX packets:243244 bytes:20010274 errors:0 Drops:2675 TX port packets:243244 errors:0 vif0/2 PCI: 0000:17:00.1 (Speed 25000, Duplex 1) NH: 7 MTU: 9000 Type:Physical HWaddr:40:a6:b7:a0:f0:6d IPaddr:0.0.0.0 DDP: OFF SwLB: ON Vrf:0 Mcast Vrf:0 Flags:TcL3L2Vof QOS:0 Ref:8 RX port packets:129173 errors:0 RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 Fabric Interface: 0000:17:00.1 Status: UP Driver: net_ice RX packets:129173 bytes:11623158 errors:0 TX packets:129204 bytes:11624377 errors:0 Drops:0 TX port packets:129204 errors:0 vif0/3 PMD: ens1f0 NH: 10 MTU: 9000 Type:Host HWaddr:40:a6:b7:a0:f0:6c IPaddr:0.0.0.0 DDP: OFF SwLB: ON Vrf:0 Mcast Vrf:65535 Flags:L3L2DProxyEr QOS:-1 Ref:11 TxXVif:1 RX device packets:242329 bytes:19965464 errors:0 RX queue packets:242329 errors:0 RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 RX packets:242329 bytes:19965464 errors:0 TX packets:241163 bytes:20324343 errors:0 Drops:0 TX queue packets:241163 errors:0 TX device packets:241163 bytes:20324343 errors:0 vif0/4 PMD: ens1f1 NH: 15 MTU: 9000 Type:Host HWaddr:40:a6:b7:a0:f0:6d IPaddr:0.0.0.0 DDP: OFF SwLB: ON Vrf:0 Mcast Vrf:65535 Flags:L3L2DProxyEr QOS:-1 Ref:11 TxXVif:2 RX device packets:129204 bytes:11624377 errors:0 RX queue packets:129204 errors:0 RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 RX packets:129204 bytes:11624377 errors:0 TX packets:129173 bytes:11623158 errors:0 Drops:0 TX queue packets:129173 errors:0 TX device packets:129173 bytes:11623158 errors:0 exitコマンドを入力して、ポッドシェルを終了します。