Condividi tramite


Eliminare un server PostgreSQL abilitato per Azure Arc

Questo documento descrive i passaggi necessari per eliminare un server dalla configurazione di Azure Arc.

Nota

In quanto funzionalità di anteprima, la tecnologia presentata in questo articolo è soggetta alle condizioni per l'utilizzo supplementari per le anteprime di Microsoft Azure.

Gli aggiornamenti più recenti sono disponibili nelle note sulla versione.

Eliminare il server

Si consideri, ad esempio, che si voglia eliminare l'istanza postgres01 dalla configurazione seguente:

az postgres server-arc list --k8s-namespace <namespace> --use-k8s
Name        State  
----------  -------
postgres01  Ready  

Il formato generico del comando delete è:

az postgres server-arc delete -n <server name> --k8s-namespace <namespace> --use-k8s

Quando si esegue questo comando, verrà richiesta la conferma per l'eliminazione del server. Se si utilizzano degli script per automatizzare le eliminazioni, è necessario usare il parametro --force per ignorare la richiesta di conferma. Ad esempio, si potrebbe eseguire un comando simile al seguente:

az postgres server-arc delete -n <server name> --force --k8s-namespace <namespace> --use-k8s

Per altri dettagli sul comando di eliminazione, eseguire:

az postgres server-arc delete --help 

Eliminare il server usato in questo esempio

az postgres server-arc delete -n postgres01 --k8s-namespace <namespace> --use-k8s

Recuperare le attestazioni di volume permanente (PVC) di Kubernetes

Un oggetto PersistentVolumeClaim (PVC) è una richiesta di archiviazione da parte di un utente del cluster Kubernetes durante la creazione e l'aggiunta di risorse di archiviazione a un server PostgreSQL. L'eliminazione di un gruppo di server non determina la rimozione dei PVC associati. Questo si verifica per motivi strutturali. L'intento è di consentire all'utente di accedere ai file di database nel caso in cui l'eliminazione dell'istanza fosse accidentale. L'eliminazione dei PVC non è obbligatoria, ma è consigliabile. Se non si recuperano questi PVC, alla fine si verificheranno errori, infatti, il cluster Kubernetes riterrà che lo spazio su disco sia in esaurimento, oppure l'uso dello stesso nome del server PostgreSQL durante la creazione di uno nuovo potrebbe causare incoerenze. Per recuperare i PVC, seguire questa procedura:

1. Elencare i PVC per il gruppo di server eliminato

Per elencare i PVC, eseguire questo comando:

kubectl get pvc [-n <namespace name>]

Esso restituisce l'elenco dei PVC, in particolare i PVC per il gruppo di server eliminato. Ad esempio:

kubectl get pvc
NAME                                         STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
data-few7hh0k4npx9phsiobdc3hq-postgres01-0   Bound    pvc-72ccc225-dad0-4dee-8eae-ed352be847aa   5Gi        RWO            default        2d18h
data-few7hh0k4npx9phsiobdc3hq-postgres01-1   Bound    pvc-ce6f0c51-faed-45ae-9472-8cdf390deb0d   5Gi        RWO            default        2d18h
data-few7hh0k4npx9phsiobdc3hq-postgres01-2   Bound    pvc-5a863ab9-522a-45f3-889b-8084c48c32f8   5Gi        RWO            default        2d18h
data-few7hh0k4npx9phsiobdc3hq-postgres01-3   Bound    pvc-00e1ace3-1452-434f-8445-767ec39c23f2   5Gi        RWO            default        2d15h
logs-few7hh0k4npx9phsiobdc3hq-postgres01-0   Bound    pvc-8b810f4c-d72a-474a-a5d7-64ec26fa32de   5Gi        RWO            default        2d18h
logs-few7hh0k4npx9phsiobdc3hq-postgres01-1   Bound    pvc-51d1e91b-08a9-4b6b-858d-38e8e06e60f9   5Gi        RWO            default        2d18h
logs-few7hh0k4npx9phsiobdc3hq-postgres01-2   Bound    pvc-8e5ad55e-300d-4353-92d8-2e383b3fe96e   5Gi        RWO            default        2d18h
logs-few7hh0k4npx9phsiobdc3hq-postgres01-3   Bound    pvc-f9e4cb98-c943-45b0-aa07-dd5cff7ea585   5Gi        RWO            default        2d15h

Per questo gruppo di server sono presenti 8 PVC.

2. Eliminare ciascun PVC

Eliminare i dati e registrare i PVC per il server PostgreSQL eliminato.

Il formato generico di questo comando è:

kubectl delete pvc <name of pvc>  [-n <namespace name>]

Ad esempio:

kubectl delete pvc data-few7hh0k4npx9phsiobdc3hq-postgres01-0
kubectl delete pvc data-few7hh0k4npx9phsiobdc3hq-postgres01-1
kubectl delete pvc data-few7hh0k4npx9phsiobdc3hq-postgres01-2
kubectl delete pvc data-few7hh0k4npx9phsiobdc3hq-postgres01-3
kubectl delete pvc logs-few7hh0k4npx9phsiobdc3hq-postgres01-0
kubectl delete pvc logs-few7hh0k4npx9phsiobdc3hq-postgres01-1
kubectl delete pvc logs-few7hh0k4npx9phsiobdc3hq-postgres01-2
kubectl delete pvc logs-few7hh0k4npx9phsiobdc3hq-postgres01-3

Ognuno di questi comandi kubectl conferma la corretta eliminazione del PVC. Ad esempio:

persistentvolumeclaim "data-postgres01-0" deleted

Nota

Come indicato, la mancata eliminazione dei PVC potrebbe porre il cluster Kubernetes in una situazione in cui potrebbe generare errori. Tra questi errori si possono includere: l'impossibilità di creare, leggere, aggiornare, eliminare risorse dall'API Kubernetes, o di non riuscire a eseguire comandi come az arcdata dc export, poiché i pod del controller potrebbero essere rimossi dai nodi Kubernetes a causa del problema di archiviazione (comportamento normale di Kubernetes).

Ad esempio, è possibile che nei log vengano visualizzati messaggi simili a:

Annotations:    microsoft.com/ignore-pod-health: true  
Status:         Failed  
Reason:         Evicted  
Message:        The node was low on resource: ephemeral-storage. Container controller was using 16372Ki, which exceeds its request of 0.

Passaggio successivo

Distribuire il Server PostgreSQL abilitato per Azure Arc