8.2.3. ネットワーク要件

OpenShift Container Platform のインストーラーでプロビジョニングされるインストールには、複数のネットワーク要件があります。まず、インストーラーでプロビジョニングされるインストールでは、各ベアメタルノードにオペレーティングシステムをプロビジョニングするためのルーティング不可能な provisioning ネットワークをオプションで使用します。次に、インストーラーでプロビジョニングされるインストールでは、ルーティング可能な baremetal ネットワークを使用します。

Installer-provisioned networking
NIC の設定

OpenShift Container Platform は、2 つのネットワークを使用してデプロイします。

  • provisioning: provisioning ネットワークは、OpenShift Container Platform クラスターの一部である基礎となるオペレーティングシステムを各ノードにプロビジョニングするために使用されるオプションのルーティング不可能なネットワークです。各クラスターノードの provisioning ネットワークのネットワークインターフェースには、BIOS または UEFI が PXE ブートに設定されている必要があります。

    provisioningNetworkInterface 設定は、コントロールプレーンノード上の provisioning ネットワークの NIC 名を指定します。これは、コントロールプレーンノードと同じでなければなりません。bootMACAddress 構成設定は、provisioning ネットワーク用に各ノードで特定の NIC を指定する手段を提供します。

    provisioning ネットワークは任意ですが、PXE ブートには必要です。provisioning ネットワークなしでデプロイする場合、redfish-virtualmediaidrac-virtualmedia などの仮想メディア BMC アドレス指定オプションを使用する必要があります。

  • baremetal: baremetal ネットワークはルーティング可能なネットワークです。NIC が provisioning ネットワークを使用するように設定されていない場合には、baremetal ネットワークとのインターフェースには任意の NIC を使用することができます。
重要

VLAN を使用する場合、それぞれの NIC は、適切なネットワークに対応する別個の VLAN 上にある必要があります。

DNS 要件

クライアントは、baremetal ネットワークで OpenShift Container Platform クラスターにアクセスします。ネットワーク管理者は、正規名の拡張がクラスター名であるサブドメインまたはサブゾーンを設定する必要があります。

<cluster_name>.<base_domain>

以下は例になります。

test-cluster.example.com

OpenShift Container Platform には、クラスターメンバーシップ情報を使用して A/AAAA レコードを生成する機能が含まれます。これにより、ノード名が IP アドレスに解決されます。ノードが API に登録されると、クラスターは CoreDNS-mDNS を使用せずにこれらのノード情報を分散できます。これにより、マルチキャスト DNS に関連付けられたネットワークトラフィックがなくなります。

OpenShift Container Platform のデプロイメントでは、以下のコンポーネントに DNS 名前解決が必要です。

  • The Kubernetes API
  • OpenShift Container Platform アプリケーションのワイルドカード Ingress API

A/AAAA レコードは名前解決に使用され、PTR レコードは逆引き名前解決に使用されます。Red Hat Enterprise Linux CoreOS(RHCOS)は逆引きレコードまたは DHCP を使用してすべてのノードのホスト名を設定します。

インストーラーでプロビジョニングされるインストールには、クラスターメンバーシップ情報を使用して A/AAAA レコードを生成する機能が含まれます。これにより、ノード名が IP アドレスに解決されます。各レコードで、<cluster_name> はクラスター名で、<base_domain> は、install-config.yaml ファイルに指定するベースドメインです。完全な DNS レコードは <component>.<cluster_name>.<base_domain>. の形式を取ります。

表8.2 必要な DNS レコード

コンポーネントレコード詳細

Kubernetes API

api.<cluster_name>.<base_domain>.

A/AAAA レコードおよび PTR レコードは、API ロードバランサーを識別します。これらのレコードは、クラスター外のクライアントおよびクラスター内のすべてのノードで解決できる必要があります。

ルート

*.apps.<cluster_name>.<base_domain>.

ヒント

dig コマンドを使用して、DNS 解決を確認できます。

Dynamic Host Configuration Protocol (DHCP) の要件

デフォルトでは、インストーラーでプロビジョニングされるインストールは、provisioning ネットワーク用に DHCP を有効にして ironic-dnsmasq をデプロイします。provisioningNetwork 設定が、デフォルト値の managed に設定されている場合、provisioning ネットワーク上で他の DHCP サーバーを実行することはできません。provisioning ネットワーク上で DHCP サーバーを実行している場合は、install-config.yaml ファイルで provisioningNetwork 設定を unmanaged に設定する必要があります。

ネットワーク管理者は、外部 DHCP サーバー上の baremetal ネットワーク用に、OpenShift Container Platform クラスター内の各ノードの IP アドレスを予約する必要があります。

