第4章 外部ストレージシステムからの OpenShift Data Foundation のアンインストール
このセクションの手順に従って OpenShift Data Foundation をアンインストールします。OpenShift Data Foundation をアンインストールしても、外部クラスターから RBD プールが削除されたり、外部の RedHat Ceph Storage クラスターがアンインストールされたりしません。
アノテーションのアンインストール
Storage Cluster のアノテーションは、アンインストールプロセスの動作を変更するために使用されます。アンインストールの動作を定義するために、ストレージクラスターに以下の 2 つのアノテーションが導入されました。
-
uninstall.ocs.openshift.io/cleanup-policy: delete -
uninstall.ocs.openshift.io/mode: graceful
uninstall.ocs.openshift.io/cleanup-policy は外部モードには適用できません。
以下の表は、これらのアノテーションで使用できるさまざまな値に関する情報を示しています。
| アノテーション | 値 | デフォルト | 動作 |
|---|---|---|---|
| cleanup-policy | delete | はい |
Rook は物理ドライブおよび |
| cleanup-policy | Retain | いいえ |
Rook は物理ドライブおよび |
| mode | graceful | はい | Rook および NooBaa は PVC および OBC が管理者/ユーザーによって削除されるまでアンインストールプロセスを一時停止します。 |
| mode | forced | いいえ | Rook および NooBaa は、Rook および NooBaa を使用してプロビジョニングされた PVC/OBC がそれぞれ存在している場合でもアンインストールを続行します。 |
以下のコマンドを使用してアノテーションの値を編集し、アンインストールモードを変更できます。
oc annotate storagecluster ocs-external-storagecluster -n openshift-storage uninstall.ocs.openshift.io/mode="forced" --overwrite storagecluster.ocs.openshift.io/ocs-external-storagecluster annotated
$ oc annotate storagecluster ocs-external-storagecluster -n openshift-storage uninstall.ocs.openshift.io/mode="forced" --overwrite
storagecluster.ocs.openshift.io/ocs-external-storagecluster annotated
前提条件
- OpenShift Data Foundation クラスターの状態が正常である。リソースまたはノードの不足により一部の Pod が正常に終了されないと、アンインストールプロセスに失敗する可能性があります。クラスターの状態が正常でない場合は、OpenShift Data Foundation をアンインストールする前に Red Hat カスタマーサポートにお問い合わせください。
- アプリケーションが OpenShift Data Foundation によって提供されるストレージクラスを使用して永続ボリューム要求 (PVC) またはオブジェクトバケット要求 (OBC) を消費していない。
手順
OpenShift Data Foundation を使用しているボリュームスナップショットを削除します。
すべての namespace からボリュームスナップショットをリスト表示します。
oc get volumesnapshot --all-namespaces
$ oc get volumesnapshot --all-namespacesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 直前のコマンドの出力から、OpenShift Data Foundation を使用しているボリュームスナップショットを特定し、削除します。
oc delete volumesnapshot <VOLUME-SNAPSHOT-NAME> -n <NAMESPACE>
$ oc delete volumesnapshot <VOLUME-SNAPSHOT-NAME> -n <NAMESPACE>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
OpenShift Data Foundation を使用している PVC および OBC を削除します。
デフォルトのアンインストールモード (graceful) では、アンインストーラーは OpenShift Data Foundation を使用するすべての PVC および OBC が削除されるまで待機します。
PVC を事前に削除せずに Storage Cluster を削除する場合は、アンインストールモードのアノテーションを forced に設定し、この手順を省略できます。これを実行すると、孤立した PVC および OBC がシステムに作成されます。
OpenShift Data Foundation を使用して、OpenShift Container Platform モニタリングスタック PVC を削除します。
OpenShift Data Foundation を使用して、OpenShift Container Platform レジストリー PVC を削除します。
OpenShift Data Foundation からの OpenShift Container Platform レジストリーの削除 を参照してください。
OpenShift Data Foundation を使用して、OpenShift Container Platform ロギング PVC を削除します。
OpenShift Data Foundation からのクラスターロギング Operator の削除 を参照してください。
OpenShift Data Foundation を使用してプロビジョニングした PVC および OBC を削除します。
以下に、OpenShift Data Foundation を使用してプロビジョニングされる PVC および OBC を特定するサンプルスクリプトを示します。このスクリプトは、OpenShift Data Foundation により内部で使用される PVC および OBC を無視します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OBC を削除します。
oc delete obc <obc name> -n <project name>
$ oc delete obc <obc name> -n <project name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow PVC を削除します。
oc delete pvc <pvc name> -n <project-name>
$ oc delete pvc <pvc name> -n <project-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow クラスターに作成されているカスタムバッキングストア、バケットクラスなどを削除していることを確認します。
Storage Cluster オブジェクトを削除し、関連付けられたリソースが削除されるのを待機します。
oc delete -n openshift-storage storagesystem --all --wait=true
$ oc delete -n openshift-storage storagesystem --all --wait=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow namespace を削除し、削除が完了するまで待機します。
openshift-storageがアクティブなプロジェクトである場合は、別のプロジェクトに切り替える必要があります。以下に例を示します。
oc project default oc delete project openshift-storage --wait=true --timeout=5m
$ oc project default $ oc delete project openshift-storage --wait=true --timeout=5mCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドが
NotFoundエラーを返すと、プロジェクトが削除されます。oc get project openshift-storage
$ oc get project openshift-storageCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記OpenShift Data Foundation のアンインストール時に、namespace が完全に削除されず、
Terminating状態のままである場合は、トラブルシューティングおよびアンインストール時の残りのリソースの削除 の記事に記載の手順を実行して namespace の終了をブロックしているオブジェクトを特定します。OpenShift Data Foundation を使用してプロビジョニングした PV がすべて削除されていることを確認します。
Released状態のままの PV がある場合は、これを削除します。oc get pv oc delete pv <pv name>
$ oc get pv $ oc delete pv <pv name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow CustomResourceDefinitionsを削除します。oc delete crd backingstores.noobaa.io bucketclasses.noobaa.io cephblockpools.ceph.rook.io cephclusters.ceph.rook.io cephfilesystems.ceph.rook.io cephnfses.ceph.rook.io cephobjectstores.ceph.rook.io cephobjectstoreusers.ceph.rook.io noobaas.noobaa.io ocsinitializations.ocs.openshift.io storageclusters.ocs.openshift.io cephclients.ceph.rook.io cephobjectrealms.ceph.rook.io cephobjectzonegroups.ceph.rook.io cephobjectzones.ceph.rook.io cephrbdmirrors.ceph.rook.io storagesystems.odf.openshift.io --wait=true --timeout=5m
$ oc delete crd backingstores.noobaa.io bucketclasses.noobaa.io cephblockpools.ceph.rook.io cephclusters.ceph.rook.io cephfilesystems.ceph.rook.io cephnfses.ceph.rook.io cephobjectstores.ceph.rook.io cephobjectstoreusers.ceph.rook.io noobaas.noobaa.io ocsinitializations.ocs.openshift.io storageclusters.ocs.openshift.io cephclients.ceph.rook.io cephobjectrealms.ceph.rook.io cephobjectzonegroups.ceph.rook.io cephobjectzones.ceph.rook.io cephrbdmirrors.ceph.rook.io storagesystems.odf.openshift.io --wait=true --timeout=5mCopy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift Data Foundation が完全にアンインストールされていることを確認するには、以下を実行します。
- OpenShift Container Platform Web コンソールで、Storage をクリックします。
- OpenShift Data Foundation が Storage に表示されていないことを確認します。
4.1. OpenShift Data Foundation からのモニタリングスタックの削除 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、モニタリングスタックを OpenShift Data Foundation からクリーンアップします。
モニタリングスタックの設定の一部として作成される PVC は openshift-monitoring namespace に置かれます。
前提条件
PVC が OpenShift Container Platform モニタリングスタックを使用できるように設定されている。
詳細は、モニタリングスタックの設定 を参照してください。
手順
openshift-monitoringnamespace で現在実行されている Pod および PVC をリスト表示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow モニタリング
configmapを編集します。oc -n openshift-monitoring edit configmap cluster-monitoring-config
$ oc -n openshift-monitoring edit configmap cluster-monitoring-configCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の例が示すように、OpenShift Data Foundation ストレージクラスを参照する
configセクションを削除し、これを保存します。Expand Before editing
Copy to Clipboard Copied! Toggle word wrap Toggle overflow After editing
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、
alertmanagerMainおよびprometheusK8sモニタリングコンポーネントは OpenShift Data Foundation PVC を使用しています。PVC を使用する Pod をリスト表示します。
この例では、PVC を使用していた
alertmanagerMainおよびprometheusK8sPod はTerminating状態にあります。これらの Pod が OpenShift Data Foundation PVC を使用しなくなった後に PVC を削除できます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 関連する PVC を削除します。ストレージクラスを使用するすべての PVC を削除してください。
oc delete -n openshift-monitoring pvc <pvc-name> --wait=true --timeout=5m
$ oc delete -n openshift-monitoring pvc <pvc-name> --wait=true --timeout=5mCopy to Clipboard Copied! Toggle word wrap Toggle overflow