EDB Postgres AI for CloudNativePG™ Cluster(旧EDB Postgres for Kubernetes)1.29.0
日本語訳|EDB CloudNativePG Cluster 1.29.0
※GoogleのAutoML Translationを使用して翻訳しております。
![]() |
![]() |
英語原文|EDB CloudNativePG Cluster 1.29.0
![]() |
![]() |
概要
1. EDB CloudNativePG Cluster (cnpg-cluster) とは何か?
EDB Postgres for Kubernetes Cluster オペレーターは、オープンソースの CloudNativePG™ プロジェクトをベースにしたフォークです。EnterpriseDB(EDB)によって設計、開発、およびサポートされており、ネイティブのストリーミングレプリケーションを使用したプライマリ/スタンバイアーキテクチャで稼働する、高可用性Postgresデータベースクラスターのライフサイクル全体を管理します。
コアとなる CloudNativePG プロジェクトを拡張し、Oracle互換性(EDB Postgres Advanced Server – EPASを使用)、透過的データ暗号化(TDE)、および Red Hat OpenShift、IBM Power、IBM z/Linuxといったエンタープライズプラットフォームのサポートなど、企業向けの付加価値を提供しています。
2. cnpg-cluster の特徴と機能
このオペレーターは、PostgreSQL ワークロードをデプロイおよび管理するための、完全な宣言型かつ Kubernetes ネイティブな方法を提供します。主な機能は以下の通りです。
- 高可用性と自己修復 (High Availability & Self-Healing): 最もデータが同期されたレプリカへの自動フェイルオーバー、レプリカの自動再作成、および計画的メンテナンスのためのスイッチオーバー。
- Kubernetes API 統合: アプリケーションがシームレスに接続できるように、標準の読み取り専用(read-only)、読み書き用(read-write)、および汎用の Kubernetes サービスを公開します。
- 堅牢なバックアップとリカバリ: 継続的バックアップとポイントインタイムリカバリ(PITR)。オブジェクトストレージ(Barman Cloud プラグイン経由)と、超大規模データベース(VLDB)の迅速なバックアップ/リカバリのためのネイティブな Kubernetes ボリュームスナップショットをサポートします。
- 高度なレプリケーション: 非同期および同期ストリーミングレプリケーション(クォーラムベースおよび優先度ベース)をサポート。「レプリカクラスター」を使用したマルチクラスター(クロスリージョン)の分散トポロジや、宣言型の論理レプリケーション(パブリケーションとサブスクリプション)もサポートします。
- コネクションプーリング: スケーラブルで高可用なデータベースアクセス層を提供するため、専用の Pooler カスタムリソースを介した PgBouncer とのネイティブ統合。
- モニタリングと可観測性: Prometheus(ポート9187の組み込みメトリクスエクスポーター経由)との標準での統合、および Grafana ダッシュボードの提供。
- セキュリティとコンプライアンス: オペレーター管理またはユーザー提供の証明書を使用した透過的な TLS/SSL 接続。EDB Postgres Advanced Server 使用時の透過的データ暗号化(TDE)と PGAudit ロギングもサポートします。
- 宣言型拡張機能: ベースイメージを再ビルドすることなく、ImageCatalog や ClusterImageCatalog を使用して、PostgreSQL 拡張機能(PostGIS や pgvector など)を OCI 準拠のコンテナイメージとして動的にロードおよび管理する機能。
3. cnpg-cluster の利点(メリット)
- 運用負荷の軽減 (Auto Pilot): オペレーターが Kubernetes 内部の自動化された DBA(データベース管理者)として機能し、マイナー/メジャーのローリングアップグレード、スケーリング、フェイルオーバー、証明書のローテーションなどの複雑なライフサイクルタスクを自動的に処理します。
- Infrastructure as Code (IaC) と GitOps への対応: 完全な宣言型であるため、標準の YAML マニフェストを使用して、データベースの全体的な状態(ロール、テーブルスペース、データベース、拡張機能など)を管理できます。
- エンタープライズグレードの回復力: 同期レプリケーションにより、ダウンタイムをほぼゼロに抑え、データ損失ゼロ(RPO=0)のアーキテクチャを実現すると同時に、複数のデータセンターにまたがるディザスタリカバリ(DR)にも対応します。
- イミュータブルインフラストラクチャ: 不変(イミュータブル)なアプリケーションコンテナを利用することで、デプロイメントの再現性とセキュリティを高め、設定のドリフト(逸脱)を防ぎます。
- 長期サポート (LTS): EDBは、18ヶ月間サポートされる LTS リリース(バージョン1.28など)を提供しており、企業は常に最新のバージョンへのアップグレードを強制されることなく、システムの安定性を維持できます。
4. バージョン 1.29.0 の新機能
バージョン 1.29.0 では、いくつかの新機能、機能強化、セキュリティの改善が導入されています。
主な新機能:
- イメージカタログでの拡張機能のサポート: ImageCatalog の機能が拡張され、PostgreSQL 拡張機能がサポートされるようになりました。これにより、ユーザーはカタログ内で拡張機能固有のイメージ(PostGISなど)を一元的に定義および管理でき、カスタム PostgreSQL のデプロイが大幅に簡素化されます。
- 動的なネットワークアクセスコントロール (podSelectorRefs): 管理者は、Kubernetes のポッドラベルに基づいて動的な pg_hba.conf ルールを定義できるようになりました。オペレーターがクライアントポッドの一時的なIPアドレスを自動的に解決し、データベースの認証ルールを更新するため、静的IPやCIDRブロックをハードコードする必要がなくなります。
- 共有 ServiceAccount: Cluster と Pooler の両方の仕様に、オプションの serviceAccountName フィールドが追加されました。これにより、複数のデータベースやプーラーが既存の ServiceAccount を共有できるようになり、AWS IRSA や GCP Workload Identity などの IAM 構成が簡素化されます。
主な機能強化:
- PgBouncerの高度なTLS設定: Pooler カスタムリソースで、厳格なセキュリティコンプライアンスを満たすための TLS 暗号スイートや TLS の最小/最大バージョンの詳細な設定がサポートされるようになりました。
- メジャーアップグレードの改善: オペレーターは pg_upgrade ジョブに BackoffLimit=0 を設定するようになり、失敗時の不要な再試行を防ぎます。これにより、イメージが元のバージョンに戻された場合、クラスターは元のバージョンで適切に再起動できるようになります。
- カスタム拡張機能環境: 拡張機能(extensions)スタンザに bin_path および env フィールドが追加され、ユーザーがカスタムの環境変数を定義したり、外部バイナリ用のディレクトリパスを追加したりできるようになりました。
- バックアップの可観測性の強化: キューに入っているバックアップを示す新しい Pending フェーズが導入され、実行タイミングのフィールド(reconciliationStartedAt と reconciliationTerminatedAt)が分割されたことで、長時間のバックアップをより正確に追跡できるようになりました。また、復旧不可能なエラー(例:誤ったクラウド認証情報など)発生時の無駄な再試行を停止する「Terminal Error」フェーズも追加されました。
セキュリティとデフォルト設定の変更:
- SLSA 来歴と SBOM: リリースバイナリとコンテナイメージにソフトウェア部品表(SBOM)と SLSA(Supply-chain Levels for Software Artifacts)の来歴情報が追加され、依存関係の透明性が向上しました。
- デフォルトの PostgreSQL バージョンの更新: オペレーターが使用するデフォルトの PostgreSQL バージョンが 18.3 に更新されました。
- Barman Cloud の非推奨に関する更新: ネイティブ(インツリー)の Barman Cloud サポートに関する非推奨の通知が更新され、バージョン 1.30.0 で完全に削除されることが明記されました(ユーザーは Barman Cloud プラグインに移行することが推奨されています)。





