Chuyển đến nội dung chính

第 19 課:POSTGRESQL 故障轉移測試和切換

測試主節點宕機時的自動故障轉移、排程切換、防護機制、監控複製延遲和應用程式連線處理。

🔒 DevSecOps — 第 19 課 第 19 課:POSTGRESQL 故障轉移測試和 切換

使用 Kubernetes HA 在本地部署微服務

第 4 部分:PostgreSQL HA 與 Patroni & CloudNativePG

xdev.asia

🎯 課程目標__HTMLTAG_68___
  • ✅ 當主 Pod 被殺死時測試自動故障轉移__HTMLTAG_71___
  • ✅ 計劃切換(維護視窗)
  • ✅ 監控複製延遲
  • ✅ 故障轉移期間的應用程式連線處理
  • ✅ 圍欄與裂腦預防

第 1 部分:自動故障轉移

1.1。測試:殺死主要 Pod

___程式碼區塊_0___

1.2。故障轉移時間軸

___程式碼區塊_1___

第 2 部分:計劃切換

2.1。計劃切換(零資料遺失)

___程式碼區塊_2___

第 3 部分:監控複製延遲

程式碼區塊_3

3.1。複製延遲警報

___程式碼區塊_4___

第 4 部分:應用程式連線處理

4.1。處理應用程式中的故障轉移

___程式碼區塊_5___

程式碼區塊_6


第 5 部分:擊劍與裂腦預防

程式碼區塊_7


💡 重點

    ___HTMLTAG_110__HTMLTAG_111___自動故障轉移:約10-15秒,操作員偵測+提升 ___HTMLTAG_114__HTMLTAG_115___計畫切換:零資料遺失,kubectl cnpg 提升___HTMLTAG_118__HTMLTAG_119___ ___HTMLTAG_120__HTMLTAG_121___複製延遲監控:pg_stat_replication、Prometheus 指標 ___HTMLTAG_124__HTMLTAG_125___應用程式:使用服務名稱、重試邏輯、target_session_attrs ___HTMLTAG_128__HTMLTAG_129___防護:K8s 租約可防止腦裂 ___HTMLTAG_132__HTMLTAG_133___PgBouncer 對應用程式隱藏故障轉移(透明重新連線)

🎯 練習

練習 1:故障轉移實驗室

  • 終止主 Pod,測量故障轉移時間
  • 故障轉移後驗證資料一致性
  • 方案切換到特定備用設備

練習 2:應用程式連線測驗

  • 部署透過 PgBouncer 連接到 PG 的簡單應用
  • 在應用寫入時觸發故障轉移
  • 驗證應用程式自動復原

📚 下一篇文章

在 第 20 課:PostgreSQL 監控、調優和第二天操作中,我們將為生產設定詳細的監控和調優。