Usuwanie serwera PostgreSQL z obsługą usługi Azure Arc
W tym dokumencie opisano kroki usuwania serwera z konfiguracji usługi Azure Arc.
Uwaga
Jako funkcja w wersji zapoznawczej technologia przedstawiona w tym artykule podlega dodatkowym warunkom użytkowania dla wersji zapoznawczych platformy Microsoft Azure.
Usuwanie serwera
Rozważmy na przykład usunięcie wystąpienia postgres01 z poniższej konfiguracji:
az postgres server-arc list --k8s-namespace <namespace> --use-k8s
Name State
---------- -------
postgres01 Ready
Ogólny format polecenia delete to:
az postgres server-arc delete -n <server name> --k8s-namespace <namespace> --use-k8s
Po wykonaniu tego polecenia zostanie wyświetlony monit o potwierdzenie usunięcia serwera. Jeśli używasz skryptów do automatyzowania usuwania, musisz użyć parametru --force, aby pominąć żądanie potwierdzenia. Na przykład można uruchomić polecenie, takie jak:
az postgres server-arc delete -n <server name> --force --k8s-namespace <namespace> --use-k8s
Aby uzyskać więcej informacji na temat polecenia usuwania, uruchom polecenie:
az postgres server-arc delete --help
Usuń serwer używany w tym przykładzie
az postgres server-arc delete -n postgres01 --k8s-namespace <namespace> --use-k8s
Odzyskiwanie trwałych oświadczeń woluminów kubernetes (PVCs)
TrwałeVolumeClaim (PVC) to żądanie magazynu przez użytkownika z klastra Kubernetes podczas tworzenia i dodawania magazynu do serwera PostgreSQL. Usunięcie grupy serwerów nie powoduje usunięcia skojarzonych z nią kontrolerów PVC. Jest to celowe. Ma to na celu ułatwienie użytkownikowi uzyskania dostępu do plików bazy danych w razie przypadkowego usunięcia wystąpienia. Usuwanie roszczeń do woluminów trwałych nie jest obowiązkowe. Jest to jednak zalecane. Jeśli nie odzyskasz tych kontrolerów PVC, w końcu wystąpią błędy, ponieważ klaster Kubernetes uzna, że zabraknie miejsca na dysku lub użycia tej samej nazwy serwera PostgreSQL podczas tworzenia nowego może spowodować niespójności. Aby odzyskać roszczenia do woluminów trwałych, wykonaj następujące czynności:
1. Wyświetl listę kontrolerów PVC dla usuniętej grupy serwerów
Aby wyświetlić listę kontrolerów PVC, uruchom następujące polecenie:
kubectl get pvc [-n <namespace name>]
Zwraca listę PVC, w szczególności PVC dla usuniętej grupy serwerów. Na przykład:
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
Dla tej grupy serwerów istnieje 8 kontrolerów PVC.
2. Usuń każdą z pvc
Usuń usunięte karty PVC danych i dzienników dla usuniętego serwera PostgreSQL.
Ogólny format tego polecenia to:
kubectl delete pvc <name of pvc> [-n <namespace name>]
Na przykład:
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
Każde z tych poleceń kubectl potwierdzi pomyślne usunięcie PVC. Na przykład:
persistentvolumeclaim "data-postgres01-0" deleted
Uwaga
Jak wskazano, usunięcie kontrolerów PVC może ostatecznie spowodować pobranie klastra Kubernetes w sytuacji, w której wystąpią błędy. Niektóre z tych błędów mogą obejmować niemożność utworzenia, odczytu, aktualizacji, usunięcia zasobów z interfejsu API kubernetes lub możliwości uruchamiania poleceń, takich jak az arcdata dc export
zasobniki kontrolera, mogą być eksmitowane z węzłów Kubernetes z powodu tego problemu z magazynem (normalne zachowanie platformy Kubernetes).
Na przykład w dziennikach mogą być wyświetlane komunikaty podobne do następujących:
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.