Back to blog

【製品解説】CloudNativePG 1.30.0

August 25, 2026

Kubernetes環境のPostgres管理を革新 〜Leaseによる安全なプライマリ選出、DatabaseRole CRD導入、セキュリティ機能を刷新:KubernetesネイティブなPostgresオペレーターの最新版が登場!安全な昇格を担保するLeaseオブジェクトや独立したDatabaseRole CRD、SCRAMハッシュ化などのセキュリティ強化を搭載。K8s上のDB運用管理をさらに堅牢かつ柔軟に進化させます。

1. CNPGとは?

CloudNativePG(CNPG)は、サポートされているKubernetesクラスター上でPostgreSQLのワークロードを管理するために設計された、オープンソースのオペレーターです。分散トポロジー機能により、プライベート、パブリック、ハイブリッド、マルチクラウド環境においてシームレスなデプロイを可能にし、クラウド中立性を実現します。DevOpsの原則に基づいて構築されており、宣言的な設定と不変(Immutable)インフラストラクチャに焦点に、データベース管理タスクを自動化します。

2. CNPGの仕組み

CNPGは、標準的なKubernetesの StatefulSet に依存するのではなく、データベースのオーケストレーション専用に設計されたカスタムコントローラーを実装することによって、PostgreSQLデータベースを管理します。

  • Cluster リソース: 単一のプライマリインスタンス(書き込み処理を担当)と、オプションのレプリカインスタンス(高可用性と参照スケール)で構成されるカスタムリソースを導入します。
  • アプリケーションレベルのレプリケーション: PostgreSQLネイティブの物理レプリケーションおよびストリーミングレプリケーション機能を利用して、インスタンス間で状態を同期します。
  • 直接的なPVC管理: PersistentVolumeClaim(PVC)を直接作成・管理することで、ローリングアップデート、ボリュームサイズ変更、異なるノード上でのインスタンス再作成に高い柔軟性を提供します。
  • 自動化されたオーケストレーション: フェイルオーバー、スイッチオーバー、Podの再作成、およびネイティブなKubernetesサービスを介したアプリケーションのルーティングを透過的に処理します。

3. 主なメリット

  • 自動化された高可用性と自己修復: PatroniやStolonといった外部ツールを必要とせず、フェイルオーバーやスタンバイの再作成を自動化します。
  • クラウド中立性: 分散トポロジー機能により、複数のKubernetesクラスターやリージョンにまたがるデータベースアーキテクチャの構築が可能です。
  • Infrastructure as Code (IaC): PostgreSQLの設定、ユーザー、拡張機能、テーブル領域などをKubernetesマニフェスト内で宣言的に定義できます。
  • 柔軟なストレージ管理: ローカル永続ボリューム、WAL用独立ボリューム、およびオンラインボリュームリサイズをネイティブにサポートします。
  • デフォルトでのセキュリティ確保: 非rootユーザーでの実行、読み取り専用ルートファイルシステム、TLS証明書認証、組み込みセキュリティコンテキストを適用します。
  • ネイティブな接続プーリング: 初期状態で提供されるPgBouncerとの統合により、Webアプリケーションにおける接続プーリングとスケーリングを簡素化します。

4. バージョン1.30.0 新機能

【機能強化および新機能】

  • プライマリ Lease(リース): 昇格時のミューテックスとして機能するLeaseオブジェクトを導入し、いかなる時点でも最大1つのインスタンスのみが自身をプライマリに昇格できるよう制御します。
  • DatabaseRole CRD: PostgreSQLのデータベースロールを独立したKubernetesオブジェクトとして宣言的かつ独自ライフサイクルで管理可能になりました。
  • 宣言的ロールのためのTLSクライアント証明書: DatabaseRole においてTLSクライアント証明書を自動生成・更新しSecretに保存することで、パスワードレスな証明書認証を実現します。
  • ImageCatalog によるPgBouncer管理: Poolerリソースが ImageCatalog や ClusterImageCatalog を参照し、PgBouncerイメージを一元管理可能になりました。
  • インプレース・メジャーアップグレード強化: Image Volume拡張機能を使用するクラスターにおいて、PostgreSQL 19以降へのインプレース pg_upgrade が有効化されました。
  • プラットフォームとデータベース更新: Kubernetes 1.36のサポート追加、デフォルトPostgreSQLバージョンを18.4に更新しました。

【セキュリティの強化】

  • オペレーター側でのパスワードエンコード(CVE-2026-55765): クリアテキスト漏洩を防ぐため、PostgreSQLへ送信する前にオペレーター側でSCRAM-SHA-256ハッシュ化を実行します。
  • search_path の固定(CVE-2026-55769): 権限昇格リスクを軽減するため、すべての接続で search_path を pg_catalog, public, pg_temp に明示的固定します。
  • オペレーターとインスタンス間の認証(GHSA-7qwx-x8ff-3px9): インスタンスマネージャーの機密エンドポイント呼び出しを認証するため、メモリ上にECDSA P-256証明書を生成する設計へ強化しました。

5. 日本語マニュアル

CloudNativePG 1.30.0 日本語マニュアル

機能の詳細な設定方法やパラメータ仕様、導入手順については日本語マニュアルをご覧ください。

日本語マニュアルを見る >> 


Share this