3.7. 通信事業者コア RDS のコンポーネント
以下のセクションでは、通信事業者コアワークロードを実行するためにクラスターを設定およびデプロイするために使用するさまざまな OpenShift Container Platform コンポーネントと設定を説明します。
3.7.1. CPU パーティショニングとパフォーマンスチューニング リンクのコピーリンクがクリップボードにコピーされました!
- このリリースの変更点
- このリリースではリファレンス設計の更新はありません。
- 説明
- CPU パーティショニングは、機密性の高いワークロードを、汎用タスク、割り込み、およびドライバー作業キューから分離することで、パフォーマンスを向上させ、レイテンシーを削減します。このような補助的なプロセスに割り当てられた CPU のことを、次のセクションでは 予約済み CPU と呼びます。ハイパースレッディングが有効なシステムでは、CPU は 1 つのハイパースレッドになります。
- 制限と要件
オペレーティングシステムでは、カーネルネットワークを含むすべてのサポートタスクを実行するために、一定量の CPU が必要です。
- ユーザープレーンネットワークアプリケーション (DPDK) のみを備えたシステムでは、オペレーティングシステムとインフラストラクチャーコンポーネント用に、少なくとも 1 つのコア (ハイパースレッディングが有効な場合は 2 つのハイパースレッド) が予約されている必要があります。
- ハイパースレッディングが有効なシステムでは、コアシブリングスレッドが常に同じ CPU プール内にある必要があります。
- 予約済みコアと分離されたコアのセットには、すべての CPU コアが含まれている必要があります。
- 各 NUMA ノードのコア 0 は、予約済み CPU セットに含める必要があります。
- 低レイテンシーのワークロードでは、割り込み、カーネルスケジューラー、またはプラットフォームの他の部分による影響を受けないように特別な設定が必要です。詳細は、「パフォーマンスプロファイルの作成」を参照してください。
- エンジニアリングに関する考慮事項
-
必要な最小予約容量 (
systemReserved) は、Which amount of CPU and memory are recommended to reserve for the system in OpenShift 4 nodes? ナレッジベース記事のガイダンスで確認できます。 - 実際に必要な予約済み CPU 容量は、クラスターの設定とワークロードの属性によって異なります。
- 予約済み CPU の値は、フルコア (2 ハイパースレッド) に合わせて切り上げる必要があります。
- CPU パーティショニングを変更すると、関連するマシン設定プールに含まれるノードが drain され、再起動されます。
- 予約済み CPU は Pod 密度を低下させます。予約済み CPU は、OpenShift Container Platform ノードの割り当て可能な容量から削除されるためです。
ワークロードがリアルタイム対応である場合は、リアルタイムワークロードヒントを有効にする必要があります。
-
リアルタイム
workloadHint設定を適用すると、nohz_fullカーネルコマンドラインパラメーターが適用され、高パフォーマンスアプリケーションのパフォーマンスが向上します。workloadHint設定を適用すると、cpu-quota.crio.io: "disable"アノテーションと適切なruntimeClassName値を持たない分離された Pod または Burstable Pod が、CRI-O のレート制限の対象となります。workloadHintパラメーターを設定するときは、パフォーマンスの向上と CRI-O のレート制限による潜在的な影響との間のトレードオフに注意してください。必要な Pod にアノテーションが正しく付けられていることを確認してください。
-
リアルタイム
- IRQ アフィニティーをサポートしていないハードウェアは、分離された CPU に影響します。Guaranteed CPU QoS を持つ Pod が割り当てられた CPU を完全に使用できるように、すべてのサーバーハードウェアが IRQ アフィニティーをサポートしている必要があります。
-
OVS が、ネットワークトラフィックのニーズに合わせて、OVS の
cpusetエントリーを動的に管理します。プライマリー CNI で高いネットワークスループットを処理するために、追加の CPU を予約する必要はありません。 クラスター上で実行されているワークロードがカーネルレベルのネットワークを使用する場合、参加している NIC の RX/TX キュー数を 16 または 32 キューに設定する必要があります (ハードウェアが許す場合)。デフォルトのキュー数に注意してください。設定がない場合、デフォルトのキュー数は、オンラインの CPU ごとに 1 つの RX/TX キューです。この場合、割り当てられる割り込みが多すぎる可能性があります。
注記ドライバーによっては、キューの数を減らした後でも、割り込みの割り当てが解除されません。
クラスター上で実行されているワークロードに cgroup v1 が必要な場合は、クラスターの初期デプロイ中に cgroup v1 を使用するようにノードを設できます。「Linux コントロールグループバージョン 1 (cgroup v1) の有効化」および Red Hat Enterprise Linux 9 changes in the context of Red Hat OpenShift workloads を参照してください。
注記cgroup v1 のサポートは、OpenShift Container Platform 4.19 で削除される予定です。cgroup v1 を実行しているクラスターは cgroup v2 に移行する必要があります。
-
必要な最小予約容量 (
3.7.2. サービスメッシュ リンクのコピーリンクがクリップボードにコピーされました!
- 説明
- 通信事業者コアのクラウドネイティブ機能 (CNF) には通常、サービスメッシュの実装が必要です。特定のサービスメッシュ機能とパフォーマンス要件は、アプリケーションによって異なります。Service Mesh の実装と設定の選択は、このドキュメントの範囲外です。実装では、Pod ネットワーキングで導入される追加のレイテンシーなど、サービスメッシュがクラスターリソースの使用状況とパフォーマンスに与える影響を考慮する必要があります。
3.7.3. ネットワーク リンクのコピーリンクがクリップボードにコピーされました!
次の図は、通信事業者コアリファレンス設計のネットワーク設定を示しています。
図3.2 通信事業者コアリファレンス設計のネットワーク設定
- このリリースの変更点
- SR-IOV Operator でのベンダープラグイン無効化のサポート
- MetalLB および EgressIP 通信事業者 QE 検証により拡張された通信事業者コア RDS 検証
FRR-K8s が Cluster Network Operator で利用できるようになりました。
注記metallb-systemnamespace にカスタムのFRRConfigurationCR がある場合は、それをopenshift-network-operatornamespace に移動する必要があります。
- 説明
- クラスターをデュアルスタック IP (IPv4 と IPv6) 用に設定します。
- 検証済みの物理ネットワーク設定は、2 つのデュアルポート NIC で構成されています。1 つの NIC は、プライマリー CNI (OVN-Kubernetes) と IPVLAN および MACVLAN トラフィック間で共有されます。もう 1 つの NIC は、SR-IOV VF ベースの Pod トラフィック専用です。
-
2 つの NIC ポートがアタッチされたアクティブ/アクティブ IEEE 802.3ad LACP モードで、Linux ボンディングインターフェイス (
bond0) を作成します。トップオブラックネットワーク機器は、マルチシャーシリンクアグリゲーション (mLAG) テクノロジーをサポートし、そのように設定されている必要があります。 -
VLAN インターフェイスは、プライマリー CNI を含め、
bond0の上に作成されます。 -
ボンディングおよび VLAN インターフェイスは、クラスターのインストール時に、インストールのネットワーク設定段階で作成されます。プライマリー CNI によって使用される VLAN (
vlan0) を除き、他のすべての VLAN は、Kubernetes NMstate Operator を使用して Day 2 アクティビティー中に作成できます。 - MACVLAN および IPVLAN インターフェイスは、対応する CNI を使用して作成されます。同じ基本インターフェイスを共有することはありません。詳細は、「Cluster Network Operator」を参照してください。
- SR-IOV VF は SR-IOV Network Operator によって管理されます。
-
LoadBalancer サービスの背後にある Pod のソース IP アドレスの一貫性を確保するために、
EgressIPCR を設定し、podSelectorパラメーターを指定します。 次の手順を実行することで、サービストラフィックの分離を実装できます。
-
NodeNetworkConfigurationPolicyCR を使用して、ノード上の VLAN インターフェイスと特定のカーネル IP ルートを設定します。 -
VLAN ごとに MetalLB
BGPPeerCR を作成して、リモート BGP ルーターとのピアリングを確立します。 MetalLB
BGPAdvertisementCR を定義して、選択したBGPPeerリソースのリストにアドバタイズする IP アドレスプールを指定します。次の図は、特定のサービス IP アドレスを、特定の VLAN インターフェイスを介して外部にアドバタイズする方法を示しています。サービスルートは、
BGPAdvertisementCR で定義され、IPAddressPool1およびBGPPeer1フィールドの値を使用して設定されます。
-
図3.3 通信事業者コアリファレンス設計の MetalLB サービス分離
3.7.3.1. Cluster Network Operator リンクのコピーリンクがクリップボードにコピーされました!
- このリリースの変更点
- このリリースではリファレンス設計の更新はありません。
- 説明
Cluster Network Operator (CNO) は、クラスターのインストール中に、デフォルトの OVN-Kubernetes ネットワークプラグインを含むクラスターネットワークコンポーネントをデプロイおよび管理します。CNO を使用すると、プライマリーインターフェイスの MTU 設定、Pod の Egress にノードルーティングテーブルを使用するための OVN ゲートウェイ設定、および MACVLAN などの追加のセカンダリーネットワークを設定できます。
ネットワークトラフィックの分離をサポートするために、CNO を通じて複数のネットワークインターフェイスが設定されます。これらのインターフェイスへのトラフィックステアリングは、NMState Operator を使用して適用される静的ルートを通じて設定されます。Pod トラフィックが適切にルーティングされるように、OVN-K は
routingViaHostオプションを有効にして設定されます。この設定では、Pod の Egress トラフィックに OVN ではなくカーネルルーティングテーブルと適用された静的ルートを使用します。Whereabouts CNI プラグインは、DHCP サーバーを使用せずに、追加の Pod ネットワークインターフェイスに動的な IPv4 および IPv6 アドレス指定を提供するために使用されます。
- 制限と要件
- IPv6 サポートには OVN-Kubernetes が必要です。
- 大規模 MTU クラスターをサポートするには、接続されたネットワーク機器を同じ値またはそれ以上の値に設定する必要があります。最大 8900 の MTU サイズがサポートされます。
MACVLAN と IPVLAN は、同じ基礎カーネルメカニズム、具体的には
rx_handlerに依存しているため、同じメインインターフェイス上に配置できません。このハンドラーを使用すると、ホストが受信パケットを処理する前にサードパーティーモジュールが受信パケットを処理できるようになります。このようなハンドラーは、ネットワークインターフェイスごとに 1 つだけ登録できます。MACVLAN と IPVLAN は両方とも、機能するために独自のrx_handlerを登録する必要があるため、競合が発生し、同じインターフェイス上で共存することはできません。詳細はソースコードを確認してください。- 代替の NIC 設定としては、共有 NIC を複数の NIC に分割したり、単一のデュアルポート NIC を使用したりすることが考えられます。ただし、これらはテストおよび検証されていません。
- シングルスタック IP 設定のクラスターは検証されていません。
-
NetworkCR のreachabilityTotalTimeoutSecondsパラメーターで、EgressIPノードの到達可能性チェックの合計タイムアウトを秒単位で設定します。推奨値は1秒です。
- エンジニアリングに関する考慮事項
-
Pod の Egress トラフィックは、
routingViaHostオプションを使用してカーネルルーティングテーブルによって処理されます。ホストに適切な静的ルートを設定する必要があります。
-
Pod の Egress トラフィックは、
3.7.3.2. ロードバランサー リンクのコピーリンクがクリップボードにコピーされました!
- このリリースの変更点
FRR-K8s が Cluster Network Operator で利用できるようになりました。
重要metallb-systemnamespace にカスタムのFRRConfigurationCR がある場合は、それをopenshift-network-operatornamespace に移動する必要があります。
- 説明
- MetalLB は、標準ルーティングプロトコルを使用するベアメタル Kubernetes クラスターのロードバランサー実装です。これを使用すると、Kubernetes サービスが外部 IP アドレスを取得できます。この IP アドレスは、クラスターのホストネットワークにも追加されます。MetalLB Operator により、クラスターに MetalLB のインスタンスがデプロイされ、そのライフサイクルが管理されます。ユースケースによっては、ステートフルロードバランシングなど、MetalLB では利用できない機能が必要になる場合があります。必要に応じて、外部のサードパーティーロードバランサーを使用できます。外部ロードバランサーの選択と設定は、この仕様の範囲外です。外部のサードパーティーロードバランサーを使用する場合、統合作業の一環として十分な分析を実行し、パフォーマンスとリソース使用率の要件がすべて満たされていることを確認する必要があります。
- 制限と要件
- ステートフルロードバランシングは MetalLB ではサポートされていません。これがワークロード CNF の要件である場合は、代替ロードバランサー実装を使用する必要があります。
- 外部 IP アドレスがクライアントからクラスターのホストネットワークにルーティング可能であることを確認する必要があります。
- エンジニアリングに関する考慮事項
- MetalLB は、通信事業者コア使用モデルでは、BGP モードでのみ使用されます。
-
通信コア使用モデルの場合、MetalLB は、OVN-Kubernetes ネットワークプラグインの
ovnKubernetesConfig.gatewayConfig仕様でroutingViaHost=trueを設定した場合にのみサポートされます。「Cluster Network Operator」のroutingViaHostを参照してください。 MetalLB の BGP 設定は、ネットワークとピアの要件に応じて変化することが予想されます。
- アドレス、アグリゲーション長、自動割り当てなどのバリエーションを使用してアドレスプールを設定できます。
-
MetalLB はルートのアナウンスにのみ BGP を使用します。このモードでは、
transmitIntervalおよびminimumTtlパラメーターのみが関連します。BFD プロファイル内の他のパラメーターは、デフォルトに近い値にしておく必要があります。値を短くすると、検出漏れが発生し、パフォーマンスに影響する可能性があるためです。
3.7.3.3. SR-IOV リンクのコピーリンクがクリップボードにコピーされました!
- このリリースの変更点
- クラスターホストでセキュアブートが有効になっている場合、SR-IOV Network Operator を使用して Mellanox NIC の Virtual Function を作成できるようになりました。Virtual Function を作成するには、まず Mellanox NIC のファームウェア設定をスキップし、ファームウェアで Virtual Function の数を手動で割り当ててから、システムをセキュアブートに切り替える必要があります。
- 説明
- SR-IOV を使用すると、Physical Function (PF) を複数の Virtual Function (VF) に分割できます。その後、VF を複数の Pod に割り当てることで、Pod を分離したまま、より高いスループットパフォーマンスを実現できます。SR-IOV Network Operator は、SR-IOV CNI、ネットワークデバイスプラグイン、および SR-IOV スタックのその他のコンポーネントをプロビジョニングおよび管理します。
- 制限と要件
- 特定のネットワークインターフェイスだけがサポートされています。詳細は、「サポートされるデバイス」を参照してください。
- SR-IOV と IOMMU の有効化: SR-IOV Network Operator により、カーネルコマンドラインで IOMMU が自動的に有効化されます。
- SR-IOV VF は PF からリンク状態の更新を受信しません。リンクダウンの検出が必要な場合は、プロトコルレベルで実行する必要があります。
-
MultiNetworkPolicyCR は、netdeviceネットワークにのみ適用できます。これは、vfio インターフェイスを管理できない iptables が実装で使用されるためです。
- エンジニアリングに関する考慮事項
-
vfioモードの SR-IOV インターフェイスは通常、高スループットまたは低レイテンシーを必要とするアプリケーション用に追加のセカンダリーネットワークを有効にするために使用されます。 -
SriovOperatorConfigCR を明示的に作成する必要があります。この CR はリファレンス設定ポリシーに含まれているため、初期デプロイ時に作成されます。 - UEFI セキュアブートまたはカーネルロックダウンを使用したファームウェア更新をサポートしていない NIC は、アプリケーションワークロードに必要な数の Virtual Function (VF) をサポートするために、十分な数の VF を有効にして事前設定する必要があります。Mellanox NIC の場合、SR-IOV Network Operator で Mellanox ベンダープラグインを無効にする必要があります。詳細は、「SR-IOV ネットワークデバイスの設定」を参照してください。
-
Pod の起動後に VF の MTU 値を変更する場合、
SriovNetworkNodePolicyの MTU フィールドを設定しないでください。代わりに、Kubernetes NMState Operator を使用して、関連する PF の MTU を設定してください。
-
3.7.3.4. NMState Operator リンクのコピーリンクがクリップボードにコピーされました!
- このリリースの変更点
- このリリースではリファレンス設計の更新はありません。
- 説明
- Kubernetes NMState Operator は、クラスターノード全体でステートドリブンのネットワーク設定を実行するための Kubernetes API を提供します。これにより、ネットワークインターフェイス設定、静的 IP と DNS、VLAN、トランク、ボンディング、静的ルート、MTU、およびセカンダリーインターフェイスでの無差別モードの有効化が可能になります。クラスターノードは、各ノードのネットワークインターフェイスの状態を API サーバーに定期的に報告します。
- 制限と要件
- 該当なし
- エンジニアリングに関する考慮事項
-
初期ネットワーク設定は、インストール CR の
NMStateConfigコンテンツを使用して適用されます。NMState Operator は、ネットワーク更新に必要な場合にのみ使用されます。 -
SR-IOV の Virtual Function がホストネットワークに使用される場合、NMState Operator (
nodeNetworkConfigurationPolicyCR) を使用して、VLAN や MTU などの VF インターフェイスが設定されます。
-
初期ネットワーク設定は、インストール CR の
3.7.4. ロギング リンクのコピーリンクがクリップボードにコピーされました!
- このリリースの変更点
- このリリースではリファレンス設計の更新はありません。
- 説明
- Cluster Logging Operator を使用すると、リモートアーカイブと分析のために、ノードからログを収集して送信できます。リファレンス設定では、Kafka を使用して監査ログとインフラストラクチャーログをリモートアーカイブに送信します。
- 制限と要件
- 該当なし
- エンジニアリングに関する考慮事項
- クラスターの CPU 使用率の影響は、生成されるログの数またはサイズと、設定されたログフィルタリングの量によって決まります。
- リファレンス設定には、アプリケーションログの送信は含まれていません。設定にアプリケーションログを含めるには、アプリケーションのロギングレートを評価し、予約セットに十分な追加の CPU リソースを割り当てる必要があります。
3.7.5. 電源管理 リンクのコピーリンクがクリップボードにコピーされました!
- このリリースの変更点
- このリリースではリファレンス設計の更新はありません。
- 説明
- Performance Profile を使用して、高電力モード、低電力モード、または混合モードでクラスターを設定します。電源モードの選択は、クラスター上で実行しているワークロードの特性、特にレイテンシーに対する敏感さによって異なります。Pod ごとの電源管理 C ステート機能を使用して、低レイテンシー Pod の最大遅延を設定します。
- 制限と要件
- 電源設定は、C ステートや P ステートの有効化など、適切な BIOS 設定に依存します。設定はハードウェアベンダーによって異なります。
- エンジニアリングに関する考慮事項
- レイテンシー: レイテンシーの影響を受けやすいワークロードが要件を満たせるように、高電力設定または Pod ごとの電源管理設定が必要です。Pod ごとの電源管理は、専用のピニングされた CPU を持つ Guaranteed QoS Pod でのみ使用できます。
3.7.6. ストレージ リンクのコピーリンクがクリップボードにコピーされました!
- このリリースの変更点
- このリリースではリファレンス設計の更新はありません。
- 説明
クラウドネイティブのストレージサービスは、Red Hat OpenShift Data Foundation またはその他のサードパーティーソリューションによって提供されます。
OpenShift Data Foundation は、コンテナー向けの Ceph ベースのソフトウェア定義ストレージソリューションです。ブロックストレージ、ファイルシステムストレージ、オンプレミスオブジェクトストレージを提供し、永続的および非永続的なデータ要件の両方に合わせて動的にプロビジョニングできます。通信事業者コアアプリケーションには永続的なストレージが必要です。
注記すべてのストレージデータが転送中に暗号化されるとは限りません。リスクを軽減するには、ストレージネットワークを他のクラスターネットワークから分離します。ストレージネットワークは、他のクラスターネットワークからアクセス可能またはルーティング可能であってはなりません。ストレージネットワークに直接接続されているノードのみがストレージネットワークにアクセスできるようにする必要があります。
3.7.6.1. Red Hat OpenShift Data Foundation リンクのコピーリンクがクリップボードにコピーされました!
- このリリースの変更点
- このリリースではリファレンス設計の更新はありません。
- 説明
- Red Hat OpenShift Data Foundation は、コンテナー向けのソフトウェア定義ストレージサービスです。通信事業者コアクラスターの場合、ストレージサポートは、アプリケーションワークロードクラスターの外部で実行される OpenShift Data Foundation ストレージサービスによって提供されます。OpenShift Data Foundation は、セカンダリー CNI ネットワークを使用したストレージトラフィックの分離をサポートします。
- 制限と要件
- IPv4/IPv6 デュアルスタックネットワーク環境では、OpenShift Data Foundation は IPv4 アドレスを使用します。詳細は、ネットワーク要件 を参照してください。
- エンジニアリングに関する考慮事項
- OpenShift Data Foundation ネットワークトラフィックは、VLAN 分離などを使用して、専用ネットワーク上の他のトラフィックから分離する必要があります。
3.7.6.2. 追加のストレージソリューション リンクのコピーリンクがクリップボードにコピーされました!
他のストレージソリューションを使用して、通信事業者コアクラスターに永続的なストレージを提供することもできます。このソリューションの設定と統合は、リファレンス設計仕様 (RDS) の範囲外です。
ストレージソリューションを通信事業者コアクラスターに統合する場合は、適切なサイズ設定とパフォーマンス分析を行い、ストレージが全体的なパフォーマンスとリソース使用率の要件を満たしていることを確認する必要があります。
3.7.7. 通信事業者コアデプロイメントのコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
次のセクションでは、Red Hat Advanced Cluster Management (RHACM) を使用してハブクラスターを設定するために使用するさまざまな OpenShift Container Platform コンポーネントと設定を説明します。
3.7.7.1. Red Hat Advanced Cluster Management リンクのコピーリンクがクリップボードにコピーされました!
- このリリースの変更点
- シングルノードの OpenShift クラスターの場合、イメージベースのインストールが推奨されるインストール方法です。
- 説明
Red Hat Advanced Cluster Management (RHACM) は、デプロイされたクラスターに対して、Multi Cluster Engine (MCE) のインストールと継続的な GitOps ZTP ライフサイクル管理を提供します。管理者は、メンテナンス期間中に
Policyカスタムリソース (CR) をクラスターに適用することで、クラスターの設定とアップグレードを宣言的に管理します。管理者は、Topology Aware Lifecycle Manager によって管理される RHACM ポリシーコントローラーを使用してポリシーを適用します。設定、アップグレード、およびクラスターのステータスは、ポリシーコントローラーを通じて管理されます。
マネージドクラスターをインストールすると、RHACM は、カスタムディスクパーティション分割、ロールの割り当て、マシン設定プールへの割り当てをサポートするために、個々のノードにラベルと初期イグニッション設定を適用します。これらの設定は、
SiteConfigまたはClusterInstanceCR を使用して定義します。- 制限と要件
- ハブクラスターのサイズ設定については、クラスターのサイジング で説明されています。
- RHACM のスケーリング制限については、パフォーマンスおよびスケーラビリティー で説明されています。
- エンジニアリングに関する考慮事項
- インストール、サイト、またはデプロイメントごとに固有のコンテンツを持つ複数のクラスターを管理する場合は、RHACM ハブテンプレートを使用することを強く推奨します。RHACM ハブテンプレートを使用すると、インストールごとに固有の値を指定しながら、一貫したポリシーセットをクラスターに適用できます。
3.7.7.2. Topology Aware Lifecycle Manager リンクのコピーリンクがクリップボードにコピーされました!
- このリリースの変更点
- このリリースではリファレンス設計の更新はありません。
- 説明
Topology Aware Lifecycle Manager は、ハブクラスター上でのみ実行される Operator です。TALM は、クラスターや Operator のアップグレード、設定などの変更をネットワーク内のマネージドクラスターにどのようにデプロイするかを管理します。TALM には次のコア機能があります。
- クラスターポリシーの定義に従って、クラスター設定とアップグレード (OpenShift Container Platform および Operator) を順次更新します。
- クラスター更新の遅延適用を提供します。
- ユーザーが設定可能なバッチで、クラスターのセットにポリシー更新を段階的にロールアウトできます。
-
ztp-doneまたは同様のユーザー定義ラベルをクラスターに追加することで、クラスターごとのアクションを実行できます。
- 制限と要件
- 400 個のバッチでクラスターを同時にデプロイできます。
- エンジニアリングに関する考慮事項
-
クラスターの初期インストール中に、TALM によって
ran.openshift.io/ztp-deploy-waveアノテーションが付いたポリシーのみが適用されます。 -
ユーザーが作成した
ClusterGroupUpgradeCR の制御下で、TALM によって任意のポリシーを修正できます。
-
クラスターの初期インストール中に、TALM によって
3.7.7.3. GitOps Operator および GitOps ZTP プラグイン リンクのコピーリンクがクリップボードにコピーされました!
- このリリースの変更点
- このリリースではリファレンス設計の更新はありません。
- 説明
GitOps Operator は、クラスターのデプロイメントと設定を管理するための GitOps 駆動型インフラストラクチャーを提供します。クラスターの定義と設定は Git リポジトリーで管理されます。
ZTP プラグインは、
SiteConfigCR からInstallationCR を生成し、RHACM のPolicyGeneratorCR に基づいてポリシーに設定 CR を自動的にラップすることをサポートします。SiteConfig Operator は、
ClusterInstanceCR からのInstallationCR の生成に対するサポートを強化します。重要可能な場合は、GitOps ZTP プラグイン方式を使用した
SiteConfigではなく、ClusterInstanceCR を使用してクラスターをインストールしてください。必要なすべてのアーティファクト (
SiteConfig、ClusterInstance、PolicyGenerator、PolicyGenTemplate、および補助的なリファレンス CR) を含めて、リリースバージョンに応じて Git リポジトリーを設定する必要があります。これにより、複数のバージョンの OpenShift プラットフォームと設定バージョンを同時に、またアップグレードを通じてクラスターにデプロイして管理できるようになります。Git の構造に関しては、お客様またはパートナーが提供するコンテンツとは別のディレクトリーにリファレンス CR を保管することが推奨されます。これにより、既存のコンテンツを上書きするだけで参照の更新をインポートできます。お客様またはパートナーが提供する CR は、生成された設定ポリシーに簡単に組み込めるように、リファレンス CR と同じ階層のディレクトリーで提供できます。
- 制限と要件
- 各 ArgoCD アプリケーションは最大 300 個のノードをサポートします。複数の ArgoCD アプリケーションを使用すると、1 つのハブクラスターでサポートされるクラスターの最大数を実現できます。
SiteConfigCR は、参照マニフェストを参照するためにextraManifests.searchPathsフィールドを使用する必要があります。注記OpenShift Container Platform 4.15 以降、
spec.extraManifestPathフィールドは非推奨になりました。
- エンジニアリングに関する考慮事項
クラスターアップグレードのメンテナンス期間中に
MachineConfigPool(mcp) CR のpausedフィールドを true に設定し、maxUnavailableフィールドを最大許容値に設定します。これにより、アップグレード中に複数のクラスターノードが再起動されることがなくなり、全体的なアップグレード時間が短縮されます。mcpCR の一時停止を解除すると、すべての設定変更が 1 回の再起動で適用されます。注記インストール中にカスタムの
mcpCR を一時停止し、maxUnavailableを 100% に設定すると、インストール時間を短縮できます。-
コンテンツを更新するときに混乱や意図しない上書きを避けるために、core-overlay 配下の
reference-crs/ディレクトリーにあるカスタム CR と Git の追加マニフェストには、一意で区別できる名前を使用する必要があります。 -
SiteConfigCR では、複数の追加マニフェストパスが許可されます。複数のディレクトリーパスでファイル名が重複している場合は、ディレクトリー順序リストで最後に見つかったファイルが優先されます。
3.7.7.4. モニタリング リンクのコピーリンクがクリップボードにコピーされました!
- このリリースの変更点
- このリリースではリファレンス設計の更新はありません。
- 説明
OpenShift Container Platform には Cluster Monitoring Operator (CMO) がデフォルトで含まれています。CMO は、プラットフォームコンポーネントと、必要に応じてユーザープロジェクトのモニタリング (メトリクス、ダッシュボード、アラート) を提供します。管理者は、デフォルトのログ保持期間、カスタムアラートルールなどをカスタマイズできます。アップストリームの Kubernetes と cAdvisor に基づく、Pod の CPU およびメモリーメトリクスのデフォルト処理では、メトリクスの精度よりも古いデータを優先するというトレードオフが行われます。これによりレポートが急増し、ユーザーが指定したしきい値によっては、誤ったアラートが作成される可能性があります。OpenShift Container Platform は、オプトイン方式の Dedicated Service Monitor 機能をサポートしています。この機能は、上記のような動作の影響を受けない、Pod の CPU およびメモリーメトリクスの追加セットを作成するものです。詳細は、Dedicated Service Monitors - Questions and Answers (Red Hat ナレッジベース) を参照してください。
デフォルト設定に加えて、通信事業者コアクラスターには次のメトリクスが設定されることが予想されます。
- ユーザーワークロードの Pod CPU とメモリーのメトリクスとアラート
- 制限と要件
- Pod メトリクスを正確に表すには、Dedicated Service Monitor 機能を有効にする必要があります。
- エンジニアリングに関する考慮事項
- Prometheus の保持期間はユーザーによって指定されます。使用される値は、クラスター上の履歴データを維持するための運用要件と、CPU およびストレージリソースとの間のトレードオフです。保持期間が長くなると、ストレージの需要が増加し、データのインデックス管理に追加の CPU が必要になります。
3.7.8. スケジューリング リンクのコピーリンクがクリップボードにコピーされました!
- このリリースの変更点
- このリリースではリファレンス設計の更新はありません。
- 説明
スケジューラーは、特定のワークロードに対して適切なノードを選択する役割を担うクラスター全体のコンポーネントです。これはプラットフォームの中核部分であり、一般的なデプロイメントシナリオでは特別な設定は必要ありません。次のセクションでは、いくつかの具体的な使用例について説明します。
NUMA 対応スケジューリングは、NUMA Resources Operator を通じて有効にできます。詳細は、「NUMA 対応ワークロードのスケジューリング」を参照してください。
- 制限と要件
デフォルトのスケジューラーはワークロードの NUMA 局所性を理解しません。ワーカーノード上のすべての空きリソースの合計のみを認識します。これにより、Topology Manager ポリシーが
single-numa-nodeまたはrestrictedに設定されているノードにスケジュールされた場合に、ワークロードが拒否される可能性があります。詳細は、「Topology Manager ポリシー」を参照してください。- たとえば、6 つの CPU を要求する Pod があり、NUMA ノードごとに 4 つの CPU を持つ空のノードにスケジュールされているとします。ノードの割り当て可能な合計容量は 8 CPU です。スケジューラーは Pod を空のノードに配置します。各 NUMA ノードで使用できる CPU は 4 つしかないため、ノードのローカルアドミッションが失敗します。
-
複数の NUMA ノードを持つすべてのクラスターでは、NUMA Resources Operator を使用する必要があります。詳細は、「NUMA Resources Operator のインストール」を参照してください。NUMA 対応スケジューリングが必要なすべてのノードを選択するには、
KubeletConfigCR のmachineConfigPoolSelectorフィールドを使用します。 - すべてのマシン設定プールに一貫したハードウェア設定を指定する必要があります。たとえば、すべてのノードに同じ NUMA ゾーン数を割り当てることが求められます。
- エンジニアリングに関する考慮事項
- Pod では、正しいスケジュールと分離のためにアノテーションが必要になる場合があります。アノテーションの詳細は、「CPU パーティショニングとパフォーマンスチューニング」を参照してください。
-
SriovNetworkNodePolicyCR のexcludeTopologyフィールドを使用して、スケジューリング中に SR-IOV Virtual Function NUMA アフィニティーを無視するように設定できます。
3.7.9. ノード設定 リンクのコピーリンクがクリップボードにコピーされました!
- このリリースの変更点
- このリリースではリファレンス設計の更新はありません。
- 制限と要件
追加のカーネルモジュールを分析して、CPU 負荷、システムパフォーマンス、KPI を満たす能力への影響を判断してください。
Expand 表3.1 追加のカーネルモジュール 機能 説明 追加のカーネルモジュール
MachineConfigCR を使用して次のカーネルモジュールをインストールし、CNF に拡張カーネル機能を提供します。- sctp
- ip_gre
- ip6_tables
- ip6t_REJECT
- ip6table_filter
- ip6table_mangle
- iptable_filter
- iptable_mangle
- iptable_nat
- xt_multiport
- xt_owner
- xt_REDIRECT
- xt_statistic
- xt_TCPMSS
コンテナーマウント namespace の非表示
kubelet のハウスキーピングとエビクションモニタリングの頻度を減らして、CPU 使用量を削減します。kubelet/CRI-O に認識されるコンテナーマウント namespace を作成し、システムマウントスキャンのオーバーヘッドを削減します。
Kdump の有効化
任意の設定 (デフォルトで有効)
3.7.10. ホストファームウェアとブートローダーの設定 リンクのコピーリンクがクリップボードにコピーされました!
- このリリースの変更点
- このリリースではリファレンス設計の更新はありません。
- エンジニアリングに関する考慮事項
推奨される設定は、セキュアブートを有効にすることです。
注記セキュアブートを有効にすると、署名されたカーネルモジュールのみがカーネルによってロードされます。ツリー外のドライバーはサポートされていません。
3.7.11. 非接続環境 リンクのコピーリンクがクリップボードにコピーされました!
- このリリースの変更点
- このリリースではリファレンス設計の更新はありません。
- 説明
通信事業者コアクラスターは、インターネットに直接アクセスできないネットワークにインストールされることが想定されています。クラスターのインストール、設定、および操作に必要なすべてのコンテナーイメージが、インターネット非接続環境のレジストリーで利用できる必要があります。これには、OpenShift Container Platform イメージ、Day 2 OLM Operator イメージ、アプリケーションワークロードイメージが含まれます。非接続環境を使用すると、次のような複数の利点が得られます。
- セキュリティー - クラスターへのアクセスが制限されます。
- キュレーションされたコンテンツ - クラスター用にキュレーションおよび承認された更新に基づいてレジストリーが作成されます。
- 制限と要件
-
すべてのカスタム
CatalogSourceリソースに一意の名前が必要です。デフォルトのカタログ名を再利用しないでください。
-
すべてのカスタム
- エンジニアリングに関する考慮事項
- クラスターのインストール中に有効なタイムソースを設定する必要があります。
3.7.12. Agent-based Installer リンクのコピーリンクがクリップボードにコピーされました!
- このリリースの変更点
- このリリースではリファレンス設計の更新はありません。
- 説明
通信事業者コアクラスターは、Agent-based Installer を使用してインストールできます。この方法を使用すると、インストールを管理するための追加のサーバーや仮想マシンを必要とせずに、ベアメタルサーバーに OpenShift をインストールできます。Agent-based Installer は、任意のシステム (ラップトップなど) で動作し、ISO インストールイメージを生成できます。この ISO は、クラスターのスーパーバイザーノードのインストールメディアとして使用されます。インストールの進行状況は、スーパーバイザーノードの API インターフェイスにネットワーク接続できる任意のシステムから ABI ツールを使用して監視できます。
ABI は以下をサポートしています。
- 宣言型 CR からのインストール
- 非接続環境でのインストール
- インストールを完了するために補助的な追加インストールや踏み台サーバーを必要としないインストール
- 制限と要件
- 非接続のインストール環境では、インストールされたホストからアクセス可能なレジストリーが必要であり、必要なすべてのコンテンツがそのレジストリーにミラーリングされている必要があります。
- エンジニアリングに関する考慮事項
- ネットワーク設定は、インストール時に NMState 設定として適用する必要があります。NMState Operator を使用した Day 2 ネットワーク設定はサポートされていません。
3.7.13. セキュリティー リンクのコピーリンクがクリップボードにコピーされました!
- このリリースの変更点
- 説明
通信事業者のお客様は、セキュリティーを重視しており、複数の攻撃ベクトルに対してクラスターを強化する必要があります。OpenShift Container Platform には、クラスターを保護する単一のコンポーネントや機能はありません。クラスターを保護するには、次のセキュリティー重視の機能と設定を使用します。
-
SecurityContextConstraints (SCC): すべてのワークロード Pod は、
restricted-v2またはrestrictedSCC を使用して実行する必要があります。 -
Seccomp: すべての Pod は、
RuntimeDefault(またはより強力な) seccomp プロファイルを使用して実行する必要があります。 - ルートレス DPDK Pod: 多くのユーザープレーンネットワーキング (DPDK) CNF では、Pod を root 権限で実行する必要があります。この機能を使用すると、root 権限がなくても、要件に準拠した DPDK Pod を実行できます。ルートレス DPDK Pod は、ルートレス Pod 内にタップデバイスを作成し、DPDK アプリケーションからカーネルにトラフィックを挿入します。
- ストレージ: ストレージネットワークは分離されており、他のクラスターネットワークにルーティングできないようにする必要があります。詳細は、「ストレージ」セクションを参照してください。
OpenShift クラスターノードでカスタム nftables ファイアウォールルールを実装するのに使用できる方法については、Custom nftable firewall rules in OpenShift を参照してください。この記事は、OpenShift 環境でネットワークセキュリティーポリシーの管理を担当するクラスター管理者を対象としています。この方法を導入する前に、次のような運用上の影響を慎重に検討することが重要です。
- 早期適用: ルールは、ネットワークが完全に稼働する前の起動時に適用されます。ルールによって、ブートプロセス中に必要な重要なサービスが誤ってブロックされないように注意してください。
- 設定ミスのリスク: カスタムルールに誤りがあると、意図しない結果が生じ、パフォーマンスに影響が出たり、正当なトラフィックがブロックされたり、ノードが分離される可能性があります。メインクラスターにルールをデプロイする前に、非実稼働環境でルールを十分にテストしてください。
- 外部エンドポイント: OpenShift が機能するには外部エンドポイントへのアクセスが必要です。ファイアウォールの許可リストの詳細は、「OpenShift Container Platform のファイアウォールの設定」を参照してください。クラスターノードが外部エンドポイントにアクセスできることを確認してください。
ノードの再起動: node disruption policy が設定されていない限り、必要なファイアウォール設定で
MachineConfigCR を適用すると、ノードが再起動します。この影響に注意して、それに応じてメンテナンス期間をスケジュールしてください。詳細は、「node disruption policy を使用してマシン設定の変更による停止を最小限に抑える」を参照してください。注記node disruption policy は、OpenShift Container Platform 4.17 以降で利用できます。
- ネットワークフローマトリックス: Ingress トラフィックの管理の詳細は、「OpenShift Container Platform ネットワークフローマトリックス」を参照してください。Ingress トラフィックを重要なフローに制限して、ネットワークセキュリティーを強化できます。このマトリックスでは、ベースクラスターサービスに関する詳細情報が提供されていますが、Day-2 Operator によって生成されるトラフィックは対象外です。
- クラスターバージョンの更新とアップグレード: OpenShift クラスターを更新またはアップグレードするときは注意してください。プラットフォームのファイアウォール要件に適用された最近の変更により、ネットワークポートの権限の調整が必要になる場合があります。ドキュメントにガイドラインが記載されていますが、この要件は今後変化する可能性があることに注意してください。システム停止を最小限に抑えるには、実稼働環境に適用する前に、ステージング環境で更新やアップグレードをテストする必要があります。これにより、ファイアウォール設定の変更に関連する潜在的な互換性の問題を特定して対処できるようになります。
-
SecurityContextConstraints (SCC): すべてのワークロード Pod は、
- 制限と要件
ルートレス DPDK Pod には、次の追加設定が必要です。
-
タッププラグインの
container_tSELinux コンテキストを設定します。 -
クラスターホストの
container_use_devicesSELinux ブール値を有効にします。
-
タッププラグインの
- エンジニアリングに関する考慮事項
-
ルートレス DPDK Pod を使用するには、ホスト上で
container_use_devicesSELinux ブール値を有効にして、タップデバイスの作成を許可します。これにより、許容範囲内のセキュリティーリスクが発生します。
-
ルートレス DPDK Pod を使用するには、ホスト上で
3.7.14. スケーラビリティー リンクのコピーリンクがクリップボードにコピーされました!
- このリリースの変更点
- このリリースではリファレンス設計の更新はありません。
- 説明
- ワークロードのスケーリングについては、「アプリケーションワークロード」で説明されています。
- 制限と要件
- クラスターは少なくとも 120 ノードまで拡張できます。