IBM Cloud Docs
Entfernen von OpenShift Data Foundation

Entfernen von OpenShift Data Foundation

Lesen Sie die folgenden Themen, um die Implementierung Ihrer OpenShift Data Foundation zu verwalten.

ODF aus Ihren Apps entfernen

Um die ODF aus Ihren Apps zu entfernen, können Sie Ihre App oder Bereitstellung und die entsprechenden PVCs löschen.

Wenn Sie die ODF und alle Ihre Daten vollständig entfernen möchten, können Sie Ihren Speichercluster entfernen.

  1. Listen Sie Ihre PVCs auf und notieren Sie den Namen der PVC und des entsprechenden PV, die Sie entfernen wollen.
    oc get pvc
    
  2. Entfernen Sie alle Pods, die den Persistent Volume Claim anhängen.
    1. Listen Sie alle Pods auf, die derzeit den PVC anhängen, den Sie löschen möchten. Wenn keine Pods zurückgegeben werden, verfügen Sie über keine Pods, die derzeit Ihren PVC verwenden.
      oc get pods --all-namespaces -o=jsonpath='{range .items[*]}{"\n"}{.metadata.name}{":\t"}{range .spec.volumes[*]}{.persistentVolumeClaim.claimName}{" "}{end}{end}' | grep "<pvc_name>"
      
      Beispielausgabe
      app    ocs-storagecluster-cephfs
      
    2. Entfernen Sie den Pod, der den PVC verwendet. Wenn der Pod Teil einer Bereitstellung ist, entfernen Sie die Bereitstellung.
      oc delete pod <pod_name>
      
      oc delete deployment <deployment_name>
      
    3. Überprüfen Sie, ob der Pod bzw. die Bereitstellung entfernt wurde.
      oc get pods
      
      oc get deployments
      
  3. Optional Löschen Sie den PVC. Durch das Löschen des PVC werden Ihre App-Daten vom Speicherdatenträger gelöscht.
    oc delete pvc <pvc_name>
    

Entfernen Sie Ihre angepasste ODF-Ressource

Führen Sie die folgenden Schritte aus, um die ODF-Ressourcen aus Ihrem Cluster zu entfernen.

Die folgenden Schritte führen zu Datenverlusten. Sichern Sie die Daten auf Ihren lokalen Datenträgern, bevor Sie Ihre ODF-Implementierung entfernen.

Wenn Sie die angepasste OcsCluster-Ressource aus Ihrem Cluster löschen, werden die folgenden Ressourcen gelöscht. Darüber hinaus kann es bei allen Apps, die auf Daten auf Ihren lokalen Datenträgern zugreifen müssen, zu Ausfallzeiten kommen.

  • ODF-Treiber-Pods.
  • Die PVCs MON und OSD.
  • Alle Daten von Ihren Datenträgern. Wenn Sie jedoch PVCs mithilfe der NooBaa-Speicherklasse erstellt haben und Ihre Apps Daten in den Sicherungsspeicher geschrieben haben, werden die Daten in Ihrem Sicherungsspeicher nicht gelöscht.
  1. Rufen Sie den Namen der angepassten OcsCluster-Ressource ab.
    oc get ocscluster
    
    Beispielausgabe für eine kundenspezifische Ressource mit der Bezeichnung ocscluster-vpc.
    NAME             AGE
    ocscluster-vpc   4s
    
  2. Löschen Sie die angepasste OcsCluster-Ressource. Ersetzen Sie <ocscluster_name> durch den Namen Ihrer angepassten Ressource.
    oc delete ocscluster <ocscluster_name>
    
    Beispielbefehl für eine kundenspezifische OcsCluster-Ressource mit der Bezeichnung ocscluster-vpc.
    oc delete ocscluster ocscluster-vpc
    
  3. Löschen Sie alle PVCs, die Sie erstellt haben.
    oc get pvc
    
  4. Optional Wenn Sie ODF nicht erneut installieren möchten, können Sie ODF-Add-on aus Ihrem Cluster entfernen.

