Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

OpenShift導入のシステム要件

Red Hat OpenShift Container Platform (OCP) にジュニパークラウドネイティブルーターをインストールするためのシステム、リソース、ポート、およびライセンス要件については、このセクションをお読みください。

OCPの最小ホストシステム要件

表1 および 表2 に、OCPにCloud-Native Routerをインストールするためのホストシステム要件を示します。

表1:OCPの最小ホストシステム要件
コンポーネント 値/バージョン ノート
CPU Intel x86 テスト対象のCPUはIntel(R) Xeon(R) Silver 4314 CPU @ 2.40GHz 64コア
ホストOS RHCOS 4.13  
カーネルバージョン RedHat Enterprise Linux(RHEL):4.18.X RHEL のテスト済みカーネルバージョンは 4.18.0-372.40.1.el8_6.x86_64 です
NIC 表2をご覧ください。
IAVFドライバー バージョン4.5.3.1  
ICE_COMMS バージョン 1.3.35.0  
ICE バージョン 1.9.11.9 ICE ドライバーは、Intel E810 NIC でのみ使用されます
i40e バージョン2.18.9 i40e ドライバーは、Intel XL710 NIC でのみ使用されます
OCPバージョン 4.13  
OVN-Kubernetes CNI    
マルタス バージョン3.8  
ヘルム 3.12.x  
コンテナRT CRIO 1.25倍 他のコンテナランタイムは動作する可能性がありますが、JCNR ではテストされていません。
注:

この表に示したコンポーネントのバージョンは、JCNRで動作することが想定されていますが、すべてのバージョンまたは組み合わせがすべてのリリースでテストされているわけではありません。

表2:サポートされているNIC(DPDK)
コントローラファミリ NIC ファームウェアド ライバ COMMS DDP
Intelイーサネット700シリーズ

インテルXL710

9.50 2.26.8
 

Intel X710-DA4(10G x 4)

9.50 2.26.8
 

Intel XXV710-DA2(2 x 25G)

9.50 2.26.8
Intelイーサネット800シリーズ

インテル E810 CPK

2.20 1.9.11.9
 

インテル E810 CVL

4.60 1.15.4 1.3.46.0
 

Intel E810-C(4 x 25G)

4.60 1.15.4 1.3.46.0
 

Intel E810-C(100G x 2)

4.60 1.15.4 1.3.46.0
 

インテル E810-CQDA2

4.60 1.15.4 1.3.46.0
 

インテル E810-XXV

4.60 1.15.4 1.3.46.0
Nvidia Mellanox1,2

Mellanox ConnectX-6

26.43.1014 24.10-0.7.0.0
 

Mellanox ConnectX-7

28.43.1014 24.10-0.7.0.0

1Nvidia Mellanox NIC を使用する場合は、インターフェイス名の長さが 11 文字を超えないようにしてください。

2Nvidia Mellanox NICを使用する場合は、 Mellanox NICのインターフェイス命名規則のインターフェイス命名手順に従ってください。

OCPのリソース要件

表3は 、OCPにCloud-Native Routerをインストールするためのリソース要件を示しています。

表3:OCPのリソース要件
リソース 価値 使用上の注意
データプレーン転送コア 1コア(1P + 1S)  
サービス/コントロールコア 0  
UIOドライバー VFIO-PCI 有効にするには、以下の手順に従います。

100-worker-vfiopci.bu、PCIデバイスをVFIOドライバにバインドするブタン設定ファイルを作成します。

variant: openshift
version: 4.8.0
metadata:
  name: 100-worker-vfiopci
  labels:
    machineconfiguration.openshift.io/role: worker 
storage:
  files:
  - path: /etc/modprobe.d/vfio.conf
    mode: 0644
    overwrite: true
    contents:
      inline: |
        options vfio-pci ids=10de:1eb8 
  - path: /etc/modules-load.d/vfio-pci.conf 
    mode: 0644
    overwrite: true
    contents:
      inline: vfio-pci

マシン設定を作成して適用します。

$ butane 100-worker-vfiopci.bu -o 100-worker-vfiopci.yaml
$ oc apply -f 100-worker-vfiopci.yaml
Hugepages(1G) 6ギ 以下のコマンドを使用して、ワーカーノード上でヒュージページを設定します。
oc create -f hugepages-tuned-boottime.yaml 
# cat hugepages-tuned-boottime.yaml  
apiVersion: tuned.openshift.io/v1 
kind: Tuned 
metadata: 
  name: hugepages  
  namespace: openshift-cluster-node-tuning-operator 
spec: 
  profile:  
  - data: | 
      [main] 
      summary=Boot time configuration for hugepages 
      include=openshift-node 
      [bootloader] 
      cmdline_openshift_node_hugepages=hugepagesz=1G hugepages=6 
    name: openshift-node-hugepages 
  recommend: 
  - machineConfigLabels:  
      machineconfiguration.openshift.io/role: "worker-hp" 
    priority: 30 
    profile: openshift-node-hugepages 
