3.5. サブネット間の通信を確立する
一般的な OpenShift Container Platform クラスター設定では、コントロールプレーンとワーカーノードを含むすべてのノードが同じネットワーク内に存在します。ただし、エッジコンピューティングのシナリオでは、ワーカーノードをエッジの近くに配置することが有益な場合があります。その場合、コントロールプレーンやローカルワーカーノードが使用するサブネットとは異なるネットワークセグメントまたはサブネットをリモートワーカーノードに使用されることもよくあります。このようなセットアップにより、エッジのレイテンシーが減少し、拡張性が向上します。ただし、リモートワーカーノードを含むエッジサブネットがコントロールプレーンノードを含むサブネットに到達し、コントロールプレーンからのトラフィックも受信するためには、OpenShift Container Platform をインストールする前にネットワークを適切に設定する必要があります。
すべてのコントロールプレーンノードは同じサブネット内で実行する必要があります。複数のサブネットを使用する場合、マニフェストを使用して、コントロールプレーンノード上で実行されるように Ingress VIP を設定することもできます。詳細は、「コントロールプレーンで実行するネットワークコンポーネントの設定」を参照してください。
複数のサブネットを持つクラスターをデプロイメントするには、仮想メディアを使用する必要があります。
この手順では、2 番目のサブネットにあるリモートワーカーノードが 1 番目のサブネットにあるコントロールプレーンノードと効果的に通信できるようにし、1 番目のサブネットにあるコントロールプレーンノードが 2 番目のサブネットにあるリモートワーカーノードと効果的に通信できるようにするために必要なネットワーク設定について詳しく説明します。
この手順では、クラスターは 2 つのサブネットにまたがります。
-
1 番目のサブネット (
10.0.0.0
) には、コントロールプレーンとローカルワーカーノードが含まれています。 -
2 番目のサブネット (
192.168.0.0
) にはエッジワーカーノードが含まれています。
手順
1 番目のサブネットが 2 番目のサブネットと通信するように設定します。
次のコマンドを実行して、コントロールプレーンノードに
root
としてログインします。$ sudo su -
ネットワークインターフェイスの名前を取得します。
# nmcli dev status
-
ゲートウェイ経由で 2 番目のサブネット (
192.168.0.0
) にルートを追加します: s+
# nmcli connection modify <interface_name> +ipv4.routes "192.168.0.0/24 via <gateway>"
+ <interface_name>
をインターフェイス名に置き換えます。<gateway>
を実際のゲートウェイの IP アドレスに置き換えます。
+ .例
+
# nmcli connection modify eth0 +ipv4.routes "192.168.0.0/24 via 192.168.0.1"
変更を適用します。
# nmcli connection up <interface_name>
<interface_name>
をインターフェイス名に置き換えます。ルーティングテーブルを検証して、ルートが正常に追加されたことを確認します。
# ip route
1 番目のサブネットの各コントロールプレーンノードに対して前の手順を繰り返します。
注記コマンドは、実際のインターフェイス名とゲートウェイに合わせて調整してください。
- 1 番目のサブネットと通信するように 2 番目のサブネットを設定します。
root
としてリモートワーカーノードにログインします。$ sudo su -
ネットワークインターフェイスの名前を取得します。
# nmcli dev status
ゲートウェイ経由で 1 番目のサブネット (
10.0.0.0
) にルートを追加します。# nmcli connection modify <interface_name> +ipv4.routes "10.0.0.0/24 via <gateway>"
<interface_name>
をインターフェイス名に置き換えます。<gateway>
を実際のゲートウェイの IP アドレスに置き換えます。例
# nmcli connection modify eth0 +ipv4.routes "10.0.0.0/24 via 10.0.0.1"
変更を適用します。
# nmcli connection up <interface_name>
<interface_name>
をインターフェイス名に置き換えます。ルーティングテーブルを検証して、ルートが正常に追加されたことを確認します。
# ip route
2 番目のサブネット内の各ワーカーノードに対して前の手順を繰り返します。
注記実際のインターフェイス名とゲートウェイに一致するようにコマンドを調整します。
- ネットワークを設定したら、接続をテストして、リモートワーカーノードがコントロールプレーンノードに到達できること、およびコントロールプレーンノードがリモートワーカーノードに到達できることを確認します。
1 番目のサブネットのコントロールプレーンノードから、2 番目のサブネットのリモートワーカーノードに ping を送信します。
$ ping <remote_worker_node_ip_address>
ping が成功した場合は、1 番目のサブネットのコントロールプレーンノードが 2 番目のサブネットのリモートワーカーノードに到達できることを意味します。応答を受信しない場合は、ネットワーク設定を確認し、ノードに対して手順を繰り返します。
2 番目のサブネットのリモートワーカーノードから、1 番目のサブネットのコントロールプレーンノードに ping を送信します。
$ ping <control_plane_node_ip_address>
ping が成功した場合は、2 番目のサブネットのリモートワーカーノードが 1 番目のサブネットのコントロールプレーンに到達できることを意味します。応答を受信しない場合は、ネットワーク設定を確認し、ノードに対して手順を繰り返します。