EDB CloudNativePG Global Cluster(旧PGD4K)2.0.0
日本語訳|EDB CloudNativePG Global Cluster 2.2.0
※GoogleのAutoML Translationを使用して翻訳しております。
![]() |
![]() |
英語原文|EDB CloudNativePG Global Cluster 2.0.0
![]() |
![]() |
概要
1. CloudNativePG Global Cluster とは?
EDB Postgres AI for CloudNativePG Global Cluster(略称:cnpg-gc または PGD4K)は、プライベート、パブリック、ハイブリッド、またはマルチクラウドの Kubernetes 環境全体で EDB Postgres Distributed (PGD) ワークロードをデプロイ、管理、自動化するために設計された Kubernetes オペレーターです。
従来の PostgreSQL がアクティブ・スタンバイ構成であるのに対し、PGD は可用性の高いマルチマスター構成の Postgres 実装です。cnpg-gc オペレーターは、この高度なデータベースアーキテクチャと Kubernetes を橋渡しし、管理者が宣言的な Kubernetes マニフェスト(YAML)を使用して、複雑なマルチリージョン・データベース・トポロジを定義できるようにします。リリース 2.0.0 は、PGD バージョン 6.x クラスターのデプロイと管理に特化して設計された、初のメジャー安定版リリースです。
2. CloudNativePG Global Cluster の導入メリット
cnpg-gc オペレーターを介して PGD をデプロイすることで、主に以下のようないくつかのメリットが得られます。
- 極めて高い可用性 (Always On): 最大「ファイブ・ナイン」(99.999%) の可用性を達成します。マルチマスターアーキテクチャにより単一障害点(SPOF)を排除し、オペレーターが自動的な自己修復(セルフヒーリング)を提供します。
- 宣言的でクラウドネイティブな管理: スケーリング、ルーティング、フェイルオーバー、アップグレードといった複雑な操作を宣言的に管理し、エラーが発生しやすい手動のインフラ構築スクリプトを置き換えます。
- ゼロダウンタイム・メンテナンス: データベースをオフラインにすることなく、インプレースでのマイナーおよびメジャーバージョンアップグレード、さらにトポロジの変更をサポートします。
- 地理的分散とマルチクラスターサポート: 災害復旧(DR)やデータローカリティの向上のため、複数のアベイラビリティゾーン (AZ) や、異なるリージョンにある全く別々の Kubernetes クラスターにまたがってデータベースクラスターを構築できます。
- 堅牢な災害復旧 (DR): 継続的なオンライン/ホットバックアップおよびポイントインタイムリカバリ (PITR) の組み込みサポートにより、アプリケーションのダウンタイムなしにデータの安全性を確保します。
3. メリットを実現するためのメカニズムと機能
これらのメリットを提供するため、cnpg-gc は以下の基盤となるメカニズムと統合機能を利用しています。
- PGDGroup カスタムリソース (CRD): オペレーターは PGDGroup CRD を導入しています。オペレーターはこの YAML 定義を読み取り、完全に機能するマルチマスタークラスターへと自動的に変換します。
- PG4K への委譲: cnpg-gc は「グローバルクラスター」を管理しますが、依存関係として標準の EDB Postgres for Kubernetes (PG4K) オペレーターに依存しています。個々の PGD ノードは、シングルインスタンスの PG4K Cluster ポッドとして起動され、PG4K の堅牢なライフサイクル機能をすべて継承します。
- Raft コンセンサスとコネクションマネージャー: PGD ノードは Raft アルゴリズムを利用してコンセンサスを維持し、「ライトリーダー(書き込みリーダー)」を選出します。トラフィックは、クラスターのトポロジとヘルス状態をネイティブに理解する組み込みの PGD Connection Manager を使用して、適切なノードにインテリジェントにルーティングされます。
- マルチクラスター・ネットワーキング: マルチリージョン構成の場合、cnpg-gc は標準の TCP ネットワークロードバランサーと完全修飾ドメイン名 (FQDN) を活用します。これにより Kubernetes のネットワークドメインが分離され、複雑なサービスメッシュを必要とせずにクラスター間通信が可能になります。
- 高度なバックアップとリカバリ: オペレーターは Barman Cloud および Kubernetes の VolumeSnapshots と統合されており、スケジュールされたバックアップ、オブジェクトストレージ (AWS S3 など) への継続的な WAL (Write-Ahead Log) アーカイブ、および自動化された保持ポリシーを処理します。
- エンドツーエンドのセキュリティ:
- mTLS: cert-manager と連携し、安全なノード間およびクライアント・ノード間通信のための TLS 証明書の自動プロビジョニングとローテーションを行います。
- TDE: 透過的データ暗号化 (Transparent Data Encryption) をサポートし、ファイルレベルで保存データ (Data at Rest) を暗号化します。
- LDAP/RBAC: データベースユーザー認証のための LDAP サポートと、オペレーター権限のための厳格な Kubernetes RBAC をサポートします。
4. バージョン 2.0.0 の新機能
バージョン 2.0.0 では、PGD 6.x の新機能のサポートに重点を置いた大規模なアーキテクチャのアップデートが行われています。
- PGD 6.x サポートとアップグレード: PGD 6.x クラスターの完全なデプロイサポートと、既存のクラスターを PGD 5 から PGD 6 へ移行するための自動アップグレードパスを提供します (PostgreSQL 14 〜 18 と互換性あり)。
- ネイティブなコネクションマネージャーのサポート: 従来の外部 PGD プロキシを置き換えます。バージョン 2.0.0 では、ルーティングとプーリングに PGD 6.x の組み込み Connection Manager を利用することで、アーキテクチャを劇的に簡素化し、パフォーマンスを向上させています。
- グローバルルーティング: PGD 6.x におけるグローバルルーティングのサポートを追加しました。これにより、Connection Manager は、ローカルなサブグループリーダーだけでなく、トップレベルのグローバルライトリーダーに対して動的にトラフィックをルーティングできるようになります。
- 宣言的なノードの切り離し (Node Parting): k8s.pgd.enterprisedb.io/part=on アノテーションと新しい PGDGroupCleanup ルーチンを組み合わせることで、ノードまたはリージョン全体をグローバルクラスターから安全かつグレースフルに廃止・切り離す手法を導入しました。
- 事前定義されたモニタリング: BDR/PGD メトリクスに特化してチューニングされた、Prometheus モニタリングクエリの事前定義セットが標準で付属しています。
- 管理対象ロールとユーザー (Managed Roles & Users): 管理者がオペレーターのマニフェストを介して直接、データベースロールやアプリケーションユーザーを宣言的に管理できるようになります(例: 認証情報の自動生成や Kubernetes Secret への自動反映など)。
- カスタム UID/GID と initDB: 厳格なセキュリティ制約に準拠するための postgresUID および postgresGID のカスタマイズサポートに加え、initDB オプションのきめ細かい設定サポートが追加されました。
- Barman Cloud プラグイン: Barman cloud プラグインのサポートを追加しました。これにより、バックアップや WAL アーカイブのプロセスをメインの Postgres コンテナ内で実行するのではなく、専用のサイドカーコンテナにオフロード(移譲)できるようになります。