oc create -f hugepages-mcp.yaml  
# cat hugepages-mcp.yaml  
apiVersion: machineconfiguration.openshift.io/v1 
kind: MachineConfigPool 
metadata: 
  name: worker-hp 
  labels: 
    worker-hp: "" 
spec: 
  machineConfigSelector: 
    matchExpressions: 
      - {key: machineconfiguration.openshift.io/role, operator: In, values: [worker,worker-hp]} 
  nodeSelector: 
    matchLabels: 
      node-role.kubernetes.io/worker-hp: "" 
Cloud-Native Routerコントローラコア数 .5  
Cloud-Native Router vRouterエージェントコア数 .5  

OCPのその他の要件

表4は 、OCPにCloud-Native Routerをインストールするための追加要件を示しています。

表4:OCPのその他の要件

Cloud-Native Routerリリースに関するその他の要件

システムのBIOSでSR-IOVとVT-dでホストを有効にします。

BIOSによって異なります。

システム起動時にVLANドライバーを有効にします。

/etc/modules-load.d/vlan.confを次のように設定します。

cat /etc/modules-load.d/vlan.conf
8021q

再起動し、次のコマンドを実行して確認します。

lsmod | grep 8021q

システム起動時にVFIO-PCIドライバーを有効にします。

/etc/modules-load.d/vfio.conf を次のように設定します。

cat /etc/modules-load.d/vfio.conf
vfio
vfio-pci

再起動し、次のコマンドを実行して確認します。

lsmod | grep vfio

IOMMUとIOMMU-PTを設定します。

IOMMU と IOMMU-PT を設定する MachineConfig オブジェクトを作成します。
apiVersion: machineconfiguration.openshift.io/v1
kind: MachineConfig
metadata:
  labels:
    machineconfiguration.openshift.io/role: worker 
  name: 100-worker-iommu 
spec:
  config:
    ignition:
      version: 3.2.0
  kernelArguments:
      - intel_iommu=on iommmu=pt
$ oc create -f 100-worker-kernel-arg-iommu.yaml

JCNRに割り当てられたVFのスプーフィングチェックを無効にします。

注:

L2導入にのみ適用できます。

ip link set <interfacename> vf 1 spoofcheck off.

JCNRに割り当てられたVFの信頼を設定します。

注:

L2導入にのみ適用できます。

ip link set <interfacename> vf 1 trust on

Cloud-Native RouterをL3モードで展開する前に、追加のカーネルモジュールをホストにロードする必要があります。これらのモジュールは通常、 linux-modules-extra または kernel-modules-extra パッケージで入手できます。

注:

L3導入にのみ適用可能です。

conf ファイルを作成し、カーネルモジュールを追加します。

cat /etc/modules-load.d/crpd.conf
tun
fou
fou6
ipip
ip_tunnel
ip6_tunnel
mpls_gso
mpls_router
mpls_iptunnel
vrf
vxlan

Linux ホストでカーネルベースの転送を有効にします。

ip fou add port 6635 ipproto 137

Cloud-Native RouterインターフェイスをNetworkManagerの制御から除外します。

NetworkManager は、ネットワーク インターフェイスの管理を容易にするための一部のオペレーティング システムのツールです。NetworkManager を使用すると、デフォルトのインターフェイスの操作と設定が容易になる場合があります。ただし、Kubernetesの管理に干渉し、問題が発生する可能性があります。

NetworkManager が Cloud-Native Router のインターフェイス設定に干渉しないようにするには、Cloud-Native Router のインターフェイスを NetworkManager の制御から除外します。一部の Linux ディストリビューションでこれを行う方法の例を次に示します。

  1. /etc/NetworkManager/conf.d/crpd.conf ファイルを作成し、NetworkManager に管理させたくないインターフェイスをリストアップします。

    例えば:

    [keyfile]
     unmanaged-devices+=interface-name:enp*;interface-name:ens*
    ここでenp*ens*はクラウドネイティブルーターのインターフェイスを指します。
    注: enp* enpで始まるすべてのインターフェイスを示します。特定のインターフェイス名については、カンマ区切りのリストを記載しています。
  2. NetworkManager サービスを再起動します。
    sudo systemctl restart NetworkManager
    を呼び出します。
  3. ホスト上の /etc/sysctl.conf ファイルを編集し、その中に以下の内容を貼り付けます。
    net.ipv6.conf.default.addr_gen_mode=0
    net.ipv6.conf.all.addr_gen_mode=0
    net.ipv6.conf.default.autoconf=0
    net.ipv6.conf.all.autoconf=0
  4. コマンド sysctl -p /etc/sysctl.conf を実行して、新しい sysctl.conf 値をホストに読み込みます。
  5. ボンディングインターフェイスを手動で作成します。例えば:

    ifconfig ens2f0 down
    ifconfig ens2f1 down
    ip link add bond0 type bond mode 802.3ad
    ip link set ens2f0 master bond0
    ip link set ens2f1 master bond0
    ifconfig ens2f0 up ; ifconfig ens2f1 up; ifconfig bond0 up

JCNRを展開する前に、core_pattern値がホストに設定されていることを確認します。