DHCP サーバーを使用するノードの IP アドレスの確保

baremetal ネットワークの場合、ネットワーク管理者は以下を含む多数の IP アドレスを予約する必要があります。

  1. 2 つの一意の仮想 IP アドレス

    • API エンドポイントの 1 つの仮想 IP アドレス。
    • ワイルドカード Ingress エンドポイントの 1 つの仮想 IP アドレス。
  2. プロビジョナーノードの 1 つの IP アドレス
  3. 各コントロールプレーン (マスター) ノード 1 つの IP アドレス
  4. 各ワーカーノードの 1 つの IP アドレス (適用可能な場合)
IP アドレスの予約し、それらを静的 IP アドレスにする

一部の管理者は、各ノードの IP アドレスが DHCP サーバーがない状態で一定になるように静的 IP アドレスの使用を選択します。OpenShift Container Platform クラスターで静的 IP アドレスを使用するには、IP アドレスを無限リースで予約します。デプロイメント時に、インストーラーは DHCP で割り当てられたアドレスから静的 IP アドレスに NIC を再設定します。無限ではない DHCP リースを持つ NIC は、DHCP を使用するように設定された状態になります。

外部ロードバランサーとコントロールプレーンノード間のネットワーク

外部の負荷分散サービスとコントロールプレーンノードは同じ L2 ネットワークで実行する必要があります。また、VLAN を使用して負荷分散サービスとコントロールプレーンノード間のトラフィックをルーティングする際に同じ VLAN で実行する必要があります。

以下の表は、完全修飾ドメイン名の具体例を示しています。API および Nameserver アドレスは、正式名の拡張子で始まります。コントロールプレーンおよびワーカーノードのホスト名は例であるため、任意のホストの命名規則を使用することができます。

使用法ホスト名IP

API

api.<cluster_name>.<base_domain>

<ip>

Ingress LB (アプリケーション)

*.apps.<cluster_name>.<base_domain>

<ip>

プロビジョナーノード

provisioner.<cluster_name>.<base_domain>

<ip>

Master-0

openshift-master-0.<cluster_name>.<base_domain>

<ip>

Master-1

openshift-master-1.<cluster_name>-.<base_domain>

<ip>

Master-2

openshift-master-2.<cluster_name>.<base_domain>

<ip>

Worker-0

openshift-worker-0.<cluster_name>.<base_domain>

<ip>

Worker-1

openshift-worker-1.<cluster_name>.<base_domain>

<ip>

Worker-n

openshift-worker-n.<cluster_name>.<base_domain>

<ip>

注記

DHCP 予約を作成しない場合、インストーラーには、Kubernetes API ノード、プロビジョナーノード、コントロールプレーンノード、およびワーカーノードのホスト名を設定するために逆引き DNS 解決が必要です。

Network Time Protocol (NTP)

クラスター内の各 OpenShift Container Platform ノードは NTP サーバーにアクセスできる必要があります。OpenShift Container Platform ノードは NTP を使用してクロックを同期します。たとえば、クラスターノードは、検証を必要とする SSL 証明書を使用します。これは、ノード間の日付と時刻が同期していない場合に失敗する可能性があります。

重要

各クラスターノードの BIOS 設定で一貫性のあるクロックの日付と時刻の形式を定義してください。そうしないと、インストールが失敗する可能性があります。

非接続クラスターで NTP サーバーとして機能するようにコントロールプレーンノードを再設定し、コントロールプレーンノードから時間を取得するためにワーカーノードを再設定することができます。

ステートドリブンのネットワーク設定要件 (テクノロジープレビュー)

OpenShift Container Platform は、 kubernetes-nmstate を使用し、クラスターノードのセカンダリーネットワークインターフェースで、インストール後の追加のステートドリブンのネットワーク設定をサポートします。たとえば、システム管理者は、ストレージネットワークのインストール後に、クラスターノードにセカンダリーネットワークインターフェースを設定することができます。

注記

設定は、Pod のスケジュール前に行われる必要があります。

ステートドリブンのネットワーク設定では、kubernetes-nmstate をインストールする必要があり、クラスターノード上で Network Manager を実行する必要もあります。詳細は、OpenShift Virtualization > Kubernetes NMState (テクノロジープレビュー) を参照してください。

アウトバウンド管理 IP アドレスのポートアクセス

アウトバウンド管理 IP アドレスは、ノードとは別のネットワーク上にある。インストール中にアウトバウンド管理が ベアメタルノード と通信できるようにするには、TCP 6180 ポートへのアクセスが付与される必要があります。