Odstranění serveru PostgreSQL s podporou služby Azure Arc

Tento dokument popisuje postup odstranění serveru z instalace Služby Azure Arc.

Poznámka:

Jako funkce ve verzi Preview platí, že technologie uvedená v tomto článku podléhá dodatečným podmínkám použití pro verze Microsoft Azure Preview.

Nejnovější aktualizace jsou k dispozici v poznámkách k verzi.

Odstranění serveru

Podívejme se například na to, že chceme odstranit instanci postgres01 z následujícího nastavení:

az postgres server-arc list --k8s-namespace <namespace> --use-k8s
Name        State  
----------  -------
postgres01  Ready  

Obecný formát příkazu delete je:

az postgres server-arc delete -n <server name> --k8s-namespace <namespace> --use-k8s

Při spuštění tohoto příkazu budete požádáni o potvrzení odstranění serveru. Pokud k automatizaci odstranění používáte skripty, budete muset k obejití žádosti o potvrzení použít parametr --force. Například byste spustili příkaz podobný hle:

az postgres server-arc delete -n <server name> --force --k8s-namespace <namespace> --use-k8s

Další podrobnosti o příkazu delete získáte spuštěním příkazu:

az postgres server-arc delete --help 

Odstranění serveru použitého v tomto příkladu

az postgres server-arc delete -n postgres01 --k8s-namespace <namespace> --use-k8s

Uvolnění deklarací trvalých svazků Kubernetes (PVC)

PersistentVolumeClaim (PVC) je požadavek na úložiště uživatelem z clusteru Kubernetes při vytváření a přidávání úložiště na server PostgreSQL. Odstraněním skupiny serverů nedojde k odebrání přidružených pvcs. Toto chování je úmyslné. Záměrem je pomoct uživateli získat přístup k souborům databáze v případě, že odstranění instance bylo nechtěné. Odstraňování deklarací identity trvalých svazků není povinné. Doporučuje se to ale. Pokud tyto pvcs neuvolníte, nakonec skončíte s chybami, protože cluster Kubernetes si myslí, že dochází místo na disku nebo využití stejného názvu serveru PostgreSQL při vytváření nové instance může způsobit nekonzistence. Pokud chcete získat zpět deklarace identity trvalých svazků, proveďte následující kroky:

1. Vypsat řadiče domény pro skupinu serverů, kterou jste odstranili

Pokud chcete zobrazit seznam pvcs, spusťte tento příkaz:

kubectl get pvc [-n <namespace name>]

Vrátí seznam pvcs, zejména pvcs pro skupinu serverů, kterou jste odstranili. Příklad:

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

Pro tuto skupinu serverů je 8 pvcs.

2. Odstraňte všechny pvcs

Odstraňte data a protokoly PVCs pro server PostgreSQL, který jste odstranili.

Obecný formát tohoto příkazu je:

kubectl delete pvc <name of pvc>  [-n <namespace name>]

Příklad:

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ždý z těchto příkazů kubectl potvrdí úspěšné odstranění PVC. Příklad:

persistentvolumeclaim "data-postgres01-0" deleted

Poznámka:

Jak je uvedeno, odstranění pvcs může nakonec získat cluster Kubernetes v situaci, kdy dojde k chybám. Mezi tyto chyby může patřit nemožnost vytvářet, číst, aktualizovat, odstraňovat prostředky z rozhraní Kubernetes API nebo spouštět příkazy, jako az arcdata dc export jsou pody kontroleru, může být kvůli tomuto problému s úložištěm vyřazeno z uzlů Kubernetes (normální chování Kubernetes).

V protokolech se můžou například zobrazovat zprávy podobné následujícímu:

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.

Další krok

Vytvoření serveru PostgreSQL s podporou Služby Azure Arc