Compartir a través de


Eliminar un servidor postgreSQL habilitado para Azure Arc

En este documento se describen los pasos para eliminar un grupo de servidores de la configuración de Azure Arc.

Nota:

Como característica en versión preliminar, la tecnología que se presenta en este artículo está sujeta a los términos de uso complementarios para las versiones preliminares de Microsoft Azure.

Las actualizaciones más recientes están disponibles en las notas de la versión.

Eliminación del servidor

Por ejemplo, supongamos que queremos eliminar la instancia postgres01 de la configuración siguiente:

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

El formato general del comando de eliminación es el siguiente:

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

Al ejecutar este comando, se le solicitará que confirme la eliminación del servidor. Si usa scripts para automatizar las eliminaciones, deberá usar el parámetro --force para omitir la solicitud de confirmación. Por ejemplo, ejecutaría un comando como el siguiente:

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

Para más detalles sobre el comando de eliminación, ejecute:

az postgres server-arc delete --help 

Eliminación del servidor que se usa en este ejemplo

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

Reclamación de las notificaciones de volumen persistente (PVC) de Kubernetes

Un objeto PersistentVolumeClaim (PVC) es una solicitud de almacenamiento que realiza un usuario del clúster de Kubernetes al crear y agregar almacenamiento a un servidor PostgreSQL. La eliminación de un grupo de servidores no elimina sus PVC asociadas. es así por diseño. La intención es ayudar al usuario a tener acceso a los archivos de base de datos en caso de que la eliminación de la instancia fuera accidental. La eliminación de las PVC no es obligatoria. Sin embargo, se recomienda. Si no reclama estas PVC, al final terminará con errores, ya que el clúster de Kubernetes considerará que se está quedando sin espacio en disco. También es posible que la utilización del mismo servidor PostgreSQL provoque incoherencias al crear uno nuevo. Para reclamar las PVC, realice los pasos siguientes:

1. Enumerar las PVC del grupo de servidores que ha eliminado

Para enumerar las PVC, ejecute este comando:

kubectl get pvc [-n <namespace name>]

Devuelve la lista de PVC y, en particular, las PVC del grupo de servidores que ha eliminado. Por ejemplo:

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

Hay 8 PVC para este grupo de servidores.

2. Eliminar cada PVC

Elimine las PVC de datos y de registro del servidor PostgreSQL que ha eliminado.

El formato general de este comando es:

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

Por ejemplo:

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

Cada uno de estos comandos kubectl confirmará la eliminación correcta del PVC. Por ejemplo:

persistentvolumeclaim "data-postgres01-0" deleted

Nota:

Tal y como se indicó, si no elimina las PVC podría llevar al clúster de Kubernetes a una situación en la que se produzcan errores. Algunos de estos errores pueden incluir la incapacidad de crear, leer, actualizar y eliminar recursos de la API de Kubernetes, o bien de ejecutar comandos como az arcdata dc export, ya que los pods del controlador se pueden expulsar de los nodos de Kubernetes debido a este problema de almacenamiento (el comportamiento normal de Kubernetes).

Por ejemplo, puede ver mensajes en los registros similares 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.

Paso siguiente

Creación de un servidor PostgreSQL habilitado para Azure Arc