Удаление сервера PostgreSQL с поддержкой Azure Arc
В этом документе описаны шаги по удалению сервера из настройки Azure Arc.
Примечание.
В отношении технологии (как предварительной версии функции), описанной в этой статье, действуют дополнительные условия использования предварительных версий Microsoft Azure.
Последние обновления доступны в заметках о выпуске.
Удаление сервера
Например, рассмотрим ситуацию, когда нам нужно удалить экземпляр postgres01 из следующей конфигурации:
az postgres server-arc list --k8s-namespace <namespace> --use-k8s
Name State
---------- -------
postgres01 Ready
Общий формат команды удаления:
az postgres server-arc delete -n <server name> --k8s-namespace <namespace> --use-k8s
При выполнении этой команды вам будет предложено подтвердить удаление сервера. При использовании скриптов для автоматизации удаления необходимо использовать параметр --force, чтобы обойти запрос на подтверждение. Например, можно выполнить команду следующим образом:
az postgres server-arc delete -n <server name> --force --k8s-namespace <namespace> --use-k8s
Чтобы получить дополнительные сведения о команде удаления, выполните команду:
az postgres server-arc delete --help
Удаление сервера, используемого в этом примере
az postgres server-arc delete -n postgres01 --k8s-namespace <namespace> --use-k8s
Освобождение утверждений постоянного тома Kubernetes (PVC)
PersistentVolumeClaim (PVC) — это запрос на хранение пользователем из кластера Kubernetes при создании и добавлении хранилища на сервер PostgreSQL. Удаление группы серверов не приводит к удалению связанных с ней утверждений PVC. Это сделано намеренно. Это необходимо, чтобы помочь пользователю получить доступ к файлам базы данных в случае случайного удаления экземпляра. Удалять утверждения PVC не обязательно, но рекомендуется. Если вы не освобождаете эти ПВК, в конечном итоге в конечном итоге будет возникать ошибка, так как кластер Kubernetes будет думать, что это истекает дисковое пространство или использование того же имени сервера PostgreSQL при создании нового может привести к несоответствиям. Для освобождения утверждений PVC сделайте следующее.
1. Получите список PVC для группы серверов, которую вы удалили
Чтобы получить список PVC, выполните следующую команду:
kubectl get pvc [-n <namespace name>]
Она возвращает список PVC, в частности, PVC для удаленной группы серверов. Например:
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
Для этой группы серверов имеется 8 PVC.
2. Удалите все PVC.
Удалите данные и журнал PVCs для удаленного сервера PostgreSQL.
Необходимая команда имеет следующий формат:
kubectl delete pvc <name of pvc> [-n <namespace name>]
Например:
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
Каждая из этих команд kubectl будет подтверждать успешное удаление PVC. Рассмотрим пример.
persistentvolumeclaim "data-postgres01-0" deleted
Примечание.
Согласно приведенной информации, если не удалить PVC, в итоге кластер Kubernetes может начать выдавать ошибки. Некоторые из этих ошибок могут включать в себя невозможность создания, чтения, обновления, удаления ресурсов из API Kubernetes или выполнения таких команд, как, например, az arcdata dc export
из узлов Kubernetes, из-за этой проблемы с хранилищем (нормальное поведение Kubernetes).
Например, в журналы могут быть записаны сообщения следующего вида:
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.