Excluir um servidor PostgreSQL habilitado para Azure Arc

Este documento descreve as etapas para excluir um servidor da configuração do Azure Arc.

Nota

Como funcionalidade de pré-visualização, a tecnologia apresentada neste artigo está sujeita aos Termos de Utilização Suplementares para Pré-visualizações do Microsoft Azure.

As atualizações mais recentes estão disponíveis nas notas de versão.

Excluir o servidor

Como exemplo, vamos considerar que queremos excluir a instância postgres01 da configuração abaixo:

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

O formato geral do comando delete é:

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

Quando você executar este comando, você será solicitado a confirmar a exclusão do servidor. Se você estiver usando scripts para automatizar exclusões, precisará usar o parâmetro --force para ignorar a solicitação de confirmação. Por exemplo, você executaria um comando como:

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

Para obter mais detalhes sobre o comando delete, execute:

az postgres server-arc delete --help 

Exclua o servidor usado neste exemplo

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

Recupere as PVCs (Persistent Volume Claims, declarações de volume persistentes) do Kubernetes

Um PersistentVolumeClaim (PVC) é uma solicitação de armazenamento por um usuário do cluster Kubernetes ao criar e adicionar armazenamento a um servidor PostgreSQL. A exclusão de um grupo de servidores não remove seus PVCs associados. Esta ação é propositada. A intenção é ajudar o utilizador a aceder aos ficheiros de base de dados caso a eliminação da instância tenha sido acidental. A eliminação de PVCs não é obrigatória. No entanto, é recomendada. Se você não recuperar esses PVCs, acabará com erros, pois seu cluster Kubernetes pensará que está ficando sem espaço em disco ou o uso do mesmo nome de servidor PostgreSQL ao criar um novo pode causar inconsistências. Para recuperar PVCs, execute os seguintes passos:

1. Liste os PVCs para o grupo de servidores que você excluiu

Para listar os PVCs, execute este comando:

kubectl get pvc [-n <namespace name>]

Ele retorna a lista de PVCs, em particular os PVCs para o grupo de servidores excluído. Por exemplo:

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

Existem 8 PVCs para este grupo de servidores.

2. Suprimir cada um dos PVC

Exclua os dados e registre PVCs para o servidor PostgreSQL excluído.

O formato geral deste comando é:

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

Por exemplo:

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 um desses comandos kubectl confirmará a exclusão bem-sucedida do PVC. Por exemplo:

persistentvolumeclaim "data-postgres01-0" deleted

Nota

Como indicado, não excluir os PVCs pode eventualmente colocar seu cluster Kubernetes em uma situação em que ele lançará erros. Alguns desses erros podem incluir ser incapaz de criar, ler, atualizar, excluir recursos da API do Kubernetes ou ser capaz de executar comandos como az arcdata dc export os pods do controlador podem ser removidos dos nós do Kubernetes devido a esse problema de armazenamento (comportamento normal do Kubernetes).

Por exemplo, você pode ver mensagens nos logs semelhantes 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.

Próximo passo

Criar servidor PostgreSQL habilitado para Azure Arc