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.

Najnowsze aktualizacje są dostępne w informacjach o wersji.

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. 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>]

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.

Następny krok

Tworzenie serwera PostgreSQL z obsługą usługi Azure Arc