Rimozione di Data Foundation di OpenShift
Esamina i seguenti argomenti per gestire la tua OpenShift distribuzione di Data Foundation.
Rimozione di ODF dalle app
Per rimuovere ODF dalle tue applicazioni, puoi eliminare la tua applicazione o distribuzione e le PVC corrispondenti.
Se si desidera rimuovere completamente ODF e tutti i dati, è possibile rimuovere il cluster di memoria.
- Elenca le tue PVC e prendi nota del nome della PVC e del PV corrispondente che vuoi rimuovere.
oc get pvc - Rimuovi gli eventuali pod che montano la PVC.
- Elenca tutti i pod che attualmente montano la PVC che vuoi eliminare. Se non viene restituito alcun pod, non hai alcun pod che attualmente utilizza la tua PVC.
oc get pods --all-namespaces -o=jsonpath='{range .items[*]}{"\n"}{.metadata.name}{":\t"}{range .spec.volumes[*]}{.persistentVolumeClaim.claimName}{" "}{end}{end}' | grep "<pvc_name>" ``` Output di esempio ```sh {: screen} app ocs-storagecluster-cephfs ``` 2. Rimuovi il pod che utilizza la PVC. Se il pod fa parte di una distribuzione, rimuovi la distribuzione. ```sh {: pre} oc delete pod <pod_name> ``` ```sh {: pre} oc delete deployment <deployment_name> ``` 3. Verifica che il pod o la distribuzione siano rimossi. ```sh {: pre} oc get pods ``` ```sh {: pre} oc get deployments ``` - Opzionale: eliminare il PVC. L'eliminazione della PVC elimina i dati dell'applicazione dal volume di archiviazione.
oc delete pvc <pvc_name>
Rimozione della risorsa personalizzata ODF
Segui i passaggi riportati di seguito per rimuovere le risorse ODF dal tuo cluster.
I seguenti passi comportano la perdita di dati. Eseguire il back up dei dati sui volumi locali prima di rimuovere la distribuzione ODF.
Quando elimini la risorsa personalizzata OcsCluster dal tuo cluster, vengono eliminate le seguenti risorse. Inoltre, qualsiasi applicazione che richiede l'accesso ai dati sui tuoi volumi locali potrebbe riscontrare un tempo di inattività.
- Pod driver ODF. - I PVC MON e OSD. - Tutti i dati dei tuoi volumi. Tuttavia, se hai creato le PVC utilizzando la classe di archiviazione NooBaa e le tue applicazioni hanno scritto i dati nel tuo archivio di backup, i dati nel tuo archivio
di backup non vengono eliminati.
- Ottieni il nome della tua risorsa personalizzata
OcsCluster.
Esempio di output per una risorsa personalizzata denominataoc get ocsclusterocscluster-vpc.NAME AGE ocscluster-vpc 4s - Elimina la tua risorsa personalizzata
OcsCluster. Sostituisci "<ocscluster_name>" con il nome della tua risorsa personalizzata.
Esempio di comando per una risorsa personalizzataoc delete ocscluster <ocscluster_name>OcsClusterdenominataocscluster-vpc.oc delete ocscluster ocscluster-vpc - Eliminare tutte le PVC create.
oc get pvc - Facoltativo Se non si desidera reinstallare ODF, è possibile rimuovere il componente aggiuntivo ODF dal cluster.
Ripulitura ODF
- Copiare uno dei seguenti script di ripulitura in base alla distribuzione ODF.
- VPC o Satellite con i dischi con provisioning dinamico Ripulisci le restanti risorse Kubernetes dal tuo cluster. Salvare il seguente script in un file denominato
cleanup.shsulla macchina 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 ``` * **Cluster classici o cluster Satellite con dischi locali** Ripulisci le restanti risorse Kubernetes dal tuo cluster. Salvare il seguente script in un file denominato `cleanup.sh` sulla macchina 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 ``` - VPC o Satellite con i dischi con provisioning dinamico Ripulisci le restanti risorse Kubernetes dal tuo cluster. Salvare il seguente script in un file denominato
- Esegui lo script “
cleanup.sh”.sh ./cleanup.sh - **Cluster classici o cluster Satellite con dischi locali Dopo aver eseguito lo script di ripulitura, accedi a ogni nodo di lavoro ed esegui i seguenti comandi.
- Distribuisci un pod di debug ed esegui
chroot /host.
oc debug node/<node_name> -- chroot /host ``` 1. Eseguire il seguente comando per rimuovere i file o le directory sui percorsi specificati. Ripeti questo passo per ogni nodo di lavoro che hai usato nella configurazione OCS. ```sh {: codeblock} rm -rvf /var/lib/rook /mnt/local-storage ``` Output di esempio: ```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' ``` - Distribuisci un pod di debug ed esegui
- Facoltativo: cluster classici o cluster Satellite con dischi locali Se non vuoi più utilizzare i volumi locali che hai utilizzato nella tua configurazione, puoi eliminarli dal cluster. Elencare i PV locali.
Output di esempio: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 - Eliminare i PV locali.
oc delete pv <pv_name> <pv_name> <pv_name> - Dopo aver eliminato le tue PVC e PV, devi anche eliminare i volumi di archiviazione dal tuo account. Per individuare e rimuovere i volumi di archiviazione inutilizzati nel tuo account, vedi Perché continuo a vedere gli addebiti per i dispositivi di archiviazione blocchi dopo l'eliminazione del mio cluster?.
Disinstallazione del componente aggiuntivo OpenShift Data Foundation
Disinstallazione del componente aggiuntivo OpenShift Data Foundation dalla console
Per rimuovere il componente OpenShift aggiuntivo Data Foundation dal cluster, completare i seguenti passaggi.
Se si desidera rimuovere tutte le risorse ODF e i dati dal cluster, rimuovere i CRD prima di disinstallare il componente aggiuntivo.
- Dalla console, selezionare il cluster per il quale si desidera rimuovere il componente aggiuntivo Data Foundation di OpenShift.
- Scorri fino ai componenti aggiuntivi installati.
- Nella scheda OpenShift Data Foundation, fare clic su Azioni e quindi su Disinstalla.
Disinstallazione del componente aggiuntivo OpenShift Data Foundation dalla CLI
È possibile disinstallare il componente OpenShift aggiuntivo Data Foundation dal cluster utilizzando la console o la CLI.
Se si desidera rimuovere tutte le risorse ODF e i dati dal cluster, rimuovere i CRD prima di disinstallare il componente aggiuntivo.
- Disinstallare il componente aggiuntivo.
ibmcloud oc cluster addon disable openshift-container-storage -c <cluster_name> - Verificare che il componente aggiuntivo sia stato rimosso.
ibmcloud oc cluster addon ls -c <cluster_name>
Risoluzione dei problemi di ODF
Per raccogliere le informazioni per la risoluzione dei problemi ODF, è possibile utilizzare il comando oc adm must-gather e specificare l'immagine ODF. Per ulteriori informazioni, vedi Raccolta dei dati del cluster.
Comando di esempio:
oc adm must-gather --image=registry.redhat.io/ocs4/ocs-must-gather-rhel8:latest --dest-dir=ocs_mustgather
È possibile utilizzare il Rook toolbox della community per eseguire il debug dei problemi relativi al cluster Ceph. Per ulteriori informazioni, consultare la Rook documentazione.
Per ulteriori informazioni, consultare gli argomenti comuni per la risoluzione dei problemi.