Share via


Eliminare un server PostgreSQL abilitato per Azure Arc

Questo documento descrive i passaggi 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 generale del comando delete è:

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

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

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

Per altri dettagli sul comando delete, 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 del volume persistente 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 comporta la rimozione dei controller di rete 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 perché il cluster Kubernetes ritiene che si esaurisca lo spazio su disco o l'utilizzo 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>]

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 ognuno dei pvc

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

Il formato generale 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 l'eliminazione corretta del PVC. Ad esempio:

persistentvolumeclaim "data-postgres01-0" deleted

Nota

Come indicato, la mancata eliminazione dei pvC potrebbe eventualmente ottenere il cluster Kubernetes in una situazione in cui genererà errori. Alcuni di questi errori possono includere l'impossibilità di creare, leggere, aggiornare, eliminare risorse dall'API Kubernetes o di poter eseguire comandi come az arcdata dc export i pod del controller possono essere rimossi dai nodi Kubernetes a causa di questo 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

Creare un server PostgreSQL abilitato per Azure Arc