This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.23.3. OpenShift SDN ネットワークプロバイダーへのロールバック
クラスター管理者は、OVN-Kubernetes CNI クラスターのネットワークプロバイダーから OpenShift SDN クラスターの Container Network Interface (CNI) クラスターネットワークプロバイダーにロールバックできます (OVN-Kubernetes への移行に失敗した場合)。
23.3.1. デフォルトの CNI ネットワークプロバイダーの OpenShift SDN へのロールバック リンクのコピーリンクがクリップボードにコピーされました!
クラスター管理者は、クラスターを OpenShift SDN Container Network Interface (CNI) クラスターネットワークプロバイダーにロールバックできます。ロールバック時に、クラスター内のすべてのノードを再起動する必要があります。
OVN-Kubernetes への移行に失敗した場合にのみ OpenShift SDN にロールバックします。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 -
cluster-admin
ロールを持つユーザーとしてクラスターにアクセスできる。 - OVN-Kubernetes CNI クラスターネットワークプロバイダーで設定されたインフラストラクチャーにクラスターがインストールされている。
手順
Machine Config Operator (MCO) によって管理されるすべてのマシン設定プールを停止します。
マスター設定プールを停止します。
oc patch MachineConfigPool master --type='merge' --patch \ '{ "spec": { "paused": true } }'
$ oc patch MachineConfigPool master --type='merge' --patch \ '{ "spec": { "paused": true } }'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ワーカーマシン設定プールを停止します。
oc patch MachineConfigPool worker --type='merge' --patch \ '{ "spec":{ "paused" :true } }'
$ oc patch MachineConfigPool worker --type='merge' --patch \ '{ "spec":{ "paused" :true } }'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
移行を開始するには、以下のコマンドを入力してクラスターネットワークプロバイダーを OpenShift SDN に戻します。
oc patch Network.operator.openshift.io cluster --type='merge' \ --patch '{ "spec": { "migration": { "networkType": "OpenShiftSDN" } } }' oc patch Network.config.openshift.io cluster --type='merge' \ --patch '{ "spec": { "networkType": "OpenShiftSDN" } }'
$ oc patch Network.operator.openshift.io cluster --type='merge' \ --patch '{ "spec": { "migration": { "networkType": "OpenShiftSDN" } } }' $ oc patch Network.config.openshift.io cluster --type='merge' \ --patch '{ "spec": { "networkType": "OpenShiftSDN" } }'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: ネットワークインフラストラクチャーの要件を満たすように OpenShift SDN の以下の設定をカスタマイズできます。
- Maximum transmission unit (MTU)
- VXLAN ポート
以前の設定のいずれかを両方をカスタマイズするには、カスタマイズし、以下のコマンドを入力します。デフォルト値を変更する必要がない場合は、パッチのキーを省略します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow mtu
-
VXLAN オーバーレイネットワークの MTU。この値は通常は自動的に設定されますが、クラスターにあるノードすべてが同じ MTU を使用しない場合、これを最小のノード MTU 値よりも
50
小さく設定する必要があります。 port
-
VXLAN オーバーレイネットワークの UDP ポート。値が指定されない場合は、デフォルトは
4789
になります。ポートは OVN-Kubernetes で使用される Geneve ポートと同じにすることはできません。Geneve ポートのデフォルト値は6081
です。
patch コマンドの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Multus デーモンセットのロールアウトが完了するまで待機します。
oc -n openshift-multus rollout status daemonset/multus
$ oc -n openshift-multus rollout status daemonset/multus
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Multus Pod の名前の形式は
multus-<xxxxx>
です。ここで、<xxxxx>
は文字のランダムなシーケンスになります。Pod が再起動するまでにしばらく時間がかかる可能性があります。出力例
Waiting for daemon set "multus" rollout to finish: 1 out of 6 new pods have been updated... ... Waiting for daemon set "multus" rollout to finish: 5 of 6 updated pods are available... daemon set "multus" successfully rolled out
Waiting for daemon set "multus" rollout to finish: 1 out of 6 new pods have been updated... ... Waiting for daemon set "multus" rollout to finish: 5 of 6 updated pods are available... daemon set "multus" successfully rolled out
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ロールバックを完了するには、クラスター内の各ノードを再起動します。たとえば、以下のような bash スクリプトを使用できます。このスクリプトは、
ssh
を使用して各ホストに接続でき、sudo
がパスワードを要求しないように設定されていることを前提としています。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ssh アクセスが使用できない場合、インフラストラクチャープロバイダーの管理ポータルから各ノードを再起動できる場合があります。
クラスターのノードが再起動したら、すべてのマシン設定プールを起動します。
マスター設定プールを開始します。
oc patch MachineConfigPool master --type='merge' --patch \ '{ "spec": { "paused": false } }'
$ oc patch MachineConfigPool master --type='merge' --patch \ '{ "spec": { "paused": false } }'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ワーカー設定プールを開始します。
oc patch MachineConfigPool worker --type='merge' --patch \ '{ "spec": { "paused": false } }'
$ oc patch MachineConfigPool worker --type='merge' --patch \ '{ "spec": { "paused": false } }'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
MCO が各設定プールのマシンを更新すると、各ノードを再起動します。
デフォルトで、MCO は一度にプールごとに単一のマシンを更新するため、移行が完了するまでに必要な時間がクラスターのサイズと共に増加します。
ホスト上の新規マシン設定のステータスを確認します。
マシン設定の状態と適用されたマシン設定の名前をリスト表示するには、以下のコマンドを入力します。
oc describe node | egrep "hostname|machineconfig"
$ oc describe node | egrep "hostname|machineconfig"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
kubernetes.io/hostname=master-0 machineconfiguration.openshift.io/currentConfig: rendered-master-c53e221d9d24e1c8bb6ee89dd3d8ad7b machineconfiguration.openshift.io/desiredConfig: rendered-master-c53e221d9d24e1c8bb6ee89dd3d8ad7b machineconfiguration.openshift.io/reason: machineconfiguration.openshift.io/state: Done
kubernetes.io/hostname=master-0 machineconfiguration.openshift.io/currentConfig: rendered-master-c53e221d9d24e1c8bb6ee89dd3d8ad7b machineconfiguration.openshift.io/desiredConfig: rendered-master-c53e221d9d24e1c8bb6ee89dd3d8ad7b machineconfiguration.openshift.io/reason: machineconfiguration.openshift.io/state: Done
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のステートメントが true であることを確認します。
-
machineconfiguration.openshift.io/state
フィールドの値はDone
です。 -
machineconfiguration.openshift.io/currentConfig
フィールドの値は、machineconfiguration.openshift.io/desiredConfig
フィールドの値と等しくなります。
-
マシン設定が正しいことを確認するには、以下のコマンドを入力します。
oc get machineconfig <config_name> -o yaml
$ oc get machineconfig <config_name> -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <config_name>
はmachineconfiguration.openshift.io/currentConfig
フィールドのマシン設定の名前です。
移行が正常に完了したことを確認します。
デフォルトの CNI ネットワークプロバイダーが OpenShift SDN であることを確認するには、以下のコマンドを入力します。
status.networkType
の値はOpenShiftSDN
である必要があります。oc get network.config/cluster -o jsonpath='{.status.networkType}{"\n"}'
$ oc get network.config/cluster -o jsonpath='{.status.networkType}{"\n"}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow クラスターノードが
Ready
状態にあることを確認するには、以下のコマンドを実行します。oc get nodes
$ oc get nodes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ノードが
NotReady
状態のままになっている場合、マシン設定デーモン Pod のログを調べ、エラーを解決します。Pod をリスト表示するには、以下のコマンドを入力します。
oc get pod -n openshift-machine-config-operator
$ oc get pod -n openshift-machine-config-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 設定デーモン Pod の名前は以下の形式になります。
machine-config-daemon-<seq>
<seq>
値は、ランダムな 5 文字の英数字シーケンスになります。直前の出力に表示されるそれぞれのマシン設定デーモン Pod の Pod ログを表示するには、以下のコマンドを入力します。
oc logs <pod> -n openshift-machine-config-operator
$ oc logs <pod> -n openshift-machine-config-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここで、
pod
はマシン設定デーモン Pod の名前になります。- 直前のコマンドの出力で示されるログ内のエラーを解決します。
Pod がエラー状態ではないことを確認するには、以下のコマンドを入力します。
oc get pods --all-namespaces -o wide --sort-by='{.spec.nodeName}'
$ oc get pods --all-namespaces -o wide --sort-by='{.spec.nodeName}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ノードの Pod がエラー状態にある場合は、そのノードを再起動します。
以下の手順は、移行に成功し、クラスターの状態が正常である場合にのみ実行します。
Cluster Network Operator 設定オブジェクトから移行設定を削除するには、以下のコマンドを入力します。
oc patch Network.operator.openshift.io cluster --type='merge' \ --patch '{ "spec": { "migration": null } }'
$ oc patch Network.operator.openshift.io cluster --type='merge' \ --patch '{ "spec": { "migration": null } }'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OVN-Kubernetes 設定を削除するには、以下のコマンドを入力します。
oc patch Network.operator.openshift.io cluster --type='merge' \ --patch '{ "spec": { "defaultNetwork": { "ovnKubernetesConfig":null } } }'
$ oc patch Network.operator.openshift.io cluster --type='merge' \ --patch '{ "spec": { "defaultNetwork": { "ovnKubernetesConfig":null } } }'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OVN-Kubernetes ネットワークプロバイダー namespace を削除するには、以下のコマンドを入力します。
oc delete namespace openshift-ovn-kubernetes
$ oc delete namespace openshift-ovn-kubernetes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow