【動画で製品解説】EDB Postgres AI for CloudNativePG™ Cluster(旧EDB Postgres for Kubernetes)1.26.0

1.EDB CloudNativePG Clusterとは?
EDB Postgres AI for CloudNativePG™ Cluster(EDB CNPG Cluster)は、Kubernetes内で高可用性PostgreSQLデータベースクラスターを管理するために設計されたオペレーターです。コミュニティのCloudNativePG™プロジェクトを基盤とするフォークであり、その機能を拡張しています。オープンソースのPostgreSQLだけでなく、EnterpriseDBのディストリビューションであるEDB Postgres Advanced Server(EPAS)とEDB Postgres Extended(PGE)もサポートしています。EDB CNPG Clusterは、ネイティブのストリーミングレプリケーションを使用したプライマリ/スタンバイアーキテクチャを中心に、これらのPostgreSQLクラスターのフルライフサイクルをカバーします。最近、Cloud Native PostgreSQLから改名されました。

2.IT環境で使用および実行する優位性と長所は?
EDB CNPG Clusterを使用すると、IT環境、特にクラウドネイティブなコンテキストにおいて、いくつかの優位性と長所があります:

  • 高可用性および災害復旧: 自動フェイルオーバーとレプリカの自動再作成による自己修復機能を提供します。WALアーカイブまたはストリーミングによる物理レプリケーションを使用して、Kubernetesクラスター全体に分散トポロジーをサポートし、災害復旧を実現します。
  • 運用効率: Postgresのマイナーバージョンとオペレーターのローリングアップデート、容量管理(スケールアップ/ダウン)、計画的なスイッチオーバー、宣言的な構成によるプロビジョニングなど、複雑なタスクを自動化します。
  • 機能強化: Oracle互換性(EPAS/PGE経由)、透過的データ暗号化(TDE)サポート(EPAS/PGE経由)、長期サポート(LTS)バージョンによる延長メンテナンス、PgBouncerとの組み込みコネクションプーリング、監視用の統合メトリックエクスポーターなどのユニークな機能が含まれます。
  • 柔軟性: PostgreSQL、EPAS、PGEで動作し、さまざまなKubernetesディストリビューションとアーキテクチャ(OpenShift上のlinux/amd64、linux/arm64、linux/ppc64le、linux/s390x)、複数のストレージオプション(オブジェクトストレージ、ボリュームスナップショット、個別のWALボリューム、テーブルスペース)、さまざまなインストール方法をサポートします。
  • 連携: Kubernetes API、一般的なオブジェクトストレージ(AWS S3、Azure Blob、GCS)、外部バックアップツール(Kasten、Velero/OADP)とプラグインやアダプターを介してシームレスに連携します。
  • 可観測性とセキュリティの向上: JSON形式での詳細なロギングを提供し、PrometheusやGrafanaなどの監視スタックと連携し、事前定義されたカスタマイズ可能なメトリックを含み、TLS証明書を管理し、RBACによるきめ細やかな権限管理を強制します。

3.それらの利点とメリットをどのように実現するか?
EDB CloudNativePG Clusterは、Kubernetesオペレーターとして機能し、Kubernetes APIサーバーと直接連携して目標を達成します:

  • 宣言的な制御: ユーザーは、YAMLマニフェストのカスタムリソース定義(CRD)を使用して、PostgreSQLクラスター、プーラー、バックアップ、データベース、およびロールの望ましい状態を定義します。オペレーターはクラスターの観測された状態と望ましい状態を継続的に調整します(Reconcile)。
  • ネイティブレプリケーション: PostgreSQLに組み込まれている物理ストリーミングレプリケーションとWALアーカイブ機能を利用してHAと継続的なリカバリを実現し、レプリケーションスロットとユーザー認証情報を自動的に管理します。
  • インスタンスマネージャー: カスタムバイナリが各PostgreSQL Pod内でPID 1として実行され、PostgreSQLプロセスのライフサイクルを管理し、プローブ(スタートアップ、活性、準備完了)を処理し、オペレーターと連携します。
  • 自動フェイルオーバー: プローブおよびAPI通信を通じてプライマリの障害を検出し、障害が発生したプライマリの制御されたシャットダウンを開始し、リーダー選出を実行し、レプリカをプライマリに昇格させてデータの整合性を確保します。
  • ローリングアップデート: イメージまたは構成の変更に基づいてインスタンスのローリングアップデートを調整し、読み取り専用トラフィックのダウンタイムを最小限に抑えます。
  • ストレージ管理: 定義されたストレージクラスとPVCテンプレートに基づいてPersistent Volume Claims(PVC)を直接管理し、ボリューム拡張やWALまたはテーブルスペース専用ボリュームをサポートします。バックアップおよびリカバリのためにVolume SnapshotsおよびObject Storesと連携します。
  • ワークロード配置: Kubernetesのアフィニティ、アンチアフィニティ、ノードセレクター、およびテイント許容機能(Tolerations)を使用して、パフォーマンス、分離、および回復性のためにPodをノードおよびアベイラビリティゾーンに戦略的にスケジューリングします。
  • 管理対象オブジェクト: 適切なラベル、アノテーション、およびRBAC権限を持つPod、Service、Secret、ConfigMap、PodDisruptionBudget、ServiceAccountなどの関連するKubernetesリソースを作成および管理します。

4.バージョン 1.26.0の新機能は?
ドキュメントに記載されているリリースノートによると:

  • EDB CloudNativePG Cluster 1.26.0リリースには、コミュニティのCloudNativePG 1.26.0アップストリームリリースとのマージによる変更が含まれています。コミュニティリリースからの具体的な新機能については、このドキュメントの1.26.0エントリでは詳細が記載されておらず、コミュニティのリリースノートを参照するように示されています。
  • バージョン1.26以降、ネイティブのバックアップおよびリカバリ機能は、コアオペレーターから公式のCNP-Iプラグインに段階的に移行されています。
  • Barman Cloudを介したオブジェクトストレージからのネイティブリカバリは、プラグインベースのアプローチを推奨するため、バージョン1.26をもって非推奨となりました。

(注:ドキュメントには、検証アノテーション、pg_stat_walメトリック、PostgreSQLデフォルトバージョン17.5への更新、PgBouncer 1.24.1への更新、セキュリティ修正などの機能強化を含む1.22.10のような他のリリースノートも記載されていますが、これらのノートは1.26.0自体ではなく1.22.10リリースに関連しており、同じセクションには含まれています。)