40 要件と前提 #
40.1 ハードウェア #
SUSE Telco Cloudのハードウェア要件は次のとおりです。
管理クラスタ: 管理クラスタには、
SUSE Linux Micro、RKE2、SUSE Rancher Prime、Metal3などのコンポーネントが含まれ、管理クラスタを使用して複数のダウンストリームクラスタを管理します。管理するダウンストリームクラスタの数によっては、サーバのハードウェア要件は変わる場合があります。サーバ(
VMまたはベアメタル)の最小要件は次のとおりです。RAM: 8GB以上(16GB以上を推奨)
CPU: 2個以上(4個以上を推奨)
ダウンストリームクラスタ: ダウンストリームクラスタは、通信ワークロードを実行するためにデプロイされるクラスタです。
SR-IOV、CPUパフォーマンス最適化などの特定の通信機能を有効にするには、固有の要件が必要になります。SR-IOV: VF (仮想機能)をCNF/VNFにパススルーモードでアタッチするには、NICがSR-IOVをサポートしていて、BIOSでVT-d/AMD-Viが有効化されている必要があります。
CPUプロセッサ: 特定の通信ワークロードを実行するには、こちらの参照表(第42章 「通信機能の設定」)に記載されているほとんどの機能を利用できるようにCPUプロセッサモデルを適応させる必要があります。
仮想メディアでインストールするためのファームウェア要件:
サーバハードウェア BMCモデル 管理 Dell製ハードウェア
第15世代
iDRAC9
Supermicro製ハードウェア
01.00.25
Supermicro SMC - redfish
HPE製ハードウェア
1.50
iLO6
40.2 ネットワーク #
ネットワークアーキテクチャの参考として、次の図に、通信事業者環境の一般的なネットワークアーキテクチャを示します。
このネットワークアーキテクチャは次のコンポーネントに基づきます。
管理ネットワーク: このネットワークは、ダウンストリームクラスタノードの管理や帯域外管理に使用されます。通常は独立した管理スイッチに接続しますが、同じサービススイッチに接続し、VLANを使ってトラフィックを分離することもできます。
コントロールプレーンネットワーク: このネットワークは、ダウンストリームクラスタノードと、そこで実行されているサービスとの間の通信に使用されます。また、ダウンストリームクラスタノードと外部サービス(
DHCPサーバやDNSサーバなど)との間の通信にも使用されます。接続環境では、スイッチやルータでインターネット経由のトラフィックを処理できる場合もあります。その他のネットワーク: 場合によっては、特定の目的に合わせてノードを他のネットワークに接続できます。
ダイレクトネットワークプロビジョニングワークフローを使用するには、管理クラスタがダウンストリームクラスタサーバのBaseboard Management Controller (BMC)とネットワークで接続されていて、ホストの準備とプロビジョニングを自動化できる必要があります。
40.3 ポート要件 #
SUSE Telco Cloudのデプロイメントが適切に動作するには、管理ノードおよびダウンストリームKubernetesクラスタノードにアクセス可能な複数のポートが必要です。
正確なリストは、デプロイされているオプションコンポーネントと選択したデプロイメントオプション(CNIプラグインなど)によって異なります。
40.3.1 管理ノード #
次の表は、管理クラスタを実行しているノードで開いているポートをリストしています。
| プロトコル | ポート | ソース | 説明 |
|---|---|---|---|
TCP | 22 | SSHアクセスを必要とする任意のソース | 管理クラスタノードへのSSHアクセス |
TCP | 80 | 外部TLS終端を行うロードバランサ/プロキシ | 外部TLS終端が使用される場合はRancher UI/API |
TCP | 443 | Rancher UI/APIへのTLSアクセスを必要とする任意のソース | Rancherエージェント、Rancher UI/API |
TCP | 2379 | RKE2 (管理クラスタ)サーバノード |
|
TCP | 2380 | RKE2 (管理クラスタ)サーバノード |
|
TCP | 6180 | この公開ポート(非TLS)からIPA(2) ramdiskイメージをプルするように
| 仮想メディアベースのブート用のIPA(2)
ISOイメージを提供する |
TCP | 6185 | この公開ポート(TLS)からIPA(2)
ramdiskイメージをプルするように |
|
TCP | 6385 | 「登録済み」 | Ironic API |
TCP | 6443 | 任意の管理クラスタノード、(管理クラスタ)外部の任意のKubernetesクライアント | Kubernetes API |
TCP | 6545 | 任意の管理クラスタノード | OCI準拠レジストリ(Hauler)からアーティファクトをプルします |
TCP | 9345 | RKE2サーバとエージェントノード(管理クラスタ) | ノード登録用のRKE2スーパーバイザAPI (すべてのRKE2サーバノードで開かれたポート) |
TCP | 10250 | 任意の管理クラスタノード |
|
TCP/UDP/SCTP | 30000~32767 |
| 使用可能な |
(1) BMC: ベースボード管理コントローラ
(2) IPA: Ironic Python Agent
40.3.2 ダウンストリームノード #
SUSE Telco Cloudでは、任意の(ダウンストリーム)サーバが実行中のダウンストリームKubernetesクラスタの一部となる前(または、それ自体が単一ノードのダウンストリームKubernetesクラスタとして実行される前)に、BaremetalHostのプロビジョニング状態のいくつかを経由する必要があります。
宣言されたばかりのダウンストリームサーバのベースボード管理コントローラ(BMC)は、帯域外ネットワーク経由でアクセスできる必要があります。BMCは(管理クラスタ上で実行されているIronicサービスから)以下の初期実行手順について指示されます。
BMCで提供される
仮想メディア内の指定されたIPA ramdiskイメージをプルしてロードします。サーバの電源を入れます。
以下のポートは、BMCから公開される予定です(実際のハードウェアによって異なる可能性があります)。
| プロトコル | ポート | ソース | 説明 |
|---|---|---|---|
TCP | 80 | Ironic Conductor (管理クラスタから) | Redfish APIアクセス(HTTP) |
TCP | 443 | Ironic Conductor (管理クラスタから) | Redfish APIアクセス(HTTPS) |
BMC
仮想メディアにロードされたIPA ramdiskイメージを使用してダウンストリームサーバイメージを起動すると、ハードウェア検査フェーズが開始されます。以下の表は、実行中のIPA ramdiskイメージによって公開されるポートをリストしています。
Metal3/Ironicプロビジョニングフェーズ #| プロトコル | ポート | ソース | 説明 |
|---|---|---|---|
TCP | 22 | IPA ramdiskイメージへのSSHアクセスを必要とする任意のソース | 検査対象のダウンストリームクラスタノードへのSSHアクセス |
TCP | 9999 | Ironic Conductor (管理クラスタから) | 実行中のramdiskイメージに対するIronicコマンド |
ベアメタルホストが適切にプロビジョニングされ、ダウンストリームKubernetesクラスタに参加すると、以下のポートが公開されます。
| プロトコル | ポート | ソース | 説明 |
|---|---|---|---|
TCP | 22 | SSHアクセスを必要とする任意のソース | ダウンストリームクラスタノードへのSSHアクセス |
TCP | 80 | 外部TLS終端を行うロードバランサ/プロキシ | 外部TLS終端が使用される場合はRancher UI/API |
TCP | 443 | Rancher UI/APIへのTLSアクセスを必要とする任意のソース | Rancherエージェント、Rancher UI/API |
TCP | 2379 | RKE2 (ダウンストリームクラスタ)サーバノード |
|
TCP | 2380 | RKE2 (ダウンストリームクラスタ)サーバノード |
|
TCP | 6443 | 任意のダウンストリームクラスタノード、(ダウンストリームクラスタ)外部の任意のKubernetesクライアント | Kubernetes API |
TCP | 9345 | RKE2サーバおよびエージェントノード(ダウンストリームクラスタ) | ノード登録用のRKE2スーパーバイザAPI (すべてのRKE2サーバノードで開かれたポート) |
TCP | 10250 | 任意のダウンストリームクラスタノード |
|
TCP | 10255 | 任意のダウンストリームクラスタノード |
|
TCP/UDP/SCTP | 30000~32767 |
| 使用可能な |
40.3.3 CNI固有のポート要件 #
サポートされている各CNIバリアントには、独自のポート要件が伴います。詳細については、RKE2ドキュメントの「CNI Specific Inbound Network Rules (CNI固有の受信ネットワークルール)」を参照してください。
ciliumがデフォルト/プライマリCNIプラグインとして設定されている場合、cilium-operatorワークロードが、デプロイされるKubernetesクラスタの外部にメトリクスを公開するように設定されると、以下のTCPポートが付加的に公開されます。これにより、そのKubernetesクラスタ外部で実行されている外部Prometheusサーバインスタンスが引き続きこれらのメトリクスを収集できるようになります。
これは、rke2-cilium Helmチャートを介してciliumをデプロイする際のデフォルトオプションです。
cilium-operatorからの外部メトリクス公開が有効 #| プロトコル | ポート | ソース | 説明 |
|---|---|---|---|
TCP | 9963 | (Kubernetesクラスタ)外部のメトリクスコレクタ | cilium-operatorメトリクス公開 |
40.4 サービス(DHCP、DNSなど) #
デプロイ先の環境の種類によっては、DHCP、DNSなどの外部サービスが必要な場合があります。
接続環境: この場合、ノードはインターネットに接続され(L3ルーティングプロトコルを使用)、外部サービスはお客様が提供します。
非接続/エアギャップ環境: この場合、ノードはインターネットにIPで接続されないため、サービスを追加して、ダイレクトネットワークプロビジョニングワークフローに必要なコンテンツをローカルにミラーリングする必要があります。
ファイルサーバ: ファイルサーバは、ダイレクトネットワークプロビジョニングワークフローの中で、ダウンストリームクラスタノードにプロビジョニングするOSイメージを保存するために使用されます。
Metal3HelmチャートでメディアサーバをデプロイしてOSイメージを保存できます。次のセクション(注記)を確認してください。ただし、既存のローカルWebサーバを使用することもできます。
40.5 systemdサービスの無効化 #
通信ワークロードの場合、ノード上で実行されているワークロードのパフォーマンス(レイテンシ)に影響を及ぼさないように、ノード上で実行されている一部のサービスを無効にしたり、適切に設定することが重要です。
rebootmgrは、システムに保留中の更新がある場合の再起動方針を設定できるサービスです。通信ワークロードでは、システムによってスケジュールされた更新がある場合、rebootmgrサービスを無効にするか正しく設定してノードの再起動を回避し、ノードで実行中のサービスへの影響を避けることが非常に重要です。
次のコマンドを実行して、使用する方針を検証します。
cat /etc/rebootmgr.conf
[rebootmgr]
window-start=03:30
window-duration=1h30m
strategy=best-effort
lock-group=defaultまた、次のコマンドを実行すると無効にすることができます。
sed -i 's/strategy=best-effort/strategy=off/g' /etc/rebootmgr.confまたは、rebootmgrctlコマンドを次のように使用できます。
rebootmgrctl strategy offrebootmgrの方針を設定するこの設定は、ダイレクトネットワークプロビジョニングワークフローを使用して自動化できます。詳細については、自動化されたプロビジョニングに関するドキュメント(第43章 「完全に自動化されたダイレクトネットワークプロビジョニング」)を確認してください。
transactional-updateは、システムによって制御される自動更新を可能にするサービスです。通信ワークロードの場合、ノードで実行中のサービスに影響を及ぼさないように、自動更新を無効にすることが重要です。
自動更新を無効にするには、次のコマンドを実行できます。
systemctl --now disable transactional-update.timer
systemctl --now disable transactional-update-cleanup.timerfstrimは、ファイルシステムを毎週自動的にトリミングできるサービスです。通信ワークロードでは、ノードで実行中のサービスに影響を及ぼさないように、自動トリミングを無効にすることが重要です。
自動トリミングを無効にするには、次のコマンドを実行できます。
systemctl --now disable fstrim.timer