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) に Juniper Cloud-Native Router をインストールするためのシステム、リソース、ポート、ライセンスの要件について説明します。

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

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

表1: OCPの最小ホストシステム要件
コンポーネント 値/バージョン ノート
CPU Intel x86 テストされたCPUはIntel(R)Xeon(R)Silver 4314 CPU @ 2.40GHz 64コアです。
ホストOS RHCOS 4.12  
カーネルバージョン RedHat Enterprise Linux (RHEL): 4.18.X RHEL のテスト済みカーネル バージョンは 4.18.0-372.40.1.el8_6.x86_64 です
NIC
  • インテルE810ファームウェア4.00 0x80014411 1.3236.0

  • ファームウェア4.000x800144111.3236.0を搭載したIntel E810-CQDA2

  • Intel XL710 ファームウェア 9.00 0x8000cead 1.3179.0

  • メラノックス コネクトX-6

  • メラノックス コネクトX-7

Mellanox NICのサポートは、ジュニパーテクノロジープレビュー(技術プレビュー)機能と見なされています。

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

Mellanox NIC を使用する場合は、 Mellanox NIC のインターフェイス命名法のインターフェイス命名手順に従います。

IAVF ドライバー バージョン 4.5.3.1  
ICE_COMMS バージョン 1.3.35.0  
バージョン 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 クリオ1.25倍 他のコンテナランタイムは動作する可能性がありますが、JCNRではテストされていません。

OCPのリソース要件

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

表 2: OCP のリソース要件
リソース の使用上の注意
データプレーンフォワーディングコア 2 コア (2P + 2S)  
サービス/コントロールコア 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
ヒュージページズ(1G) 6ギ 次のコマンドを使用して、ワーカーノードでhupagesを設定します
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=8 
    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: "" 
手記:

この 6 x 1 GB の巨大な要件は、基本的な L2 モード設定の最小要件です。より複雑なインストールを行うには、この数を増やしてください。たとえば、2 つの NUMA ノードと 256k の記述子を持つ L3 モードの設定では、最適なパフォーマンスを得るには、1 GB の hugepages の数を 10 に設定します。

Cloud-Native Router Controller コア .5  
Cloud-Native Router vRouter Agentコア .5  

OCPのその他の要件

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

表 3: 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

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

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*は、Cloud-Native Routerインターフェイスを指します。
    メモ: 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

ポート要件

Juniper Cloud-Native Routerは、特定のTCPおよびUDPポートでリッスンします。このセクションでは、Cloud-Native Routerのポート要件を示します。

表4:Cloud-Native Routerのリスニングポート
プロトコル ポート の説明
TCPの 8085 vRouterイントロスペクト - vRouterに関する内部統計情報を取得するために使用します。
TCPの 8070 テレメトリ情報 - Cloud-Native Router vRouter からのテレメトリデータを表示するために使用します。
TCPの 8072 テレメトリ情報 - Cloud-Native Routerコントロールプレーンからのテレメトリデータを確認するために使用します。
TCPの 8075, 8076 テレメトリ情報:gNMI 要求に使用されます
TCPの 9091 vRouterヘルスチェック - クラウドネイティブルーターがvRouterエージェントが実行されていることを確認します。
TCPの 9092 vRouterヘルスチェック - クラウドネイティブルーターがvRouter DPDKが実行されていることを確認します。
TCPの 50052 gRPCポート - Cloud-Native RouterはIPv4とIPv6の両方でリッスン
TCPの 8081 Cloud-Native Router Deployerポート
TCPの 24 cRPD SSH
TCPの 830 cRPD NETCONF
TCPの 666 RPDの
TCPの 1883 Mosquito mqtt–パブリッシュ/サブスクライブメッセージングユーティリティ
TCPの 9500 cRPD上のagentd
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: 予測可能なインタフェース命名を無効にする)、Cloud-Native Routerインタフェースの名前を変更します(オプション2: Cloud-Native Routerインタフェースの名前を変更します)。Cloud-Native Routerインタフェースは、Cloud-Native Routerで制御するインタフェースです。

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

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

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

  3. grub を更新します。

  4. ノードをリブートします。

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

  6. インターフェイスをリストし、non-Cloud-Native RouterインターフェイスとCloud-Native Routerインターフェイスの名前をメモします。

  7. Cloud-Native Router 以外のすべてのインターフェイスについて、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インタフェースの新しい名前で更新する(またはサブネットを使用する)ことを忘れないでください。