IBM Cloud Docs
OpenShift Data Foundation の削除

OpenShift Data Foundation の削除

OpenShift Data Foundation デプロイメントを管理するには、以下のトピックを参照してください。

アプリから ODF を削除する

アプリから ODF を削除するには、アプリまたはデプロイメントと、対応する PVC を削除します。

ODF とすべてのデータを完全に削除する場合は、ストレージ・クラスターを削除できます。

  1. PVC をリストし、削除する PVC の名前および対応する PV をメモします。
    oc get pvc
    
  2. PVC をマウントするすべてのポッドを削除します。
    1. 削除する 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
      
    2. PVC を使用するポッドを削除します。 ポッドがデプロイメントの一部である場合は、デプロイメントを削除します。
      oc delete pod <pod_name>
      
      oc delete deployment <deployment_name>
      
    3. ポッドまたはデプロイメントが削除されたことを確認します。
      oc get pods
      
      oc get deployments
      
  3. オプション PVC を削除します。 PVC を削除すると、ストレージ・ボリュームからアプリのデータが削除されます。
    oc delete pvc <pvc_name>
    

ODF カスタム・リソースの削除

クラスターから ODF リソースを削除するには、以下の手順を実行します。

以下の手順を実行すると、データが失われます。 ODF デプロイメントを削除する前に、ローカル・ボリュームのデータをバックアップしてください。

クラスターから OcsCluster カスタム・リソースを削除すると、以下のリソースが削除されます。 また、ローカル・ボリュームのデータにアクセスする必要があるアプリでは、ダウン時間が発生する可能性があります。

  • ODF ドライバー・ポッド。
  • MON および OSD PVC。
  • ボリュームからのすべてのデータ。 ただし、NooBaa ストレージ・クラスを使用して PVC を作成し、アプリがバッキング・ストアにデータを書き込んでいた場合は、バッキング・ストアのデータは削除されません。
  1. OcsCluster カスタム・リソースの名前を取得します。
    oc get ocscluster
    
    カスタム・リソースの名前が ocscluster-vpc である場合の出力例。
    NAME             AGE
    ocscluster-vpc   4s
    
  2. OcsCluster カスタム・リソースを削除します。 <ocscluster_name> をカスタム・リソースの名前に置き換えます。
    oc delete ocscluster <ocscluster_name>
    
    OcsCluster カスタム・リソースの名前が ocscluster-vpc である場合のコマンド例。
    oc delete ocscluster ocscluster-vpc
    
  3. 作成した PVC を削除します。
    oc get pvc
    
  4. オプション ODF を再インストールしない場合は、クラスターから ODF アドオンを削除を実行できます。

ODF のクリーンアップ

  1. 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
      
  2. cleanup.sh スクリプトを実行します。
    sh ./cleanup.sh
    
  3. **ローカル・ディスクを使用するクラシック・クラスターまたは Satellite クラスター: クリーンアップ・スクリプトを実行したら、各ワーカー・ノードにログインして以下のコマンドを実行します。
    1. デバッグ・ポッドをデプロイし、chroot /host を実行します。
      oc debug node/<node_name> -- chroot /host
      
    2. 以下のコマンドを実行して、指定したパスのファイルやディレクトリーをすべて削除します。 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'
      
  4. オプション: ローカル・ディスクを使用するクラシック・クラスターまたは 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
    
  5. ローカル PV を削除します。
    oc delete pv <pv_name> <pv_name> <pv_name>
    
  6. PVC と PV を削除した後、アカウントからストレージ・ボリュームも削除する必要があります。 アカウント内の未使用のストレージ・ボリュームを見つけて削除するには、 クラスターの削除後にブロック・ストレージ・デバイスの料金が表示されるのはなぜですか? を参照してください。

OpenShift データ・ファウンデーション・アドオンのアンインストール

コンソールからの OpenShift Data Foundation アドオンのアンインストール

クラスターから OpenShift Data Foundation アドオンを削除するには、以下の手順を実行します。

クラスターからすべての ODF リソースとデータを削除する場合は、アドオンをアンインストールする前に CRD を削除 してください。

  1. コンソールから、 OpenShift Data Foundationアドオンを削除するクラスタを選択します。
  2. インストール済みのアドオンまでスクロールします。
  3. OpenShift Data Foundation カードで、 「アクション」 アイコンをクリックし、 「アンインストール」 をクリックします。

CLI からの OpenShift Data Foundation アドオンのアンインストール

コンソールまたはCLIを使用して、クラスタから OpenShift Data Foundationアドオンをアンインストールできます。

クラスターからすべての ODF リソースとデータを削除する場合は、アドオンをアンインストールする前に CRD を削除 してください。

  1. アドオンをアンインストールします。
    ibmcloud oc cluster addon disable openshift-container-storage -c <cluster_name>
    
  2. アドオンが削除されたことを確認します。
    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 のドキュメントを参照。

詳しくは、一般的なトラブルシューティングについてのトピックを参照してください。