ODF bereinigen

  1. Kopieren Sie eines der folgenden Bereinigungsskripte auf der Grundlage Ihres ODF-Einsatzes.
    • VPC oder Satellite mit dynamisch bereitgestellten Platten Bereinigen Sie die verbleibenden Kubernetes-Ressourcen aus Ihrem Cluster. Speichern Sie das folgende Script in einer Datei mit dem Namen cleanup.sh auf Ihrer lokalen Maschine.
      #!/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
      
      
    • Klassische Cluster oder Satellite-Cluster mit lokalen Platten Bereinigen Sie die verbleibenden Kubernetes-Ressourcen aus Ihrem Cluster. Speichern Sie das folgende Script in einer Datei mit dem Namen cleanup.sh auf Ihrer lokalen Maschine.
      #!/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. Führen Sie das Script cleanup.sh aus.
    sh ./cleanup.sh
    
  3. **Klassische Cluster oder Satellite-Cluster mit lokalen Platten Nachdem Sie das Bereinigungsscript ausgeführt haben, melden Sie sich bei jedem Workerknoten an und führen Sie die folgenden Befehle aus.
    1. Stellen Sie einen Debug-Pod bereit und führen Sie den Befehl chroot /host aus.
      oc debug node/<node_name> -- chroot /host
      
    2. Führen Sie den folgenden Befehl aus, um alle Dateien oder Verzeichnisse in den angegebenen Pfaden zu entfernen. Wiederholen Sie diesen Schritt für jeden Workerknoten, den Sie in der OCS-Konfiguration verwendet haben.
      rm -rvf /var/lib/rook /mnt/local-storage
      
      Beispielausgabe:
      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. Optional: Klassische Cluster oder Satellite-Cluster mit lokalen Platten Wenn Sie die lokalen Datenträger, die Sie in Ihrer Konfiguration verwendet haben, nicht mehr verwenden möchten, können Sie sie aus dem Cluster löschen. Listen Sie die lokalen PVs auf.
    oc get pv
    
    Beispielausgabe:
    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. Löschen Sie die lokalen PVs.
    oc delete pv <pv_name> <pv_name> <pv_name>
    
  6. Nach dem Löschen Ihrer PVCs und PVs müssen Sie auch die Speicherdatenträger aus Ihrem Konto löschen. Informationen zum Suchen und Entfernen nicht verwendeter Speicherdatenträger in Ihrem Konto finden Sie unter Warum sehe ich nach dem Löschen meines Clusters noch Gebühren für Blockspeichereinheiten?.

OpenShift Data Foundation-Add-on deinstallieren

Das Add-on für OpenShift Data Foundation über die Konsole deinstallieren

Führen Sie die folgenden Schritte aus, um das Add-on für die OpenShift Data Foundation aus Ihrem Cluster zu entfernen.

Wenn Sie alle ODF-Ressourcen und -Daten aus Ihrem Cluster entfernen wollen, entfernen Sie die CRDs, bevor Sie das Add-on deinstallieren.

  1. Wählen Sie in der Konsole den Cluster aus, für den Sie das Add-on OpenShift Data Foundation entfernen möchten.
  2. Scrollen Sie zu Ihren installierten Add-ons.
  3. Klicken Sie auf der OpenShift Data Foundation-Karte auf das Symbol Aktionen und anschließend auf Deinstallieren.

Add-on der OpenShift Data Foundation über die Befehlszeilenschnittstelle deinstallieren

Sie können das Add-on OpenShift Data Foundation über die Konsole oder die CLI von Ihrem Cluster deinstallieren.

Wenn Sie alle ODF-Ressourcen und -Daten aus Ihrem Cluster entfernen wollen, entfernen Sie die CRDs, bevor Sie das Add-on deinstallieren.

  1. Deinstallieren Sie das Add-on.
    ibmcloud oc cluster addon disable openshift-container-storage -c <cluster_name>
    
  2. Überprüfen Sie, dass das Add-on entfernt wurde.
    ibmcloud oc cluster addon ls -c <cluster_name>
    

Fehlerbehebung bei der ODF

Um die Informationen zur Fehlerbehebung bei der ODF zu erfassen, können Sie den Befehl oc adm must-gather verwenden und das ODF-Image angeben. Weitere Informationen finden Sie unter Clusterdaten zusammenstellen.

Beispielbefehl:

oc adm must-gather --image=registry.redhat.io/ocs4/ocs-must-gather-rhel8:latest --dest-dir=ocs_mustgather

Mit der Rook-Community-Toolbox können Sie Fehler beim Ceph-Cluster beheben. Weitere Informationen finden Sie in der Dokumentation Rook.

Weitere Informationen finden Sie in den allgemeinen Themen zur Fehlerbehebung.