2.4. MicroShift クラスターの IPv6 デュアルスタックネットワークへの移行
MicroShift 設定ファイルのサービスおよびクラスターネットワークパラメーターに 2 つのエントリーを設定することで、シングルスタッククラスターを IPv4 および IPv6 アドレスファミリーをサポートするデュアルスタッククラスターネットワークに変換できます。
- 設定の最初の IP ファミリーは、クラスター内のプライマリー IP スタックです。
- MicroShift システム Pod とサービスは、MicroShift の再起動時に自動的に更新されます。
- クラスターがデュアルスタックネットワークに移行し、再起動したら、それらを再起動して、デュアルスタックネットワーク用のワークロード Pod とサービスを有効化します。
OVN-Kubernetes ネットワークプラグインでは、IPv4 と IPv6 の両方のデフォルトルートが同じネットワークデバイスに存在する必要があります。別のネットワークデバイス上の IPv4 および IPv6 のデフォルトルートはサポートされていません。
IPv6 を必要とするデュアルスタックネットワークを使用する場合、::FFFF:198.51.100.1
などの IPv4 にマッピングされた IPv6 アドレスは使用できません。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 - クラスターへの root アクセス権限がある。
- クラスターが OVN-Kubernetes ネットワークプラグインを使用している。
- ホストには、それぞれのデフォルトを含む、IPv4 と IPv6 の両方のアドレスとルートがあります。
- ホストには、少なくとも 2 つの L3 ネットワーク (IPv4 と IPv6) があります。
手順
-
/etc/microshift/
ディレクトリーにある指定されたconfig.yaml.default
ファイルのコピーを作成し (まだ作成していない場合)、config.yaml
という名前を付けます。 新しい MicroShift の
config.yaml
を/etc/microshift/
ディレクトリーに保持します。config.yaml
ファイルは、MicroShift サービスが起動するたびに読み取られます。注記これを作成すると、
config.yaml
ファイルは組み込み設定よりも優先されます。有効な値を使用して、MicroShift YAML の
network
セクションに IPv6 設定を追加します。警告再起動と移行後も同じ最初のエントリーを保持する必要があります。これは、シングルスタックからデュアルスタック、またはデュアルスタックからシングルスタックへの移行など、あらゆる移行に当てはまります。最初のエントリーへの変更が必要な場合は、etcd データベースの完全な消去が必要になります。これにより、アプリケーションデータの損失が発生する可能性があり、サポートされていません。
-
有効な値を使用して、MicroShift YAML の
network
セクションにある 2 番目のネットワークの IPv6 設定を追加します。 MicroShift
config.yaml
のnetwork
セクションにネットワーク割り当てを追加して、IPv6 をセカンダリーネットワークとして使用するデュアルスタックを有効化します。ネットワーク割り当てによるデュアルスタック IPv6 設定の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- IPv6 ノードアドレス:
- 2
- IPv4 ネットワーク:
24
未満の CIDR 値でclusterNetwork
を指定します。 - 3
- IPv6 ネットワーク:
64
未満の CIDR 値でclusterNetwork
を指定します。 - 4
- 接頭辞が
112
である IPv6 CIDR を指定します。Kubernetes は最低レベルの 16 ビットのみを使用します。接頭辞が112
の場合、IP アドレスは112
から128
ビットに割り当てられます。 - 5
- ノード IP アドレスの例。以前の IPv4 IP アドレスを維持します。
- 6
- ノード IP アドレスの例。IPv6 アドレスファミリーである必要があります。
-
有効な値を使用して、MicroShift YAML の
必要なその他の設定を完了してから、次のコマンドを実行して MicroShift を再起動します。
sudo systemctl restart microshift
$ sudo systemctl restart microshift
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 必要に応じてアプリケーション Pod とサービスの IP ファミリーポリシーをリセットし、それらのアプリケーション Pod とサービスを再起動してデュアルスタックネットワークを有効化します。簡単な例は、「アプリケーション Pod およびサービスの IP ファミリーポリシーのリセット」を参照してください。
検証
次の手順に従って、すべてのシステムサービスと Pod に 2 つの IP アドレス (ファミリーごとに 1 つずつ) があることを確認できます。
次のコマンドを実行して、Pod のステータスを取得します。
oc get pod -A -o wide
$ oc get pod -A -o wide
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、OVN-K ネットワークプラグインによって定義されたネットワークを取得します。
oc get pod -n openshift-ovn-kubernetes ovnkube-master-bltk7 -o jsonpath='{.status.podIPs}'
$ oc get pod -n openshift-ovn-kubernetes ovnkube-master-bltk7 -o jsonpath='{.status.podIPs}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
[{"ip":"192.168.113.117"},{"ip":"2001:db9:ca7:ff::1db8"}]
[{"ip":"192.168.113.117"},{"ip":"2001:db9:ca7:ff::1db8"}]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、ノードリソースで定義されたネットワークを取得します。
oc get pod -n openshift-ingress router-default-5b75594b4-228z7 -o jsonpath='{.status.podIPs}'
$ oc get pod -n openshift-ingress router-default-5b75594b4-228z7 -o jsonpath='{.status.podIPs}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
[{"ip":"10.42.0.3"},{"ip":"fd01:0:0:1::3"}]
[{"ip":"10.42.0.3"},{"ip":"fd01:0:0:1::3"}]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
シングルスタックネットワークに戻すには、ネットワークの 2 番目のエントリーを削除し、デュアルスタックに移行する前に設定されたシングルスタックに戻ることができます。