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.
- Liste os seus PVCs e anote o nome do PVC e o PV correspondente que você deseja remover.
oc get pvc - Remova quaisquer pods que montam o PVC.
- 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 ``` - 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.
- Obtenha o nome de seu recurso customizado
OcsCluster.
Exemplo de saída para um recurso customizado chamadooc get ocsclusterocscluster-vpc.NAME AGE ocscluster-vpc 4s - Exclua seu recurso customizado
OcsCluster. Substitua<ocscluster_name>pelo nome de seu recurso customizado.
Exemplo de comando para um recurso customizado chamadooc delete ocscluster <ocscluster_name>OcsClusterchamadoocscluster-vpc.oc delete ocscluster ocscluster-vpc - Exclua quaisquer PVCs que você criou.
oc get pvc - Opcional Se você não quiser reinstalar o ODF, poderá Remova o complemento do ODF do seu cluster.
Limpando o ODF
- 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.shpara 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 ``` - VPC ou Satellite com discos provisionados dinamicamente Limpar os recursos restantes do Kubernetes do cluster. Salve o script a seguir em um arquivo chamado
- Execute o script
cleanup.sh.sh ./cleanup.sh - **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.
- 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' ``` - Implemente um pod de depuração e execute
- 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.
Saída de exemplo:oc get pvlocal-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 - Excluir os PVs locais.
oc delete pv <pv_name> <pv_name> <pv_name> - 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.
- No console, selecione o cluster do qual você deseja remover o complemento do OpenShift Data Foundation.
- Role até os complementos instalados.
- 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.
- Desinstale o complemento.
ibmcloud oc cluster addon disable openshift-container-storage -c <cluster_name> - 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.