Löschen eines Azure Arc-fähigen PostgreSQL-Servers
In diesem Dokument werden die Schritte zum Löschen eines Servers aus Ihrem Azure Arc-Setup beschrieben.
Hinweis
Als Previewfunktion unterliegt die in diesem Artikel vorgestellte Technologie den zusätzlichen Nutzungsbedingungen für Microsoft Azure-Vorschauen.
Die neuesten Updates sind in den Versionshinweisenverfügbar.
Server löschen
Beispielsweise möchten wir die Instanz postgres01 aus dem folgenden Setup löschen:
az postgres server-arc list --k8s-namespace <namespace> --use-k8s
Name State
---------- -------
postgres01 Ready
Das allgemeine Format des Löschbefehls lautet:
az postgres server-arc delete -n <server name> --k8s-namespace <namespace> --use-k8s
Wenn Sie diesen Befehl ausführen, werden Sie aufgefordert, das Löschen des Servers zu bestätigen. Wenn Sie Skripts zum Automatisieren von Löschvorgängen verwenden, müssen Sie den Parameter „--force“ verwenden, um die Bestätigungsanforderung zu umgehen. Beispielsweise können Sie einen Befehl wie den folgenden ausführen:
az postgres server-arc delete -n <server name> --force --k8s-namespace <namespace> --use-k8s
Um weitere Informationen zum Löschbefehl zu erhalten, führen Sie Folgendes aus:
az postgres server-arc delete --help
Löschen des in diesem Beispiel verwendeten Servers
az postgres server-arc delete -n postgres01 --k8s-namespace <namespace> --use-k8s
Freigeben von Ansprüchen für persistente Kubernetes-Volumes (PVCs)
Ein PersistentVolumeClaim (PVC) ist eine Anforderung zum Speichern durch einen Benutzer aus dem Kubernetes-Cluster beim Erstellen und Hinzufügen von Speichervolumen zu einem PostgreSQL-Server. Durch das Löschen einer Servergruppe werden nicht deren zugeordnete PVCs (Persistent Volume Claims, Ansprüche für persistente Volumes) entfernt. Dies ist beabsichtigt. Auf diese Weise kann der Benutzer einfacher auf die Datenbankdateien zugreifen, falls eine Instanz versehentlich gelöscht wurde. Das Löschen von PVCs ist nicht obligatorisch, Es wird aber empfohlen. Wenn Sie diese PVCs nicht zurückfordern, kann es zu Fehlern kommen, da Ihr Kubernetes-Cluster denkt, dass ihm der Speicherplatz ausgeht oder die Verwendung desselben PostgreSQL-Servernamens beim Erstellen einer neuen Gruppe zu Inkonsistenzen führen kann. Führen Sie die folgenden Schritte aus, um die PVCs freizugeben:
1. Auflisten der PVCs für die Servergruppe, die Sie gelöscht haben
Führen Sie den folgenden Befehl aus, um die PVCs aufzulisten:
kubectl get pvc [-n <namespace name>]
Mit dem Befehl wird die Liste der PVCs zurückgegeben – insbesondere der PVCs für die von Ihnen gelöschte Servergruppe. Beispiel:
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
Für diese Servergruppe gibt es 8 PVCs.
2. Löschen aller PVCs
Löschen Sie die Daten- und Protokoll-PVCs für den PostgreSQL-Server, den Sie gelöscht haben.
Das allgemeine Format des Befehls lautet:
kubectl delete pvc <name of pvc> [-n <namespace name>]
Beispiel:
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
Mit jedem dieser kubectl-Befehle wird das erfolgreiche Löschen des PVCs bestätigt. Beispiel:
persistentvolumeclaim "data-postgres01-0" deleted
Hinweis
Wie bereits erwähnt, kann das Nichtlöschen der PVCs dazu führen, dass Ihr Kubernetes-Cluster letztlich in eine Situation gerät, in der er Fehler verursacht. Einige dieser Fehler können sein, dass Ressourcen nicht über die Kubernetes-API erstellt, gelesen, aktualisiert oder gelöscht oder dass Befehle wie az arcdata dc export
nicht ausgeführt werden können, da die Controllerpods aufgrund dieses Speicherproblems (normales Kubernetes-Verhalten) von den Kubernetes-Knoten entfernt werden können.
Beispielsweise können in den Protokollen Meldungen wie die folgende angezeigt werden:
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.
Nächster Schritt
Erstellen eines PostgreSQL-Servers mit Azure Arc-Unterstützung