3.4. OpenShift Data Foundation のアンインストール
3.4.1. 外部ストレージシステムからの OpenShift Data Foundation のアンインストール リンクのコピーリンクがクリップボードにコピーされました!
このセクションの手順に従って OpenShift Data Foundation をアンインストールします。OpenShift Data Foundation をアンインストールしても、外部クラスターから RBD プールが削除されたり、外部の Red Hat 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
前提条件
- OpenShift Data Foundation クラスターの状態が正常である。リソースまたはノードの不足により一部の Pod が正常に終了されないと、アンインストールプロセスに失敗する可能性があります。クラスターの状態が正常でない場合は、OpenShift Data Foundation をアンインストールする前に Red Hat カスタマーサポートにお問い合わせください。
- アプリケーションが OpenShift Data Foundation によって提供されるストレージクラスを使用して永続ボリューム要求 (PVC) またはオブジェクトバケット要求 (OBC) を消費していない。
手順
OpenShift Data Foundation を使用しているボリュームスナップショットを削除します。
すべての namespace からボリュームスナップショットをリスト表示します。
$ oc get volumesnapshot --all-namespaces直前のコマンドの出力から、OpenShift Data Foundation を使用しているボリュームスナップショットを特定し、削除します。
$ oc delete volumesnapshot <VOLUME-SNAPSHOT-NAME> -n <NAMESPACE>
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 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 を無視します。
#!/bin/bash RBD_PROVISIONER="openshift-storage.rbd.csi.ceph.com" CEPHFS_PROVISIONER="openshift-storage.cephfs.csi.ceph.com" NOOBAA_PROVISIONER="openshift-storage.noobaa.io/obc" RGW_PROVISIONER="openshift-storage.ceph.rook.io/bucket" NOOBAA_DB_PVC="noobaa-db" NOOBAA_BACKINGSTORE_PVC="noobaa-default-backing-store-noobaa-pvc" # Find all the OCS StorageClasses OCS_STORAGECLASSES=$(oc get storageclasses | grep -e "$RBD_PROVISIONER" -e "$CEPHFS_PROVISIONER" -e "$NOOBAA_PROVISIONER" -e "$RGW_PROVISIONER" | awk '{print $1}') # List PVCs in each of the StorageClasses for SC in $OCS_STORAGECLASSES do echo "======================================================================" echo "$SC StorageClass PVCs and OBCs" echo "======================================================================" oc get pvc --all-namespaces --no-headers 2>/dev/null | grep $SC | grep -v -e "$NOOBAA_DB_PVC" -e "$NOOBAA_BACKINGSTORE_PVC" oc get obc --all-namespaces --no-headers 2>/dev/null | grep $SC echo doneOBC を削除します。
$ oc delete obc <obc name> -n <project name>PVC を削除します。
$ oc delete pvc <pvc name> -n <project-name>クラスターに作成されているカスタムバッキングストア、バケットクラスなどを削除していることを確認します。
Storage Cluster オブジェクトを削除し、関連付けられたリソースが削除されるのを待機します。
$ oc delete -n openshift-storage storagesystem --all --wait=truenamespace を削除し、削除が完了するまで待機します。
openshift-storageがアクティブなプロジェクトである場合は、別のプロジェクトに切り替える必要があります。以下に例を示します。
$ oc project default $ oc delete project openshift-storage --wait=true --timeout=5m以下のコマンドが
NotFoundエラーを返すと、プロジェクトが削除されます。$ oc get project openshift-storage注記OpenShift Data Foundation をアンインストールするときに、namespace が完全に削除されずに
Terminating状態のままになる場合は、トラブルシューティングおよびアンインストール時の残りのリソースの削除 の手順を実行して、namespace の終了をブロックしているオブジェクトを特定してください。OpenShift Data Foundation を使用してプロビジョニングした PV がすべて削除されていることを確認します。
Released状態のままの PV がある場合は、これを削除します。$ oc get pv $ oc delete pv <pv name>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=5mOpenShift Data Foundation が完全にアンインストールされていることを確認するには、以下を実行します。
- OpenShift Container Platform Web コンソールで、Storage をクリックします。
- OpenShift Data Foundation が Storage に表示されていないことを確認します。