PowerFlex 4.X: Sådan udføres en kontrolleret genstart på PFMP MVM-administrations-VM'er
Summary: Beskriver den kontrolleret genstart af PowerFlex Management Platform (PFMP) VM'er til version 4.X, herunder mærkning, dræning og genstart af MVM'er, mens to noder holdes aktive og kontrollerer PostgreSQL-tilstanden. Inden for rammerne af denne procedure er MVM1 postgres Leader. Det drænes og genstartes sidst. ...
Instructions
Genstart af MVM VM'er kan løse nogle Pod-problemer, implementeringsfejl og andre fejl
Kommandoerne i denne procedure køres fra en root bash-shell. For at spejle nedenstående trin skal du logge på MVM'erne ved hjælp af delladmin Kør derefter sudo -s for at skifte til en ny rodskal.
Eksempel:
delladmin@pfmp-mvm03:~> whoami delladmin delladmin@pfmp-mvm03:~> sudo -s pfmp-mvm03:/home/delladmin # whoami root
- Angiv en liste over alle Postgres-databaseforekomster , og identificer podnavnet med lederrollen. Ledernoden skal være den sidste node, der skal drænes og genstartes:
-
- PFMP 4.6
kubectl exec -n powerflex -c database $(kubectl get pods -n powerflex -l='postgres-operator.crunchydata.com/role=master, postgres-operator.crunchydata.com/instance-set' | grep Running | cut -d' ' -f1) -- sh -c 'patronictl list'
Kør følgende kommando for at identificere, hvilken MVM der kører Postgres Leader Pod. Dette er den sidste node, der skal drænes og genstartes:
for x in `kubectl get pods -n powerflex | grep "postgres-ha-cmo" |awk '{print $1}'` ; do echo $x; kubectl get pods -n powerflex $x -o json | grep '"nodeName"' | cut -d ':' -f2 ; echo " "; done
-
- PFMP 4.8
kubectl exec -it -n powerflex $(kubectl get pods -n powerflex | grep postgres-monitor | awk '{print $1'}) -- kubectl cnpg status postgres-ha-cnpg
Eksempel på output
delladmin@node2:~> kubectl exec -it -n powerflex $(kubectl get pods -n powerflex | grep postgres-monitor | awk '{print $1'}) -- kubectl cnpg status postgres-ha-cnpg
Cluster Summary
Name powerflex/postgres-ha-cnpg
System ID: 7570829541331841052
PostgreSQL Image: dockerrepo:30500/cnpg/cnpg-postgres:14.18-22-53.6b63004-22-9.0
Primary instance: postgres-ha-cnpg-1
Primary start time: 2025-11-09 22:33:09 +0000 UTC (uptime 3803h6m21s)
Status: Cluster in healthy state
Instances: 3
Ready instances: 3
Size: 11G
Current Write LSN: B/6211B568 (Timeline: 3 - WAL File: 000000030000000B00000062)
Continuous Backup status
Not configured
Streaming Replication status
Replication Slots Enabled
Name Sent LSN Write LSN Flush LSN Replay LSN Write Lag Flush Lag Replay Lag State Sync State Sync Priority Replication Slot
---- -------- --------- --------- ---------- --------- --------- ---------- ----- ---------- ------------- ----------------
postgres-ha-cnpg-2 B/6211B568 B/6211B568 B/6211B568 B/6211B568 00:00:00.000365 00:00:00.001507 00:00:00.001618 streaming async 0 active
postgres-ha-cnpg-3 B/6211B568 B/6211B568 B/6211B568 B/6211B568 00:00:00.000321 00:00:00.001511 00:00:00.001575 streaming async 0 active
Instances status
Name Current LSN Replication role Status QoS Manager Version Node
---- ----------- ---------------- ------ --- --------------- ----
postgres-ha-cnpg-1 B/6211B568 Primary OK Burstable 1.26.1 pfmp-mvm01
postgres-ha-cnpg-2 B/6211B568 Standby (async) OK Burstable 1.26.1 pfmp-mvm02
postgres-ha-cnpg-3 B/6211B568 Standby (async) OK Burstable 1.26.1 pfmp-mvm03
- Åbn en terminal til MVM3 (en af de ikke-førende noder). Kør følgende kommando:
kubectl get nodes
- Etiket MVM3 til vedligeholdelse:
kubectl label node pfmp-mvm03 cmo.maintenance.mode=true
- Dræn node MVM03, hvor kørende Pods elegant fjernes fra noden. Pods planlægger og kører på en anden node. Når dræningsprocessen er fuldført, genstarter noden. Vent på, at noden kommer op igen.
- Kør følgende kommando for at dræne noden:
kubectl drain pfmp-mvm03 --ignore-daemonsets --delete-emptydir-data
- Når noden er drænet, skal du genstarte noden:
sudo reboot
SSHtil MVM02 og køre følgende kommando for at overvåge den node, du genstartede, for at opnå en STATUS som Klar:
watch kubectl get nodes
- Når MVM03 rapporterer en klar-STATUS, skal du SSH til MVM03 og udføre følgende kommando for at fjerne vedligeholdelsesmærkaten .
kubectl uncordon pfmp-mvm03 ; kubectl label node pfmp-mvm03 cmo.maintenance.mode-
Bemærk: "-" efter
cmo.maintenance.mode I kommandoen ovenfor er meget vigtigt. Glem ikke at inkludere DASH-symbolet . Dette er nødvendigt for at fjerne etiketten fra noden.
- Vent 5 til 20 minutter, og kør derefter kommandoen i trin 1 for at få vist databaseklyngens tilstand. Du kan gentage trinnene for den næste MVM, når outputtet matcher eksemplet på sund database nedenfor.
- Gentag trin 3-8 på MVM02 og derefter MVM01.
Kubectl kommandoer virker IKKE på en node, der ikke er i tilstanden Klar.
Når du har fuldført proceduren på alle tre MVM'er, skal du køre kommandoen i trin 1 for at kontrollere postgres-databasens tilstand. En pod skal være leder og i en tilstand af løb. Der skal være 0 MB forsinkelse, og begge Sync Standby-medlemmer skal have en streamingtilstand.
Eksempel på sund database PFMP 4.6:
+ Cluster: postgres-ha-ha +------------------------------------------+--------------+-----------+----+-----------+ | Member | Host | Role | State | TL | Lag in MB | +-------------------------+------------------------------------------+--------------+-----------+----+-----------+ | postgres-ha-cmo1-8t2v-0 | postgres-ha-cmo1-8t2v-0.postgres-ha-pods | Leader | running | 10 | | | postgres-ha-cmo1-h4hx-0 | postgres-ha-cmo1-h4hx-0.postgres-ha-pods | Sync Standby | streaming | 10 | 0 | | postgres-ha-cmo1-pb88-0 | postgres-ha-cmo1-pb88-0.postgres-ha-pods | Sync Standby | streaming | 10 | 0 | +-------------------------+------------------------------------------+--------------+-----------+----+-----------+