Eliminación de « OpenShift » Data Foundation

Revise los temas siguientes para gestionar el despliegue de OpenShift Data Foundation.

Eliminación de ODF de sus apps

Para eliminar ODF de sus apps, puede suprimir su app o despliegue y las PVC correspondientes.

Si desea eliminar completamente ODF y todos los datos, puede eliminar el clúster de almacenamiento.

  1. Liste las PVC y anote el nombre de la PVC y el PV correspondiente que desea eliminar.
    oc get pvc
    
  2. Elimine los pods que montan la PVC.
    1. Obtenga una lista de todos los pods que actualmente montan la PVC que desea suprimir. Si no se devuelven pods, es que no tiene ningún pod que utilice actualmente la PVC.
        oc get pods --all-namespaces -o=jsonpath='{range .items[*]}{"\n"}{.metadata.name}{":\t"}{range .spec.volumes[*]}{.persistentVolumeClaim.claimName}{" "}{end}{end}' | grep "<pvc_name>"
        ```
        Salida de ejemplo
        ```sh {: screen}
        app    ocs-storagecluster-cephfs
        ```
    2. Elimine el pod que utiliza la PVC. Si el pod forma parte de un despliegue, elimine el despliegue.
    ```sh {: pre}
        oc delete pod <pod_name>
        ```
        ```sh {: pre}
        oc delete deployment <deployment_name>
        ```
    3. Verifique que el pod o el despliegue se ha eliminado.
    ```sh {: pre}
        oc get pods
        ```
        ```sh {: pre}
        oc get deployments
        ```
    
  3. Opcional Suprima la PVC. Al suprimir la PVC, se suprimen los datos de la app del volumen de almacenamiento.
    oc delete pvc <pvc_name>
    

Eliminación del recurso personalizado de ODF

Complete los pasos siguientes para eliminar los recursos de ODF del clúster.

Los pasos siguientes dan lugar a la pérdida de datos. Haga una copia de seguridad de los datos en sus volúmenes locales antes de eliminar el despliegue de ODF.

Cuando se suprime el recurso personalizado OcsCluster del clúster, se suprimen los siguientes recursos. Además, las apps que requieren acceso a los datos de los volúmenes locales pueden experimentar un tiempo de inactividad. - Pods de controlador de ODF. - Los PVC de MON y OSD. - Todos los datos de sus volúmenes. Sin embargo, si ha creado las PVC utilizando la clase de almacenamiento de NooBaa y las apps han escrito datos en el almacenamiento de copia de seguridad, los datos del almacenamiento de copia de seguridad no se suprimen.

  1. Obtenga el nombre del recurso personalizado OcsCluster.
    oc get ocscluster
    
    Ejemplo de salida de un recurso personalizado llamado ocscluster-vpc.
    NAME             AGE
    ocscluster-vpc   4s
    
  2. Suprima el recurso personalizado OcsCluster. Sustituya <ocscluster_name> por el nombre del recurso personalizado.
    oc delete ocscluster <ocscluster_name>
    
    Ejemplo de comando para un recurso OcsCluster personalizado llamado ocscluster-vpc.
    oc delete ocscluster ocscluster-vpc
    
  3. Suprima todas las PVC que ha creado.
    oc get pvc
    
  4. Opcional Si no desea reinstalar ODF, puede Eliminar el complemento ODF del clúster.

Limpieza de ODF

  1. Copie uno de los siguientes scripts de limpieza basados en el despliegue de ODF.
    • VPC o Satellite con discos suministrados dinámicamente Limpie los recursos de Kubernetes restantes del clúster. Guarde el script siguiente en un archivo denominado cleanup.sh en la máquina local.
        #!/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
        ```
    * **Clústeres clásicos o Satellite clústeres con discos locales** Limpie los recursos de Kubernetes restantes del clúster. Guarde el script siguiente en un archivo denominado `cleanup.sh` en la máquina local.
    ```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. Ejecute el script cleanup.sh.
    sh ./cleanup.sh
    
  3. **** Clústeres clásicos o clústeres de Satellite con discos locales** Después de ejecutar el script de limpieza, inicie sesión en cada nodo trabajador y ejecute los mandatos siguientes.
    1. Deploy a debug pod and run chroot /host.
        oc debug node/<node_name> -- chroot /host
        ```
    1. Ejecute el mandato siguiente para eliminar los archivos o directorios de las vías de acceso especificadas. Repita este paso para cada nodo trabajador que haya utilizado en la configuración de OCS.
    ```sh {: codeblock}
        rm -rvf /var/lib/rook /mnt/local-storage
        ```
        Salida de ejemplo:
        ```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. Opcional: Clústeres clásicos o clústeres de Satellite con discos locales Si ya no desea utilizar los volúmenes locales que ha utilizado en la configuración, puede suprimirlos del clúster. Liste los PV locales.
    oc get pv
    
    Salida de ejemplo:
    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. Suprima los PV locales.
    oc delete pv <pv_name> <pv_name> <pv_name>
    
  6. Después de suprimir las PVC y los PV, también debe suprimir los volúmenes de almacenamiento de la cuenta. Para localizar y eliminar volúmenes de almacenamiento no utilizados en su cuenta, consulte ¿Por qué sigo viendo cargos por dispositivos de almacenamiento en bloque después de suprimir mi clúster?.

Desinstalación del complemento OpenShift Data Foundation

Desinstalación del complemento OpenShift Data Foundation desde la consola

Para eliminar el complemento OpenShift Data Foundation del clúster, realice los pasos siguientes.

Si desea eliminar todos los recursos y datos de ODF del clúster, elimine las CRD antes de desinstalar el complemento.

  1. En la consola, selecciona el clúster del que deseas eliminar el complemento « OpenShift Data Foundation».
  2. Desplácese hasta los complementos instalados.
  3. En la tarjeta de OpenShift Data Foundation, pulse el icono Acciones y, a continuación, Desinstalar.

Desinstalación del complemento OpenShift Data Foundation desde la CLI

Puedes desinstalar el complemento « OpenShift Data Foundation» de tu clúster mediante la consola o la CLI.

Si desea eliminar todos los recursos y datos de ODF del clúster, elimine las CRD antes de desinstalar el complemento.

  1. Desinstale el complemento.
    ibmcloud oc cluster addon disable openshift-container-storage -c <cluster_name>
    
  2. Verifique que el complemento se ha eliminado.
    ibmcloud oc cluster addon ls -c <cluster_name>
    

Resolución de problemas de ODF

Para recopilar la información para resolver problemas de ODF, puede utilizar el mandato oc adm must-gather y especificar la imagen de ODF. Para obtener más información, consulte Recopilación de datos de clúster.

Mandato de ejemplo:

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

Puede utilizar la caja de herramientas de comunidad Rook para depurar los problemas con el clúster Ceph. Para obtener más información, consulta la documentación de « Rook ».

Para obtener más información, revise los temas de resolución de problemas comunes.