20.7. IPv4/IPv6 デュアルスタックネットワークへの変換
クラスター管理者は、IPv4 および IPv6 アドレスファミリーをサポートするデュアルネットワーククラスターネットワークに、IPv4 の単一スタッククラスターを変換できます。デュアルスタックネットワークに変換すると、新しい Pod と既存の Pod でデュアルスタックネットワークが有効になります。
IPv6 を必要とするデュアルスタックネットワークを使用する場合、::FFFF:198.51.100.1
などの IPv4 にマッピングされた IPv6 アドレスは使用できません。
関連情報
- デュアルスタックネットワークのプラットフォーム固有のサポートに関する詳細は、OVN-Kubernetes の目的 を参照してください。
20.7.1. デュアルスタッククラスターネットワークへの変換
クラスター管理者は、単一スタッククラスターネットワークをデュアルスタッククラスターネットワークに変換できます。
デュアルスタックネットワークを使用するようにクラスターを変換した後、Pod が IPv6 アドレスを受け取るように、既存の Pod を再作成する必要があります。IPv6 アドレスは、新しい Pod にのみ割り当てられるためです。
シングルスタッククラスターネットワークをデュアルスタッククラスターネットワークに変換するには、パッチを作成し、それをクラスターのネットワークとインフラストラクチャーに適用します。installer-provisioned infrastructure 上で実行されるクラスターのデュアルスタッククラスターネットワークに変換できます。
clusterNetwork
、serviceNetwork
、apiServerInternalIPs
、および ingressIP
オブジェクトを変更する各パッチ操作は、クラスターの再起動をトリガーします。MachineNetworks
オブジェクトを変更しても、クラスターは再起動されません。
既存のデュアルスタック設定のクラスターに API および Ingress サービス用の IPv6 仮想 IP (VIP) を追加する必要がある場合は、クラスターのネットワークではなく、クラスターのインフラストラクチャーのみにパッチを適用する必要があります。
クラスターを OpenShift Container Platform 4.16 以降にすでにアップグレードしていて、シングルスタッククラスターネットワークをデュアルスタッククラスターネットワークに変換する必要がある場合は、YAML 設定パッチファイルで、API および Ingress サービスの install-config.yaml
ファイルから既存の IPv4 machineNetwork
ネットワーク設定を指定する必要があります。この設定により、IPv4 トラフィックがデフォルトゲートウェイと同じネットワークインターフェイスに存在させることができます。
machineNetwork
ネットワーク用に IPv4 アドレスブロックが追加された YAML 設定ファイルの例
- op: add
path: /spec/platformSpec/baremetal/machineNetworks/- 1
value: 192.168.1.0/24
# ...
- 1
- マシンが動作する
machineNetwork
ネットワークのアドレスブロックを指定していることを確認してください。マシンネットワークの API および Ingress の両方の IP アドレスを選択する必要があります。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 -
cluster-admin
権限を持つユーザーとしてクラスターにログインしている。 - クラスターは OVN-Kubernetes ネットワークプラグインを使用します。
- クラスターノードに IPv6 アドレスがある。
- インフラストラクチャーに基づいて IPv6 対応ルーターを設定している。
手順
クラスターおよびサービスネットワークの IPv6 アドレスブロックを指定するには、次の例のような設定を持つ YAML 設定パッチファイルを作成します。
- op: add path: /spec/clusterNetwork/- value: 1 cidr: fd01::/48 hostPrefix: 64 - op: add path: /spec/serviceNetwork/- value: fd02::/112 2
CLI で次のコマンドを入力して、クラスターネットワーク設定にパッチを適用します。
$ oc patch network.config.openshift.io cluster \1 --type='json' --patch-file <file>.yaml
- 1
- ここで、
file
は作成した YAML ファイルの名前を指定します。
出力例
network.config.openshift.io/cluster patched
クラスターの API および Ingress サービスに IPv6 仮想 IP を指定します。次の例と同様の設定を含む YAML 設定パッチファイルを作成します。
- op: add path: /spec/platformSpec/baremetal/machineNetworks/- 1 value: fd2e:6f44:5dd8::/64 - op: add path: /spec/platformSpec/baremetal/apiServerInternalIPs/- 2 value: fd2e:6f44:5dd8::4 - op: add path: /spec/platformSpec/baremetal/ingressIPs/- value: fd2e:6f44:5dd8::5
CLI で次のコマンドを入力してインフラストラクチャーにパッチを適用します。
$ oc patch infrastructure cluster \1 --type='json' --patch-file <file>.yaml
- 1
- ここで、
file
は作成した YAML ファイルの名前を指定します。
出力例
infrastructure/cluster patched
検証
CLI で次のコマンドを入力して、クラスターネットワーク設定を表示します。
$ oc describe network
クラスターネットワーク設定が YAML ファイルで指定した IPv6 アドレスブロックを認識していることを確認し、ネットワーク設定へのパッチのインストールが正常に行われたことを確認します。
出力例
# ... Status: Cluster Network: Cidr: 10.128.0.0/14 Host Prefix: 23 Cidr: fd01::/48 Host Prefix: 64 Cluster Network MTU: 1400 Network Type: OVNKubernetes Service Network: 172.30.0.0/16 fd02::/112 # ...
installer-provisioned infrastructure 上で実行されるクラスターに対して、次の追加タスクを完了します。
CLI で次のコマンドを入力して、クラスターインフラストラクチャー設定を表示します。
$ oc describe infrastructure
YAML ファイルで指定した IPv6 アドレスブロックがインフラストラクチャーによって認識されるかどうかを確認して、クラスターインフラストラクチャーへのパッチのインストールが正常に行われたことを確認します。
出力例
# ... spec: # ... platformSpec: baremetal: apiServerInternalIPs: - 192.168.123.5 - fd2e:6f44:5dd8::4 ingressIPs: - 192.168.123.10 - fd2e:6f44:5dd8::5 status: # ... platformStatus: baremetal: apiServerInternalIP: 192.168.123.5 apiServerInternalIPs: - 192.168.123.5 - fd2e:6f44:5dd8::4 ingressIP: 192.168.123.10 ingressIPs: - 192.168.123.10 - fd2e:6f44:5dd8::5 # ...
20.7.2. 単一スタッククラスターネットワークへの変換
クラスター管理者は、デュアルスタッククラスターネットワークを単一スタッククラスターネットワークに変換できます。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 -
cluster-admin
権限を持つユーザーとしてクラスターにログインしている。 - クラスターは OVN-Kubernetes ネットワークプラグインを使用します。
- クラスターノードに IPv6 アドレスがある。
- デュアルスタックネットワークを有効にしている。
手順
以下のコマンドを実行して、
networks.config.openshift.io
カスタムリソース (CR) を編集します。$ oc edit networks.config.openshift.io
-
前の手順で
cidr
およびhostPrefix
フィールドに追加した IPv6 固有の設定を削除します。