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.