OpenShift Data Foundation の削除
OpenShift Data Foundation デプロイメントを管理するには、以下のトピックを参照してください。
アプリから ODF を削除する
アプリから ODF を削除するには、アプリまたはデプロイメントと、対応する PVC を削除します。
ODF とすべてのデータを完全に削除する場合は、ストレージ・クラスターを削除できます。
- PVC をリストし、削除する PVC の名前および対応する PV をメモします。
oc get pvc
- PVC をマウントするすべてのポッドを削除します。
- 削除する PVC を現在マウントしているポッドをすべてリストします。 ポッドが返されなければ、現在その PVC を使用しているポッドはありません。
出力例oc get pods --all-namespaces -o=jsonpath='{range .items[*]}{"\n"}{.metadata.name}{":\t"}{range .spec.volumes[*]}{.persistentVolumeClaim.claimName}{" "}{end}{end}' | grep "<pvc_name>"
app ocs-storagecluster-cephfs
- PVC を使用するポッドを削除します。 ポッドがデプロイメントの一部である場合は、デプロイメントを削除します。
oc delete pod <pod_name>
oc delete deployment <deployment_name>
- ポッドまたはデプロイメントが削除されたことを確認します。
oc get pods
oc get deployments
- 削除する PVC を現在マウントしているポッドをすべてリストします。 ポッドが返されなければ、現在その PVC を使用しているポッドはありません。
- オプション PVC を削除します。 PVC を削除すると、ストレージ・ボリュームからアプリのデータが削除されます。
oc delete pvc <pvc_name>
ODF カスタム・リソースの削除
クラスターから ODF リソースを削除するには、以下の手順を実行します。
以下の手順を実行すると、データが失われます。 ODF デプロイメントを削除する前に、ローカル・ボリュームのデータをバックアップしてください。
クラスターから OcsCluster
カスタム・リソースを削除すると、以下のリソースが削除されます。 また、ローカル・ボリュームのデータにアクセスする必要があるアプリでは、ダウン時間が発生する可能性があります。
- ODF ドライバー・ポッド。
- MON および OSD PVC。
- ボリュームからのすべてのデータ。 ただし、NooBaa ストレージ・クラスを使用して PVC を作成し、アプリがバッキング・ストアにデータを書き込んでいた場合は、バッキング・ストアのデータは削除されません。
OcsCluster
カスタム・リソースの名前を取得します。
カスタム・リソースの名前がoc get ocscluster
ocscluster-vpc
である場合の出力例。NAME AGE ocscluster-vpc 4s
OcsCluster
カスタム・リソースを削除します。<ocscluster_name>
をカスタム・リソースの名前に置き換えます。oc delete ocscluster <ocscluster_name>
OcsCluster
カスタム・リソースの名前がocscluster-vpc
である場合のコマンド例。oc delete ocscluster ocscluster-vpc
- 作成した PVC を削除します。
oc get pvc
- オプション ODF を再インストールしない場合は、クラスターから ODF アドオンを削除を実行できます。
ODF のクリーンアップ
- ODF デプロイメントに基づいて、以下のクリーンアップ・スクリプトのいずれかをコピーします。
- 動的にプロビジョンされるディスクを使用する VPC または Satellite: 残りの Kubernetes リソースをクラスターからクリーンアップします。 以下のスクリプトを
cleanup.sh
という名前のファイルにしてローカル・マシンに保存します。#!/bin/bash ocscluster_name=`oc get ocscluster | awk 'NR==2 {print $1}'` oc delete ocscluster --all --wait=false kubectl patch ocscluster/$ocscluster_name -p '{"metadata":{"finalizers":[]}}' --type=merge oc delete ns openshift-storage --wait=false sleep 20 kubectl -n openshift-storage patch persistentvolumeclaim/db-noobaa-db-0 -p '{"metadata":{"finalizers":[]}}' --type=merge kubectl -n openshift-storage patch cephblockpool.ceph.rook.io/ocs-storagecluster-cephblockpool -p '{"metadata":{"finalizers":[]}}' --type=merge kubectl -n openshift-storage patch cephcluster.ceph.rook.io/ocs-storagecluster-cephcluster -p '{"metadata":{"finalizers":[]}}' --type=merge kubectl -n openshift-storage patch cephfilesystem.ceph.rook.io/ocs-storagecluster-cephfilesystem -p '{"metadata":{"finalizers":[]}}' --type=merge kubectl -n openshift-storage patch cephobjectstore.ceph.rook.io/ocs-storagecluster-cephobjectstore -p '{"metadata":{"finalizers":[]}}' --type=merge kubectl -n openshift-storage patch cephobjectstoreuser.ceph.rook.io/noobaa-ceph-objectstore-user -p '{"metadata":{"finalizers":[]}}' --type=merge kubectl -n openshift-storage patch cephobjectstoreuser.ceph.rook.io/ocs-storagecluster-cephobjectstoreuser -p '{"metadata":{"finalizers":[]}}' --type=merge kubectl -n openshift-storage patch noobaa/noobaa -p '{"metadata":{"finalizers":[]}}' --type=merge kubectl -n openshift-storage patch backingstores.noobaa.io/noobaa-default-backing-store -p '{"metadata":{"finalizers":[]}}' --type=merge kubectl -n openshift-storage patch bucketclasses.noobaa.io/noobaa-default-bucket-class -p '{"metadata":{"finalizers":[]}}' --type=merge kubectl -n openshift-storage patch storagecluster.ocs.openshift.io/ocs-storagecluster -p '{"metadata":{"finalizers":[]}}' --type=merge sleep 20 oc delete pods -n openshift-storage --all --force --grace-period=0 sleep 20 for item in `oc get csiaddonsnodes.csiaddons.openshift.io -n openshift-storage| awk 'NR>1 {print $1}'`; do kubectl -n openshift-storage patch csiaddonsnodes.csiaddons.openshift.io/$item -p '{"metadata":{"finalizers":[]}}' --type=merge done kubectl -n openshift-storage patch configmap/rook-ceph-mon-endpoints -p '{"metadata":{"finalizers":[]}}' --type=merge kubectl -n openshift-storage patch secret/rook-ceph-mon -p '{"metadata":{"finalizers":[]}}' --type=merge kubectl -n openshift-storage patch storagesystems.odf.openshift.io/ocs-storagecluster-storagesystem -p '{"metadata":{"finalizers":[]}}' --type=merge
- ローカル・ディスクを使用するクラシック・クラスターまたは Satellite クラスター: 残りの Kubernetes リソースをクラスターからクリーンアップします。 以下のスクリプトを
cleanup.sh
という名前のファイルにしてローカル・マシンに保存します。#!/bin/bash ocscluster_name=`oc get ocscluster | awk 'NR==2 {print $1}'` oc delete ocscluster --all --wait=false kubectl patch ocscluster/$ocscluster_name -p '{"metadata":{"finalizers":[]}}' --type=merge oc delete ns openshift-storage --wait=false sleep 20 kubectl -n openshift-storage patch persistentvolumeclaim/db-noobaa-db-0 -p '{"metadata":{"finalizers":[]}}' --type=merge kubectl -n openshift-storage patch cephblockpool.ceph.rook.io/ocs-storagecluster-cephblockpool -p '{"metadata":{"finalizers":[]}}' --type=merge kubectl -n openshift-storage patch cephcluster.ceph.rook.io/ocs-storagecluster-cephcluster -p '{"metadata":{"finalizers":[]}}' --type=merge kubectl -n openshift-storage patch cephfilesystem.ceph.rook.io/ocs-storagecluster-cephfilesystem -p '{"metadata":{"finalizers":[]}}' --type=merge kubectl -n openshift-storage patch cephobjectstore.ceph.rook.io/ocs-storagecluster-cephobjectstore -p '{"metadata":{"finalizers":[]}}' --type=merge kubectl -n openshift-storage patch cephobjectstoreuser.ceph.rook.io/noobaa-ceph-objectstore-user -p '{"metadata":{"finalizers":[]}}' --type=merge kubectl -n openshift-storage patch cephobjectstoreuser.ceph.rook.io/ocs-storagecluster-cephobjectstoreuser -p '{"metadata":{"finalizers":[]}}' --type=merge kubectl -n openshift-storage patch noobaa/noobaa -p '{"metadata":{"finalizers":[]}}' --type=merge kubectl -n openshift-storage patch backingstores.noobaa.io/noobaa-default-backing-store -p '{"metadata":{"finalizers":[]}}' --type=merge kubectl -n openshift-storage patch bucketclasses.noobaa.io/noobaa-default-bucket-class -p '{"metadata":{"finalizers":[]}}' --type=merge kubectl -n openshift-storage patch storagecluster.ocs.openshift.io/ocs-storagecluster -p '{"metadata":{"finalizers":[]}}' --type=merge sleep 20 oc delete pods -n openshift-storage --all --force --grace-period=0 if oc get po -n openshift-local-storage|grep -operator; then LOCAL_NS=openshift-local-storage else LOCAL_NS=local-storage fi oc delete ns $LOCAL_NS --wait=false sleep 20 kubectl -n $LOCAL_NS patch localvolume.local.storage.openshift.io/local-block -p '{"metadata":{"finalizers":[]}}' --type=merge kubectl -n $LOCAL_NS patch localvolume.local.storage.openshift.io/local-file -p '{"metadata":{"finalizers":[]}}' --type=merge sleep 20 oc delete pods -n $LOCAL_NS --all --force --grace-period=0 for item in `oc get csiaddonsnodes.csiaddons.openshift.io -n openshift-storage| awk 'NR>1 {print $1}'`; do kubectl -n openshift-storage patch csiaddonsnodes.csiaddons.openshift.io/$item -p '{"metadata":{"finalizers":[]}}' --type=merge done kubectl -n openshift-storage patch configmap/rook-ceph-mon-endpoints -p '{"metadata":{"finalizers":[]}}' --type=merge kubectl -n openshift-storage patch secret/rook-ceph-mon -p '{"metadata":{"finalizers":[]}}' --type=merge kubectl -n openshift-storage patch storagesystems.odf.openshift.io/ocs-storagecluster-storagesystem -p '{"metadata":{"finalizers":[]}}' --type=merge
- 動的にプロビジョンされるディスクを使用する VPC または Satellite: 残りの Kubernetes リソースをクラスターからクリーンアップします。 以下のスクリプトを
cleanup.sh
スクリプトを実行します。sh ./cleanup.sh
- **ローカル・ディスクを使用するクラシック・クラスターまたは Satellite クラスター: クリーンアップ・スクリプトを実行したら、各ワーカー・ノードにログインして以下のコマンドを実行します。
- デバッグ・ポッドをデプロイし、
chroot /host
を実行します。oc debug node/<node_name> -- chroot /host
- 以下のコマンドを実行して、指定したパスのファイルやディレクトリーをすべて削除します。 OCS 構成で使用したワーカー・ノードごとに、この手順を繰り返します。
出力例:rm -rvf /var/lib/rook /mnt/local-storage
removed '/var/lib/rook/openshift-storage/log/ocs-deviceset-0-data-0-6fgp6/ceph-volume.log' removed directory: '/var/lib/rook/openshift-storage/log/ocs-deviceset-0-data-0-6fgp6' removed directory: '/var/lib/rook/openshift-storage/log' removed directory: '/var/lib/rook/openshift-storage/crash/posted' removed directory: '/var/lib/rook/openshift-storage/crash' removed '/var/lib/rook/openshift-storage/client.admin.keyring' removed '/var/lib/rook/openshift-storage/openshift-storage.config' removed directory: '/var/lib/rook/openshift-storage' removed directory: '/var/lib/rook' removed '/mnt/local-storage/localblock/nvme3n1' removed directory: '/mnt/local-storage/localblock' removed '/mnt/local-storage/localfile/nvme2n1' removed directory: '/mnt/local-storage/localfile' removed directory: '/mnt/local-storage'
- デバッグ・ポッドをデプロイし、
- オプション: ローカル・ディスクを使用するクラシック・クラスターまたは Satellite クラスター: 構成で使用していたローカル・ボリュームをこれ以上使用しない場合は、クラスターから削除できます。 ローカル PV をリストします。
出力例:oc get pv
local-pv-180cfc58 139Gi RWO Delete Available localfile 11m local-pv-67f21982 139Gi RWO Delete Available localfile 12m local-pv-80c5166 100Gi RWO Delete Available localblock 12m local-pv-9b049705 139Gi RWO Delete Available localfile 12m local-pv-b09e0279 100Gi RWO Delete Available localblock 12m local-pv-f798e570 100Gi RWO Delete Available localblock 12m
- ローカル PV を削除します。
oc delete pv <pv_name> <pv_name> <pv_name>
- PVC と PV を削除した後、アカウントからストレージ・ボリュームも削除する必要があります。 アカウント内の未使用のストレージ・ボリュームを見つけて削除するには、 クラスターの削除後にブロック・ストレージ・デバイスの料金が表示されるのはなぜですか? を参照してください。
OpenShift データ・ファウンデーション・アドオンのアンインストール
コンソールからの OpenShift Data Foundation アドオンのアンインストール
クラスターから OpenShift Data Foundation アドオンを削除するには、以下の手順を実行します。
クラスターからすべての ODF リソースとデータを削除する場合は、アドオンをアンインストールする前に CRD を削除 してください。
- コンソールから、 OpenShift Data Foundationアドオンを削除するクラスタを選択します。
- インストール済みのアドオンまでスクロールします。
- OpenShift Data Foundation カードで、 「アクション」 アイコンをクリックし、 「アンインストール」 をクリックします。
CLI からの OpenShift Data Foundation アドオンのアンインストール
コンソールまたはCLIを使用して、クラスタから OpenShift Data Foundationアドオンをアンインストールできます。
クラスターからすべての ODF リソースとデータを削除する場合は、アドオンをアンインストールする前に CRD を削除 してください。
- アドオンをアンインストールします。
ibmcloud oc cluster addon disable openshift-container-storage -c <cluster_name>
- アドオンが削除されたことを確認します。
ibmcloud oc cluster addon ls -c <cluster_name>
ODF のトラブルシューティング
ODF のトラブルシューティングのために情報を収集するには、oc adm must-gather
コマンドを使用して ODF イメージを指定します。 詳しくは、Gathering cluster data を参照してください。
コマンド例:
oc adm must-gather --image=registry.redhat.io/ocs4/ocs-must-gather-rhel8:latest --dest-dir=ocs_mustgather
Rook コミュニティー・ツールボックスを使用して、Ceph クラスターの問題をデバッグできます。 詳しくは、 Rook のドキュメントを参照。
詳しくは、一般的なトラブルシューティングについてのトピックを参照してください。