Removendo o Data Foundation d OpenShift

Revise os tópicos a seguir para gerenciar sua implementação do OpenShift Data Foundation.

Removendo o ODF de seus aplicativos

Para remover o ODF de seus aplicativos, é possível excluir o aplicativo ou a implementação e os PVCs correspondentes.

Para remover totalmente o ODF e todos os seus dados, remova o cluster de armazenamento.

  1. Liste os seus PVCs e anote o nome do PVC e o PV correspondente que você deseja remover.
    oc get pvc
    
  2. Remova quaisquer pods que montam o PVC.
    1. Liste todos os pods que montam atualmente o PVC que você deseja excluir. Caso nenhum pod seja retornado, você não tem pods que usem a PVC atualmente.
        oc get pods --all-namespaces -o=jsonpath='{range .items[*]}{"\n"}{.metadata.name}{":\t"}{range .spec.volumes[*]}{.persistentVolumeClaim.claimName}{" "}{end}{end}' | grep "<pvc_name>"
        ```
        Saída de exemplo
        ```sh {: screen}
        app    ocs-storagecluster-cephfs
        ```
    2. Remova o pod que usa o PVC. Se o pod fizer parte de uma implementação, remova a implementação.
    ```sh {: pre}
        oc delete pod <pod_name>
        ```
        ```sh {: pre}
        oc delete deployment <deployment_name>
        ```
    3. Verifique se o pod ou a implementação foi removida.
    ```sh {: pre}
        oc get pods
        ```
        ```sh {: pre}
        oc get deployments
        ```
    
  3. Opcional Exclua a PVC. A exclusão da PVC exclui o dados do app do volume de armazenamento.
    oc delete pvc <pvc_name>
    

Removendo o recurso customizado do ODF

Siga estas etapas para remover os recursos do ODF de seu cluster.

As etapas a seguir resultam em perda de dados. Faça backup dos dados em seus volumes locais antes de remover sua implementação do ODF.

Ao excluir o recurso customizado OcsCluster do seu cluster, os recursos a seguir são excluídos. Além disso, quaisquer apps que requerem acesso aos dados em seus volumes locais podem experimentar o tempo de inatividade. - Pods do driver do ODF. - Os PVCs MON e OSD. -Todos os dados de seus volumes. Entretanto, se você tiver criado PVCs usando a classe de armazenamento NooBaa e seus apps gravaram dados em seu armazenamento auxiliar, os dados em seu armazenamento auxiliar não serão excluídos.

  1. Obtenha o nome de seu recurso customizado OcsCluster.
    oc get ocscluster
    
    Exemplo de saída para um recurso customizado chamado ocscluster-vpc.
    NAME             AGE
    ocscluster-vpc   4s
    
  2. Exclua seu recurso customizado OcsCluster. Substitua <ocscluster_name> pelo nome de seu recurso customizado.
    oc delete ocscluster <ocscluster_name>
    
    Exemplo de comando para um recurso customizado chamado OcsCluster chamado ocscluster-vpc.
    oc delete ocscluster ocscluster-vpc
    
  3. Exclua quaisquer PVCs que você criou.
    oc get pvc
    
  4. Opcional Se você não quiser reinstalar o ODF, poderá Remova o complemento do ODF do seu cluster.

Limpando o ODF

  1. Copie um dos scripts de limpeza a seguir com base em sua implementação do ODF.
    • VPC ou Satellite com discos provisionados dinamicamente Limpar os recursos restantes do Kubernetes do cluster. Salve o script a seguir em um arquivo chamado cleanup.sh para sua 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
        ```
    * **Clusters clássicos ou clusters Satellite com discos locais** Limpar os recursos restantes do Kubernetes do cluster. Salve o script a seguir em um arquivo chamado `cleanup.sh` para sua 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. Execute o scriptcleanup.sh.
    sh ./cleanup.sh
    
  3. **Clusters clássicos ou clusters Satellite com discos locais Depois de executar o script de limpeza, efetue login em cada nó do trabalhador e execute os comandos a seguir.
    1. Implemente um pod de depuração e execute chroot /host.
        oc debug node/<node_name> -- chroot /host
        ```
    1. Execute o comando a seguir para remover quaisquer arquivos ou diretórios nos caminhos especificados. Repita essa etapa para cada nó do trabalhador que você usou em sua configuração do OCS.
    ```sh {: codeblock}
        rm -rvf /var/lib/rook /mnt/local-storage
        ```
        Saída de exemplo:
        ```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: clusters clássicos ou clusters Satellite com discos locais Para não usar mais os volumes locais que foram usados em sua configuração, exclua-os do cluster. Liste os PVs locais.
    oc get pv
    
    Saída de exemplo:
    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. Excluir os PVs locais.
    oc delete pv <pv_name> <pv_name> <pv_name>
    
  6. Depois de excluir seus PVCs e PVs, você também precisa excluir os volumes de armazenamento da sua conta. Para localizar e remover volumes de armazenamento não utilizados em sua conta, veja Por que eu ainda estou vendo cargas para dispositivos de armazenamento de blocos após a exclusão do meu cluster?.

Desinstalando o complemento do OpenShift Data Foundation

Desinstalando o complemento do OpenShift Data Foundation por meio do console

Para remover o complemento do OpenShift Data Foundation de seu cluster, siga estas etapas.

Se você deseja remover todos os recursos do ODF e dados do seu cluster, remova os CRDs antes de desinstalar o complemento.

  1. No console, selecione o cluster do qual você deseja remover o complemento do OpenShift Data Foundation.
  2. Role até os complementos instalados.
  3. No cartão do OpenShift Data Foundation, clique no ícone Ações e, em seguida, em Desinstalar.

Desinstalando o complemento do OpenShift Data Foundation por meio da CLI

Você pode desinstalar o complemento do Data Foundation do OpenShift do seu cluster usando o console ou a CLI.

Se você deseja remover todos os recursos do ODF e dados do seu cluster, remova os CRDs antes de desinstalar o complemento.

  1. Desinstale o complemento.
    ibmcloud oc cluster addon disable openshift-container-storage -c <cluster_name>
    
  2. Verifique se o complemento foi removido.
    ibmcloud oc cluster addon ls -c <cluster_name>
    

Resolvendo problemas do ODF

Para reunir as informações e solucionar problemas do ODF, use o comando oc adm must-gather e especifique a imagem do ODF. Para obter mais informações, consulte Reunindo dados do cluster.

Exemplo de comando:

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

É possível usar a caixa de ferramentas da comunidade Rook para depurar problemas com seu cluster Ceph. Para obter mais informações, consulte a documentação do Rook.

Para obter mais informações, revise os tópicos comuns de resolução de problemas.