Suppression d' OpenShift Data Foundation

Reportez-vous aux rubriques ci-dessous pour gérer votre déploiement OpenShift Data Foundation.

Retrait d'ODF de vos applications

Pour retirer ODF de vos applications, vous pouvez supprimer votre application ou votre déploiement et les réservations de volume persistant correspondantes.

Si vous souhaitez retirer intégralement ODF et toutes vos données, vous pouvez retirer votre cluster de stockage.

  1. Répertoriez vos réservations de volume persistant et notez les noms de la réservation de volume persistant et du volume persistant correspondant à supprimer.
    oc get pvc
    
  2. Supprimez les pods qui montent la PVC.
    1. Répertoriez tous les pods qui montent actuellement la réservation de volume persistant à supprimer. Si aucun pod n'est renvoyé, aucun pod n'utilise actuellement votre réservation de volume persistant.
        oc get pods --all-namespaces -o=jsonpath='{range .items[*]}{"\n"}{.metadata.name}{":\t"}{range .spec.volumes[*]}{.persistentVolumeClaim.claimName}{" "}{end}{end}' | grep "<pvc_name>"
        ```
        Exemple de sortie
        ```sh {: screen}
        app    ocs-storagecluster-cephfs
        ```
    2. Supprimez le pod utilisant la PVC. Si le pod fait partie d'un déploiement, retirez ce déploiement.
    ```sh {: pre}
        oc delete pod <pod_name>
        ```
        ```sh {: pre}
        oc delete deployment <deployment_name>
        ```
    3. Vérifiez que le pod ou le déploiement a été supprimé.
    ```sh {: pre}
        oc get pods
        ```
        ```sh {: pre}
        oc get deployments
        ```
    
  3. Facultatif : supprimez la réservation de volume persistant. Lorsque vous supprimez la réservation de volume persistant, vos données d'application sont supprimées du volume de stockage.
    oc delete pvc <pvc_name>
    

Retrait de la ressource personnalisée ODF

Pour retirer les ressources ODF de votre cluster, procédez comme suit :

Les étapes suivantes entraînent une perte de données. Sauvegardez les données sur vos volumes locaux avant de retirer votre déploiement ODF.

Lorsque vous supprimez la ressource personnalisée OcsCluster de votre cluster, les ressources répertoriées ci-après sont supprimées. De plus, toutes les applications qui requièrent un accès aux données de vos volumes locaux peuvent être indisponibles. - Nacelles de conducteur ODF. - Les PPV MON et OSD. - Toutes les données de vos volumes. Cependant, si vous avez créé des PVC à l'aide de la classe de stockage NooBaa et que vos applications ont écrit des données sur votre magasin de sauvegarde, celles-ci ne sont pas supprimées.

  1. Obtenez le nom de votre ressource personnalisée OcsCluster.
    oc get ocscluster
    
    Exemple de sortie pour une ressource personnalisée nommée ocscluster-vpc.
    NAME             AGE
    ocscluster-vpc   4s
    
  2. Supprimez votre ressource personnalisée OcsCluster. Remplacez <ocscluster_name> par le nom de votre ressource personnalisée.
    oc delete ocscluster <ocscluster_name>
    
    Exemple de commande pour une ressource personnalisée OcsCluster nommée ocscluster-vpc.
    oc delete ocscluster ocscluster-vpc
    
  3. Supprimez toutes les réservations de volume persistant que vous avez créées.
    oc get pvc
    
  4. Facultatif Si vous ne souhaitez pas réinstaller ODF, vous pouvez Supprimez le module complémentaire ODF de votre cluster.

Nettoyage d'ODF

  1. Copiez l'un des scripts de nettoyage ci-dessous en fonction de votre déploiement ODF.
    • VPC ou Satellite avec des disques mis à disposition de manière dynamique : nettoyez les ressources Kubernetes restantes sur votre cluster. Sauvegardez le script suivant dans un fichier appelé cleanup.sh sur la machine locale :
        #!/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
        ```
    * **Clusters classiques ou clusters Satellite avec disques locaux** : nettoyez les ressources Kubernetes restantes sur votre cluster. Sauvegardez le script suivant dans un fichier appelé `cleanup.sh` sur la machine locale :
    ```sh {: codeblock}
        #!/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. Exécutez le script cleanup.sh.
    sh ./cleanup.sh
    
  3. **Clusters classiques ou clusters Satellite avec disques locaux : après avoir exécuté le script de nettoyage, connectez-vous à chaque noeud worker et exécutez les commandes suivantes :
    1. Déployez un pod de débogage et exécutez chroot /host.
        oc debug node/<node_name> -- chroot /host
        ```
    1. Exécutez la commande suivante pour supprimer les fichiers ou répertoires dans les chemins spécifiés. Répétez cette étape pour chaque noeud worker que vous avez utilisé dans votre configuration OCS.
    ```sh {: codeblock}
        rm -rvf /var/lib/rook /mnt/local-storage
        ```
        Exemple de sortie :
        ```sh {: codeblock}
        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. Facultatif - Clusters classiques ou clusters Satellite avec des disques locaux : si vous ne souhaitez plus utiliser les volumes locaux que vous avez définis dans votre configuration, vous pouvez les supprimer du cluster. Répertoriez les volumes persistants locaux.
    oc get pv
    
    Exemple de sortie :
    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. Supprimez les volumes persistants locaux.
    oc delete pv <pv_name> <pv_name> <pv_name>
    
  6. Après avoir supprimé vos réservations de volume persistant et vos volumes persistants, vous devez également supprimer les volumes de stockage de votre compte. Pour localiser et supprimer des volumes de stockage inutilisés dans votre compte, voir Pourquoi est-ce que je vois toujours des frais pour les unités de stockage par blocs après la suppression de mon cluster?.

Désinstallation du module complémentaire OpenShift Data Foundation

Désinstallation du module complémentaire OpenShift Data Foundation à partir de la console

Pour retirer le module complémentaire OpenShift Data Foundation de votre cluster, procédez comme suit :

Si vous souhaitez supprimer toutes les ressources et données ODF de votre cluster, supprimez les CRD avant de désinstaller le module complémentaire.

  1. Dans la console, sélectionnez le cluster pour lequel vous souhaitez supprimer le module complémentaire « OpenShift Data Foundation ».
  2. Faites défiler jusqu'à vos modules complémentaires installés.
  3. Sur la carte OpenShift Data Foundation, cliquez sur l'icône Actions, puis sur Désinstaller.

Désinstallation du module complémentaire OpenShift Data Foundation à partir de l'interface CLI

Vous pouvez désinstaller le module complémentaire « OpenShift Data Foundation » de votre cluster à l'aide de la console ou de l'interface de ligne de commande (CLI).

Si vous souhaitez supprimer toutes les ressources et données ODF de votre cluster, supprimez les CRD avant de désinstaller le module complémentaire.

  1. Désinstallez le module complémentaire.
    ibmcloud oc cluster addon disable openshift-container-storage -c <cluster_name>
    
  2. Vérifiez que le module complémentaire a bien été retiré.
    ibmcloud oc cluster addon ls -c <cluster_name>
    

Identification et résolution des problèmes liés à ODF

Si vous souhaitez collecter des informations pour identifier et résoudre des problèmes liés à ODF, vous pouvez utiliser la commande oc adm must-gather et indiquer l'image ODF. Pour plus d'informations, voir Gathering data about your cluster.

Exemple de commande :

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

Vous pouvez utiliser la boîte à outils de la communauté Rook pour déboguer les problèmes liés à votre cluster Ceph. Pour plus d'informations, consultez la documentation d' Rook.

Pour plus d'informations, reportez-vous aux rubriques d'identification et de résolution des problèmes courants.