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.