第13章 マネージドクラスター間のアプリケーションの再配置
再配置操作はフェイルオーバーと非常に似ています。再配置はアプリケーションベースで、DRPlacementControl を使用して再配置をトリガーします。フォールバックの主な違いは、アプリケーションが failoverCluster でスケールダウンされるため、NetworkFence を作成する必要がないことです。
手順
NetworkFence リソースを削除し、
Fencingを無効にします。フォールバックまたは再配置アクションを成功させる前に、プライマリーマネージドクラスターの NetworkFence を削除する必要があります。
セカンダリーマネージドクラスターでこのコマンドを実行し、前のセクションで作成した NetworkFenceYAML ファイル名に合わせて <cluster1> を変更します。
oc delete -f network-fence-<cluster1>.yaml
$ oc delete -f network-fence-<cluster1>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
networkfence.csiaddons.openshift.io "network-fence-ocp4perf1" deleted
networkfence.csiaddons.openshift.io "network-fence-ocp4perf1" deletedCopy to Clipboard Copied! Toggle word wrap Toggle overflow Fencedになっている OpenShift Container Platform ノードを再起動します。以前のフェンスされたクラスター (この場合はプライマリーマネージドクラスター) 上の一部のアプリケーション Pod が異常な状態にあるため (例: CreateContainerError、CrashLoopBackOff)、この手順が必要です。これは、すべてのワーカー OpenShift ノードを一度に 1 つずつ再起動することで最も簡単に修正できます。
注記OpenShift Web Console ダッシュボードと 概要 ページを使用して、アプリケーションと外部ストレージの正常性を評価することもできます。OpenShiftDataFoundation ダッシュボードの詳細は、Storage
Data Foundation に移動すると表示されます。 すべての OpenShift ノードが再起動されてステータスが
Readyになった後、プライマリーマネージドクラスターでこのコマンドを実行して、すべての Pod が正常な状態にあることを確認します。このクエリーの出力はゼロ Pod である必要があります。oc get pods -A | egrep -v 'Running|Completed'
$ oc get pods -A | egrep -v 'Running|Completed'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
NAMESPACE NAME READY STATUS RESTARTS AGE
NAMESPACE NAME READY STATUS RESTARTS AGECopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要ストレージ通信が切断されたために Pod がまだ異常な状態にある場合は、続行する前にトラブルシューティングを行って解決してください。ストレージクラスターは OpenShift の外部にあるため、OpenShift アプリケーションを正常に動作させるには、サイトの停止後にストレージクラスターを適切に復元する必要もあります。
DRPolicy を
Unfencedステータスに変更します。ODR HUB 演算子が、プライマリーマネージドクラスターの NetworkFence が削除されたことを知るには、新しい
Unfencedクラスターの DRPolicy を変更する必要があります。ハブクラスターの DRPolicy を編集し、<cluster1> (例:
ocp4perf1) をManuallyFencedからUnfencedに変更します。oc edit drpolicy odr-policy
$ oc edit drpolicy odr-policyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
drpolicy.ramendr.openshift.io/odr-policy edited
drpolicy.ramendr.openshift.io/odr-policy editedCopy to Clipboard Copied! Toggle word wrap Toggle overflow プライマリーマネージドクラスターのハブクラスターで、DRPolicy のステータスが
Unfencedに変更されていることを確認します。oc get drpolicies.ramendr.openshift.io odr-policy -o yaml | grep -A 6 drClusters
$ oc get drpolicies.ramendr.openshift.io odr-policy -o yaml | grep -A 6 drClustersCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
DRPlacementControl を failback に変更します
- ハブクラスターで Installed Operators に移動し、Openshift DR Hub Operator をクリックします。
- DRPlacementControl タブをクリックします。
-
DRPC
busybox-drpcをクリックしてから、YAML ビューをクリックします。 action を
Relocateに変更しますDRPlacementControl modify action to Relocate
- Save をクリックします。
アプリケーション
busyboxがプライマリーマネージドクラスターで実行されているかどうかを確認します。フェイルオーバー操作の前にアプリケーションが実行していた YAML ファイルで指定されている preferredClusterocp4perf1へのフェイルバックが行われます。oc get pods,pvc -n busybox-sample
$ oc get pods,pvc -n busybox-sampleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
NAME READY STATUS RESTARTS AGE pod/busybox 1/1 Running 0 60s NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE persistentvolumeclaim/busybox-pvc Bound pvc-79f2a74d-6e2c-48fb-9ed9-666b74cfa1bb 5Gi RWO ocs-storagecluster-ceph-rbd 61s
NAME READY STATUS RESTARTS AGE pod/busybox 1/1 Running 0 60s NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE persistentvolumeclaim/busybox-pvc Bound pvc-79f2a74d-6e2c-48fb-9ed9-666b74cfa1bb 5Gi RWO ocs-storagecluster-ceph-rbd 61sCopy to Clipboard Copied! Toggle word wrap Toggle overflow busyboxがセカンダリーマネージドクラスターで実行しているかどうかを確認します。busybox アプリケーションは、このマネージドクラスターでは実行しないようにしてください。oc get pods,pvc -n busybox-sample
$ oc get pods,pvc -n busybox-sampleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
No resources found in busybox-sample namespace.
No resources found in busybox-sample namespace.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
リリースノートの 既知の問題 に記載されている既知の Metro-DR の問題に注意してください。