13.2. OpenShift SDN デフォルト CNI ネットワークプロバイダーからの移行
クラスター管理者は、OVN-Kubernetes デフォルト Container Network Interface (CNI) ネットワークプロバイダーを OpenShift SDN デフォルト CNI ネットワークプロバイダーから移行できます。
Open Virtual Networking (OVN) Kubernetes ネットワークプラグインは、テクノロジープレビュー機能です。テクノロジープレビュー機能は Red Hat の実稼働環境でのサービスレベルアグリーメント (SLA) ではサポートされていないため、Red Hat では実稼働環境での使用を推奨していません。Red Hat は実稼働環境でこれらを使用することを推奨していません。これらの機能は、近々発表予定の製品機能をリリースに先駆けてご提供することにより、お客様は機能性をテストし、開発プロセス中にフィードバックをお寄せいただくことができます。
OVN テクノロジープレビュー機能のサポート範囲についての詳細は、https://access.redhat.com/articles/4380121 を参照してください。
OVN-Kubernetes についての詳細は、OVN-Kubernetes ネットワークプロバイダーについて を参照してください。
13.2.1. OVN-Kubernetes デフォルト CNI ネットワークプロバイダーへの移行
クラスター管理者は、クラスターのデフォルトの Container Network Interface (CNI) ネットワークプロバイダーを OVN-Kubernetes に変更できます。移行時に、クラスター内のすべてのノードを再起動する必要があります。
移行の実行中はクラスターを利用できず、ワークロードが中断される可能性があります。サービスの中断が許容可能な場合にのみ移行を実行します。
前提条件
-
OpenShift CLI (
oc
) をインストールしている。 -
cluster-admin
ロールを持つユーザーとしてのクラスターへのアクセスがあること。 - OpenShift SDN デフォルト CNI ネットワークプロバイダーで設定されたベアメタルインフラストラクチャーにクラスターがインストールされていること。
- クラスターは既知の正常な状態にあり、エラーがないこと。
手順
クラスターネットワークの設定のバックアップを作成するには、以下のコマンドを入力します。
$ oc get Network.config.openshift.io cluster -o yaml > cluster-openshift-sdn.yaml
移行を有効にするには、以下のコマンドを入力して Cluster Network Operator 設定オブジェクトにアノテーションを設定します。
$ oc annotate Network.operator.openshift.io cluster \ 'networkoperator.openshift.io/network-migration'=""
デフォルトの CNI ネットワークプロバイダーを変更するには、以下のコマンドを入力します。
$ oc patch Network.config.openshift.io cluster \ --type='merge' --patch '{ "spec": { "networkType": "OVNKubernetes" } }'
移行により OpenShift SDN デフォルト CNI ネットワークプロバイダーが無効になり、すべての OpenShift SDN Pos が削除されたことを確認するには、以下のコマンドを入力します。すべての OpenShift SDN Pod が停止するまでしばらく時間がかかる可能性があります。
$ watch oc get pod -n openshift-sdn
移行を完了するには、クラスター内の各ノードを再起動します。たとえば、以下のような bash スクリプトを使用できます。このスクリプトは、
ssh
を使用して各ホストに接続でき、sudo
がパスワードを要求しないように設定されていることを前提としています。#!/bin/bash for ip in $(oc get nodes -o jsonpath='{.items[*].status.addresses[?(@.type=="InternalIP")].address}') do echo "reboot node $ip" ssh -o StrictHostKeyChecking=no core@$ip sudo shutdown -r -t 3 done
クラスターのノードが再起動したら、移行が正常に完了したことを確認します。
デフォルトの CNI ネットワークプロバイダーが OVN-Kubernetes であることを確認するには、以下のコマンドを入力します。
status.networkType
の値はOVNKubernetes
である必要があります。$ oc get network.config/cluster -o jsonpath='{.status.networkType}{"\n"}'
クラスターノードが
Ready
状態にあることを確認するには、以下のコマンドを実行します。$ oc get nodes
ノードが
NotReady
状態のままになっている場合は、再度ノードを再起動します。Pod がエラー状態ではないことを確認するには、以下のコマンドを入力します。
$ oc get pods --all-namespaces -o wide --sort-by='{.spec.nodeName}'
ノードの Pod がエラー状態にある場合は、そのノードを再起動します。
以下の手順は、移行に成功し、クラスターの状態が正常である場合にのみ実行します。
Cluster Network Operator 設定オブジェクトから移行アノテーションを削除するには、以下のコマンドを入力します。
$ oc annotate Network.operator.openshift.io cluster \ networkoperator.openshift.io/network-migration-
OpenShift SDN ネットワークプロバイダー namespace を削除するには、以下のコマンドを入力します。
$ oc delete namespace openshift-sdn