sysctl kernel.core_pattern
kernel.core_pattern = |/usr/lib/systemd/systemd-coredump %P %u %g %s %t %c %h %e

/etc/sysctl.confでcore_patternを更新できます。例えば:

kernel.core_pattern=/var/crash/core_%e_%p_%i_%s_%h_%t.gz
適切な送受信バッファサイズを設定します。
sysctl -w net.core.rmem_default=67108864
sysctl -w net.core.rmem_max=67108864
sysctl -w net.core.wmem_default=67108864
sysctl -w net.core.wmem_max=6710886

ポート要件

ジュニパークラウドネイティブルーターは、特定のTCPポートとUDPポートをリッスンします。このセクションでは、クラウドネイティブルーターのポート要件を示します。

表5:クラウドネイティブルーターのリスニングポート
プロトコル ポート の説明
TCP 8085 vRouter introspect - vRouterに関する内部統計情報を取得するために使用します
TCP 8070 テレメトリ情報 - クラウドネイティブルーターvRouterからのテレメトリデータを表示するために使用します
TCP 8072 テレメトリ情報 - クラウドネイティブルーターコントロールプレーンからのテレメトリデータを表示するために使用
TCP 8075, 8076 テレメトリ情報 - gNMI要求に使用
TCP 9091 vRouterの健全性チェック - クラウドネイティブルーターが、vRouterエージェントが実行されていることを確認します。
TCP 9092 vRouterの健全性チェック - クラウドネイティブルーターが、vRouter DPDKが実行されていることを確認します。
TCP 50052 gRPCポート - クラウドネイティブルーターは、IPv4とIPv6の両方をリッスンします
TCP 8081 クラウドネイティブルーター導入者ポート
TCP 24 cRPD SSH
TCP 830 cRPD NETCONF
TCP 666 rpd
TCP 1883 Mosquito mqtt–パブリッシュ/サブスクライブメッセージングユーティリティ
TCP 9500 cRPDのエージェント
TCP 21883 NA-MQTTD

TCP

50053

クライアントのサブスクリプション要求をリッスンするデフォルトのgNMIポート

TCP 51051 cRPD上のjsd
UDP 50055 Syslog-NG

Mellanox NICのインターフェイス命名規則

Mellanox NICをOpenShiftクラスターにデプロイする場合、OCPとCloud-Native RouterがそれらのNICのインターフェイス名をどのように使用するかの間に競合が発生する可能性があります。これにより、クラスターが立ち上がらなくなる可能性があります。

JCNRをインストールする前に、予測可能なインターフェイス命名を無効にするか(オプション1:予測可能なインターフェイス命名を無効にする)、クラウドネイティブルーターインターフェイスの名前を変更します(オプション2:クラウドネイティブルーターインターフェイスの名前を変更)。Cloud-Native Routerインターフェイスは、Cloud-Native Routerに制御させるインターフェイスです。

オプション1:予測可能なインターフェイス命名を無効にする

  1. 開始する前に、ノードへのコンソールアクセスがあることを確認します。

  2. /etc/default/grub を編集し、GRUB_CMDLINE_LINUX_DEFAULTnet.ifnames=0を追加します。

  3. grubを更新します。

  4. ノードを再起動します。

  5. ノードに再度ログインします。ネットワークインターフェイスが復旧しない場合は、コンソールからこれを行う必要がある場合があります。

  6. インターフェイスを一覧表示し、非クラウドネイティブルーターとクラウドネイティブルーターインターフェイスの名前をメモします。

  7. クラウドネイティブルーター以外のすべてのインターフェイスについては、新しいインターフェイス名でNetworkManager(またはネットワークレンダラー)を更新し、NetworkManagerを再起動します。

  8. Cloud-Native Router vRouterをインストールするすべてのノードで、この手順を繰り返します。

注:

Cloud-Native Router インストール Helm チャートのファブリック インターフェイスを、Cloud-Native Router インターフェイス (またはサブネットを使用する) の新しい名前で更新することを忘れないでください。

オプション2:Cloud-Native Routerインターフェイスの名前を変更する

  1. ルールを含む /etc/udev/rules.d/00-persistent-net.rules ファイルを作成します。

  2. ファイルに次の行を追加します。

    ここで、 <mac_address> は名前を変更するインターフェイスのMACアドレスで、 <new_ifname> はインターフェイスに割り当てる新しい名前(例: jcnr-eth1)です。

  3. 名前を変更する各インターフェイスに対応する行を追加します。(Cloud-Native Routerが制御するすべてのインターフェイスの名前を変更します。)

  4. ノードを再起動します。

  5. Cloud-Native Router vRouterをインストールするすべてのノードで、この手順を繰り返します。

注:

Cloud-Native Router インストール Helm チャートのファブリック インターフェイスを、Cloud-Native Router インターフェイス (またはサブネットを使用する) の新しい名前で更新することを忘れないでください。

ダウンロードオプション

クラウドネイティブルーターソフトウェアのダウンロードパッケージを参照してください。

Cloud-Native Routerライセンス

クラウドネイティブルーターライセンスの管理を参照してください。