Compartilhar via


Excluir um servidor PostgreSQL habilitado para Azure Arc

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

Observação

Como uma versão prévia do recurso, a tecnologia apresentada neste artigo está sujeita aos Termos de uso complementares para versões prévias do Microsoft Azure.

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

Excluir o servidor

Como exemplo, vamos considerar que desejamos 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 para excluir é:

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

Ao executar esse comando, será solicitada a confirmação da 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 de exclusão, execute:

az postgres server-arc delete --help 

Excluir o servidor usado neste exemplo

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

Recuperar as PVCs (declarações de volumes persistentes) do Kubernetes

Uma PVC (PersistentVolumeClaim) é uma solicitação de armazenamento por um usuário do cluster do Kubernetes durante a criação e a adição de armazenamento a um servidor PostgreSQL. A exclusão de um grupo de servidores não remove os PVCs associados. Isso ocorre por design. A intenção é ajudar o usuário a acessar os arquivos do banco de dados, se a exclusão da instância foi acidental. A exclusão de PVCs não é obrigatória. No entanto, é recomendada. Se você não recuperar essas PVCs, acabará enfrentando erros, pois o seu cluster do Kubernetes vai associar que está ficando sem espaço em disco ou usando o mesmo nome do servidor PostgreSQL, enquanto criar um novo poderá causar inconsistências. Para recuperar os PVCs, siga estas etapas:

1. Liste as PVCs do 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, especificamente os PVCs para o grupo de servidores que você excluiu. 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

Há 8 PVCs para este grupo de servidores.

2. Exclua todas as PVCs

Exclua os dados e registre em log as PVCs do servidor PostgreSQL excluído.

O formato geral desse 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

Todos esses comandos kubectl confirmarão a exclusão bem-sucedida da PVC. Por exemplo:

persistentvolumeclaim "data-postgres01-0" deleted

Observação

Como indicado, não excluir as PVCs pode acabar colocando o cluster do Kubernetes em uma situação em que ele vai gerar erros. Alguns desses erros podem incluir a impossibilidade de criar, ler, atualizar, excluir recursos da API Kubernetes ou a possibilidade de executar comandos como az arcdata dc export, pois os pods do controlador podem ser removidos dos nós do Kubernetes devido a esse problema de armazenamento (comportamento normal do Kubernetes).

Por exemplo, nos logs, você pode ver mensagens 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óxima etapa

Criar um servidor PostgreSQL habilitado para Azure Arc