Supprimer un serveur PostgreSQL avec Azure Arc

Ce document décrit les étapes permettant de supprimer un serveur de votre installation Azure Arc.

Remarque

En tant que fonctionnalité en préversion, la technologie présentée dans cet article est soumise aux conditions d’utilisation supplémentaires des préversions de Microsoft Azure.

Les dernières mises à jour sont disponibles dans les notes de publication.

Supprimer le serveur

À titre d’exemple, considérons que nous voulons supprimer l’instance postgres01 de l’installation ci-dessous :

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

Le format général de la commande delete est le suivant :

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

Lorsque vous exécutez cette commande, il vous est demandé de confirmer la suppression du serveur. Si vous utilisez des scripts pour automatiser les suppressions, vous devez utiliser le paramètre --force pour ignorer la demande de confirmation. Par exemple, vous exécutez une commande telle que :

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

Pour plus d’informations sur la commande delete, exécutez la commande suivante :

az postgres server-arc delete --help 

Supprimer le serveur utilisé dans cet exemple

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

Récupérer les revendications de volume persistant (PVC) Kubernetes

Une revendication PVC (PersistentVolumeClaim) est une demande de stockage émise par un utilisateur du cluster Kubernetes lors de la création et de l’ajout de stockage à un serveur PostgreSQL. La suppression d’un groupe de serveurs ne supprime pas les PVC associés. C'est la procédure normale. L’objectif est d’aider l’utilisateur à accéder aux fichiers de base de données en cas de suppression accidentelle de l’instance. La suppression des PVC n’est pas obligatoire. Toutefois, elle est recommandé. Si vous ne récupérez pas ces PVC, vous finirez par avoir des erreurs, car votre cluster Kubernetes pensera manquer d’espace disque ou l’utilisation du même nom de serveur PostgreSQL lors de la création d’un nouveau groupe pourrait provoquer des incohérences. Pour récupérer les PVC, procédez comme suit :

1. Répertoriez les PVC du groupe de serveurs que vous avez supprimés

Pour répertorier les PVC, exécutez la commande suivante :

kubectl get pvc [-n <namespace name>]

Celle-ci retourne la liste des PVC, en particulier les PVC du groupe de serveurs que vous avez supprimés. Par exemple :

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

Il y a 8 PVC pour ce groupe de serveurs.

2. Supprimez chacun des PVC

Supprimez les PVC de données et de journaux pour le serveur PostgreSQL que vous avez supprimé.

Le format général de cette commande est le suivant :

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

Par exemple :

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

Chacune de ces commandes kubectl confirme la réussite de la suppression du PVC. Par exemple :

persistentvolumeclaim "data-postgres01-0" deleted

Remarque

Comme indiqué, le fait de ne pas supprimer les PVC peut finalement conduire votre cluster Kubernetes à une situation où il lèvera des erreurs. Certaines de ces erreurs peuvent inclure la possibilité de créer, lire, mettre à jour ou supprimer des ressources de l’API Kubernetes, ou de pouvoir exécuter des commandes comme az arcdata dc export, car les pods de contrôleur peuvent être éliminés des nœuds Kubernetes en raison de ce problème de stockage (comportement Kubernetes normal).

Par exemple, vous pouvez voir des messages dans les journaux, similaires à ce qui suit :

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.

Étape suivante

Créer un serveur PostgreSQL avec Azure Arc