PowerFlex 4.X: PFMP MVM Yönetim VM'lerinde Düzgün Yeniden Başlatma Gerçekleştirme
Summary: İki düğümü etkin tutarken ve PostgreSQL'in durumunu kontrol ederken MVM'leri etiketleme, boşaltma ve yeniden başlatma dahil olmak üzere sürüm 4.X için PowerFlex Management Platform (PFMP) VM'lerinin zarif yeniden başlatılmasını ayrıntılarıyla açıklar. Bu prosedür kapsamında MVM1, sonraki Liderdir. En son boşaltılır ve yeniden başlatılır. ...
Instructions
MVM VM'lerini yeniden başlatmak bazı Pod sorunlarını, dağıtım hatalarını ve diğer hataları çözebilir
Bu yordamdaki komutlar kök bash kabuğundan çalıştırılır. Aşağıdaki adımları yansıtmak için şunu kullanarak MVM'lerde oturum açın: delladmin sonra koş sudo -s Yeni bir kök kabuğa
geçmek içinÖrnek:
delladmin@pfmp-mvm03:~> whoami delladmin delladmin@pfmp-mvm03:~> sudo -s pfmp-mvm03:/home/delladmin # whoami root
- Tüm Postgres veritabanı örneklerini listeleyin ve Lider rolüyle Pod adını belirleyin; lider düğüm, boşaltılacak ve yeniden başlatılacak son düğüm olmalıdır:
-
- 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'
Postgres Leader Pod'u hangi MVM'nin çalıştırdığını belirlemek için aşağıdaki komutu çalıştırın. Bu, boşaltılıp yeniden başlatılacak son düğümdür:
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
Örnek çıktı
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
- MVM3'e (lider olmayan düğümlerden biri) bir terminal açın. Aşağıdaki komutu çalıştırın:
kubectl get nodes
- Bakım için MVM3 etiketini kullanın:
kubectl label node pfmp-mvm03 cmo.maintenance.mode=true
- Çalışan Bölmelerin düğümden düzgün bir şekilde çıkarıldığı MVM03 düğümünü boşaltın. Bölmeler, farklı bir düğüm üzerinde zamanlanır ve çalıştırılır. Boşaltma işlemi tamamlandığında düğüm yeniden başlatılır. Düğümün yeniden açılmasını bekleyin.
- Düğümü boşaltmak için aşağıdaki komutu çalıştırın:
kubectl drain pfmp-mvm03 --ignore-daemonsets --delete-emptydir-data
- Düğüm boşaltıldıktan sonra düğümü yeniden başlatın:
sudo reboot
- MVM02 de SSH oturumu açın ve yeniden başlattığınız düğümün Hazır DURUMUNA ulaşmasını izlemek için aşağıdaki komutu çalıştırın:
watch kubectl get nodes
- MVM03 bir Hazır DURUMU bildirdiğinde, MVM03'e SSH uygulayın ve kordonu kaldırmak ve bakım etiketini kaldırmak için aşağıdaki komutu uygulayın.
kubectl uncordon pfmp-mvm03 ; kubectl label node pfmp-mvm03 cmo.maintenance.mode-
Not: Sonra gelen "-"
cmo.maintenance.mode Yukarıdaki komutta çok önemlidir. DASH sembolünü eklemeyi unutmayın. Etiketi düğümden kaldırmak için bu gereklidir.
- 5 ila 20 dakika bekleyin, ardından veritabanı kümesinin durumunu görüntülemek için 1. adımdaki komutu çalıştırın. Çıktı, aşağıdaki Sağlıklı Veritabanı Örneği ile eşleştiğinde bir sonraki MVM için adımları yineleyebilirsiniz.
- 3.-8. adımlarıMVM02'de, ardından MVM01'de tekrarlayın.
Üç MVM de prosedürü tamamladığınızda postgres veritabanının sağlığını doğrulamak için 1. adımdaki komutu çalıştırın. Bir Pod Lider ve çalışıyor durumda olmalıdır. 0 MB Gecikme olmalı ve her iki Senkronizasyon Bekleme Üyesi de akış durumuna sahip olmalıdır .
Sağlıklı Veritabanı Örneği 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 | +-------------------------+------------------------------------------+--------------+-----------+----+-----------+