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 設定の例
# ... apiServer: subjectAltNames: - 192.168.113.117 - 2001:db9:ca7:ff::1db8 1 network: clusterNetwork: - 10.42.0.0/16 2 - fd01::/48 3 serviceNetwork: - 10.43.0.0/16 - fd02::/112 4 node: nodeIP: 192.168.113.117 5 nodeIPv6: 2001:db9:ca7:ff::1db8 6 # ...
- 1
- IPv6 ノードアドレス。
- 2
- IPv4 network.
24
未満の CIDR 値でclusterNetwork
を指定します。 - 3
- IPv6 network.
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
- 必要に応じてアプリケーション Pod とサービスの IP ファミリーポリシーをリセットし、それらのアプリケーション Pod とサービスを再起動してデュアルスタックネットワークを有効にします。簡単な例は、「アプリケーション Pod およびサービスの IP ファミリーポリシーの設定」を参照してください。
検証
次の手順に従って、すべてのシステムサービスと Pod に 2 つの IP アドレス(ファミリーごとに 1 つずつ)があることを確認できます。
次のコマンドを実行して、Pod のステータスを取得します。
$ oc get pod -A -o wide
出力例
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES kube-system csi-snapshot-controller-bb7cb654b-7s5ql 1/1 Running 0 46m 10.42.0.6 microshift-9 <none> <none> kube-system csi-snapshot-webhook-95f475949-jrqv8 1/1 Running 0 46m 10.42.0.4 microshift-9 <none> <none> openshift-dns dns-default-zxkqn 2/2 Running 0 46m 10.42.0.5 microshift-9 <none> <none> openshift-dns node-resolver-r2h5z 1/1 Running 0 46m 192.168.113.117 microshift-9 <none> <none> openshift-ingress router-default-5b75594b4-228z7 1/1 Running 0 2m5s 10.42.0.3 microshift-9 <none> <none> openshift-ovn-kubernetes ovnkube-master-bltk7 4/4 Running 2 (2m32s ago) 2m36s 192.168.113.117 microshift-9 <none> <none> openshift-ovn-kubernetes ovnkube-node-9ghgs 1/1 Running 2 (2m32s ago) 46m 192.168.113.117 microshift-9 <none> <none> openshift-service-ca service-ca-5d7bd9db6-qgwgw 1/1 Running 0 46m 10.42.0.7 microshift-9 <none> <none> openshift-storage lvms-operator-656cd9b59b-8rpf4 1/1 Running 0 46m 10.42.0.8 microshift-9 <none> <none> openshift-storage vg-manager-wqmh4 1/1 Running 2 (2m39s ago) 46m 10.42.0.10 microshift-9 <none> <none>
次のコマンドを実行して、OVN-K ネットワークプラグインによって定義されたネットワークを取得します。
$ oc get pod -n openshift-ovn-kubernetes ovnkube-master-bltk7 -o jsonpath='{.status.podIPs}'
出力例
[{"ip":"192.168.113.117"},{"ip":"2001:db9:ca7:ff::1db8"}]
次のコマンドを実行して、ノードリソースで定義されたネットワークを取得します。
$ oc get pod -n openshift-ingress router-default-5b75594b4-228z7 -o jsonpath='{.status.podIPs}'
出力例
[{"ip":"10.42.0.3"},{"ip":"fd01:0:0:1::3"}]
シングルスタックネットワークに戻すには、ネットワークに 2 番目のエントリーを削除し、デュアルスタックに移行する前に設定された単一スタックに戻ることができます。