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