OpenShift デプロイメントのシステム要件
このセクションでは、Red Hat OpenShift Container Platform (OCP) に Juniper Cloud-Native Router をインストールするためのシステム、リソース、ポート、ライセンスの要件について説明します。
OCPの最小ホストシステム要件
表1 は、OCPにCloud-Native Routerをインストールするためのホストシステム要件を示しています。
コンポーネント | 値/バージョン | ノート |
---|---|---|
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 |
|
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 コア (2P + 2S) | |
サービス/コントロールコア | 0 | |
UIOドライバー | VFIO-PCI準拠 | 有効にするには、次の手順に従います。 ブタン構成ファイルを作成し、 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をインストールするための追加要件を示しています。
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モードで導入する前に、追加のカーネルモジュールをホストにロードする必要があります。これらのモジュールは通常、
手記:
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ディストリビューションでこれを行う方法の例を次に示します。
|
JCNRを展開する前に、ホストにcore_pattern値が設定されていることを確認してください。 |
sysctl kernel.core_pattern kernel.core_pattern = |/usr/lib/systemd/systemd-coredump %P %u %g %s %t %c %h %e
kernel.core_pattern=/var/crash/core_%e_%p_%i_%s_%h_%t.gz |
ポート要件
Juniper Cloud-Native Routerは、特定のTCPおよびUDPポートでリッスンします。このセクションでは、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: 予測可能なインターフェイス名付けを無効にする
開始する前に、ノードへのコンソール アクセスがあることを確認してください。
/etc/default/grub を編集し、
net.ifnames=0
をGRUB_CMDLINE_LINUX_DEFAULT
に追加します。GRUB_CMDLINE_LINUX_DEFAULT="<existing_parameter_settings> net.ifnames=0"
grub を更新します。
grub2-mkconfig -o /boot/grub2/grub.cfg
ノードをリブートします。
ノードに再度ログインします。ネットワーク インターフェイスが復旧しない場合は、コンソールからこれを行う必要がある場合があります。
インターフェイスをリストし、non-Cloud-Native RouterインターフェイスとCloud-Native Routerインターフェイスの名前をメモします。
ip address
Cloud-Native Router 以外のすべてのインターフェイスについて、NetworkManager(またはネットワーク レンダラー)を新しいインターフェイス名で更新し、NetworkManager を再起動します。
Cloud-Native Router vRouterをインストールするすべてのノードで繰り返します。
Cloud-Native RouterインストールHelmチャートのファブリック・インタフェースを、Cloud-Native Routerインタフェースの新しい名前で更新する(またはサブネットを使用する)ことを忘れないでください。
オプション2: Cloud-Native Routerインターフェイスの名前を変更する
ルールを格納する /etc/udev/rules.d/00-persistent-net.rules ファイルを作成します。
次の行をファイルに追加します。
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="<mac_address>", ATTR{dev_id}=="0x0", ATTR{type}=="1", NAME="<new_ifname>"
ここで、 <mac_address> は名前を変更するインターフェイスの MAC アドレス、 <new_ifname> はインターフェイスに割り当てる新しい名前です(例:
jcnr-eth1
)。名前を変更する各インターフェイスに対応する行を追加します。(Cloud-Native Routerが制御するすべてのインターフェイスの名前を変更します)。
ノードをリブートします。
Cloud-Native Router vRouterをインストールするすべてのノードで繰り返します。
Cloud-Native RouterインストールHelmチャートのファブリック・インタフェースを、Cloud-Native Routerインタフェースの新しい名前で更新する(またはサブネットを使用する)ことを忘れないでください。