iT邦幫忙

2025 iThome 鐵人賽

DAY 25
1
Cloud Native

駕馭商用容器叢集,汪洋漂流術系列 第 25

【Day 25】 叢集裡面裝 PostgreSQL 最佳選擇 - Crunchy Data

  • 分享至 

  • xImage
  •  

前言

當你開始把應用程式搬進 Kubernetes 的世界,你會很快發現:Stateless 很好搞,Deployment + Service + HPA 就能隨便彈性伸縮。
但一旦牽涉到 Stateful(有狀態服務),像是 PostgreSQL 這樣的資料庫,麻煩就來了。

痛點

  • 需考慮 資料一致性
  • 需考慮 主從複寫與自動 Failover
  • 需考慮 備份/還原、升級、監控

Crunchy Data

  • 連結: https://www.crunchydata.com/
  • runchy Data 是一家專注於 企業級 PostgreSQL 解決方案的公司,強調:
    • 開源 (Open Source):核心專案都公開在 GitHub
    • Kubernetes 原生 (Cloud Native):完全基於 Operator 模式管理資料庫
    • 企業等級 (Enterprise Ready):內建監控、安全、備份還原
  • Crunchy Postgres Operator (PGO) 最為知名

主要功能

  1. 自動部署與配置
    • kubectl apply -f cluster.yaml 就可以自動建好 Primary + Replica
  2. 高可用性 (HA)
    • Pod 掛了?自動切換 Primary,Replica 頂上來
  3. 備份 / 還原
    • 內建與 pgBackRest 整合,支援全量、增量、Point-in-Time Recovery
    • 全量備份 (Full Backup)
      • 把整個 PostgreSQL 資料目錄完整複製一份。
      • 優點:完整、簡單
      • 缺點:資料大時,耗時長、佔空間
    • 增量備份 (Incremental Backup)
      • 只備份「自上次備份以來有改變的檔案 / 資料塊」。
      • 通常依靠 WAL (Write-Ahead Logs) 來知道哪些頁面變動。
      • 優點:節省時間和空間
      • 缺點:需要依賴之前的 full / differential 備份
  • 累加備份 (Differential Backup)
    • 介於全量和增量之間:只備份「自上一次全量備份後改變的部分」。
    • 也是 pgBackRest 支援的模式。
  1. 監控
    • 開箱即用的 Prometheus + Grafana Dashboard
  2. 升級管理
    • 可以透過 Operator 流程安全升級 PostgreSQL 版本

Crunchy Data + K8s/OCP

  • 使用 Custom Resource Definitions (CRDs) 定義 PostgreSQL 集群
  • Operator Pattern 自動管理生命周期
  • PVC / StorageClass 整合,支援不同雲端儲存方案(AWS EBS、GCP PD、Ceph、ODF)
  • NetworkPolicy、RBAC 配合,符合企業安全需求

建立方式

  • 建立三個節點的 Crunchy Data
    apiVersion: postgres-operator.crunchydata.com/v1beta1
    kind: PostgresCluster
    metadata:
      name: hippo
    spec:
      instances:
        - replicas: 3
      backups:
        pgbackrest:
          repos:
          - name: repo1
            volume:
              volumeClaimSpec:
                accessModes: ["ReadWriteOnce"]
                resources:
                  requests:
                    storage: 1Gi
    
    
  • 打完收工!!

結論

  • 很好理解也很好管理
  • 總結選 Crunchy Data 的理由
    1. 比自己手工架 PostgreSQL + StatefulSet 更穩、更快、更安全
    2. 官方有商業版支援(支援 FIPS、DISA STIG 等安全認證)
    3. CNCF 社群多家大企業大力支持

上一篇
【Day 24】 如何進行 Secret Rotation 與 Key Management
下一篇
【Day 26】 PostgreSQL 的左右護法:pgBackRest 與 pgBouncer
系列文
駕馭商用容器叢集,汪洋漂流術26
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言