13.3. OpenShift SDN ネットワークプロバイダーへのロールバック
クラスター管理者は、OVN-Kubernetes デフォルト CNI ネットワークプロバイダーから OpenShift SDN クラスターのデフォルト Container Network Interface (CNI) プロバイダーにロールバックできます (OVN-Kubernetes への移行に失敗した場合)。
13.3.1. デフォルトの CNI ネットワークプロバイダーの OpenShift SDN へのロールバック
クラスター管理者は、クラスターを OpenShift SDN デフォルト Container Network Interface (CNI) ネットワークプロバイダーにロールバックできます。ロールバック時に、クラスター内のすべてのノードを再起動する必要があります。
OVN-Kubernetes への移行に失敗した場合にのみ OpenShift SDN にロールバックします。
前提条件
-
OpenShift CLI (
oc
) をインストールしている。 -
cluster-admin
ロールを持つユーザーとしてのクラスターへのアクセス。 OVN-Kubernetes デフォルト CNI ネットワークプロバイダーで設定されたベアメタルインフラストラクチャーにクラスターがインストールされていること。
移行を有効にするには、以下のコマンドを入力して 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": "OpenShiftSDN" } }'
オプション: 移行前に作成したクラスターネットワーク設定のバックアップを使用して、ネットワーク設定に対して作成した可能性のあるカスタマイズを復元します。カスタマイズを復元するには、以下のコマンドを入力して Cluster Network Operator 設定を編集します。
$ oc edit Network.config.openshift.io cluster
移行により OVN-Kubernetes デフォルト CNI ネットワークプロバイダーが無効になり、すべての OVN-Kubernetes Pod が削除されたことを確認するには、以下のコマンドを入力します。すべての OVN-Kubernetes Pod が停止するまでしばらく時間がかかる可能性があります。
$ watch oc get pod -n openshift-ovn-kubernetes
ロールバックを完了するには、クラスター内の各ノードを再起動します。たとえば、以下のような 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 ネットワークプロバイダーが OpenShift SDN であることを確認します。
status.networkType
の値はOpenShiftSDN
である必要があります。$ oc get network.config/cluster -o jsonpath='{.status.networkType}{"\n"}'
OpenShift SDN Pod が
READY
の状態にあることを確認するには、以下のコマンドを入力します。$ oc get pod -n openshift-sdn --watch
Cluster Network Operator 設定オブジェクトから移行アノテーションを削除するには、以下のコマンドを入力します。
$ oc annotate Network.operator.openshift.io cluster \ networkoperator.openshift.io/network-migration-
OVN-Kubernetes ネットワークプロバイダー namespace を削除するには、以下のコマンドを入力します。
$ oc delete namespace openshift-ovn-kubernetes