CloudNativePG 1.25.0

1. CloudNativePG(CNPG)とは?

  • オープンソースオペレーター: CNPG は、さまざまな環境で PostgreSQL ワークロードを管理するために設計されたオープンソースの Kubernetes オペレーターです。
  • Kubernetes ネイティブ: 宣言的な構成やイミュータブルなインフラストラクチャなどの DevOps の原則を遵守し、高可用性やスケーリングのために Kubernetes の機能を活用します。
  • PostgreSQL に特化: CNPG は、特に Kubernetes 内で PostgreSQL データベースをデプロイ、管理、およびスケーリングするための合理化された方法を提供します。
  • 簡素化された管理: CNPG は、Kubernetes で PostgreSQL を実行する際の運用上の複雑さの多くを抽象化し、開発者や DBA が周囲のインフラストラクチャではなく、データベース自体に集中できるようにします。

2. CloudNativePG を使用するメリット

  • 高可用性: 高可用性の PostgreSQL クラスターの作成を簡素化します。
  • スケーラビリティ: リソースとレプリカ数を含むインスタンスの簡単なスケーリングを可能にします。
  • 自動化された運用: フェイルオーバー、バックアップ、リストア、アップグレード、モニタリングなどの重要なタスクを自動化します。
  • 宣言的な構成: 宣言的な YAML マニフェストを通じて、インフラストラクチャをコード化するプラクティスを可能にします。
  • 統合: Kubernetes API サーバーとそのエコシステムと統合されており、Kubernetes でのデータベース管理に対する一貫性のあるアプローチを提供します。
  • 柔軟性: ハイブリッド、パブリック、プライベートクラウド環境をサポートします。
  • 接続プーリング: PgBouncer を接続プーラーとして利用することをサポートし、PostgreSQL クラスターのリソース利用をさらに最適化します。
  • 費用効率: PostgreSQL インスタンスと基盤となるインフラストラクチャのリソース使用率をより細かく制御することで、リソース使用率を向上させ、全体的なコストを削減できる可能性があります。

3. CloudNativePG の基本的機能

  • Kubernetes オペレーター: CNPG は Kubernetes オペレーターとして実装されています。これは、カスタムリソースを管理することによって Kubernetes の機能を拡張するアプリケーションです。
  • カスタムリソース (Cluster): PostgreSQL クラスターを表す Cluster という新しい Kubernetes リソースを導入します。
  • インスタンスマネージャー: 各 PostgreSQL ポッドにサイドカーとして注入されたインスタンスマネージャーを使用して、基盤となるインスタンスを継続的に管理します。
  • 宣言的な構成: ユーザーは、Cluster リソースを通じて、PostgreSQL クラスターの望ましい状態を宣言します。
  • リコンシリエーションループ: オペレーターは、宣言された状態と PostgreSQL クラスターの実際の状態を継続的に調整し、望ましい構成を達成するためにアクションを実行し、変更に対応します。
  • 内部ロジック: オペレーターは、PostgreSQL が提供するネイティブ機能を通じて物理レプリケーションを管理し、同期および非同期接続を設定し、フェイルオーバーを処理し、レプリケーションスロットを作成します。
  • オブジェクト管理: オペレーターは、Kubernetes オブジェクト (Secrets や ConfigMaps など) を直接管理します。
  • ネイティブ統合: 高可用性、スケーリング、ネットワーキングなどの多くの機能について、ネイティブな Kubernetes API および機能を活用します。

4. バージョン 1.25.0 の新機能

  • 宣言的なデータベース管理: 最も重要な新機能は、Database カスタムリソースの導入です。これにより、ユーザーは Kubernetes クラスター内で PostgreSQL データベースを宣言的に作成および管理できます。
  • 論理レプリケーション: PostgreSQL の論理レプリケーションを宣言的に管理するために、Publication および Subscription CRD を追加します。これにより、セットアップが簡素化され、オンラインマイグレーションが可能になります。
  • データ耐久性設定: synchronous スタンザに dataDurability オプションを追加し、同期レプリケーション中のデータ耐久性を優先できるようにします。
  • インプレースインスタンスマネージャーの更新: オペレーターは、インスタンスマネージャーのインプレース更新を実行できるようになり、オペレーターのアップグレード中にスイッチオーバーを回避できます。
  • マニフェストのサーバー側適用: 将来の Kubernetes バージョンとの互換性を確保するため、オペレーターのマニフェストをデプロイする際にサーバー側適用を使用します。
  • 同期レプリケーションの改善: このリリースでは、spec.postgresql.synchronous を通じて同期レプリケーションを構成する新しい方法が導入され、以前の方法よりも柔軟性と制御性が向上しています。
  • アップグレード手順の改善: オペレーターの古いバージョンからのアップグレードを強化し、以前のバージョンでの問題を解決します。
  • 改善されたメトリクス: Prometheus のメトリクスとログ処理機能を強化し、データベースに関するより詳細で深いインサイトを得ることができます。

CloudNativePG 1.25.0 は、データベース管理機能を大幅に強化し、レプリケーションの処理を簡素化します。Kubernetes での PostgreSQL デプロイメントを、自動化、信頼性、およびセキュリティに重点を置いて、より細かく制御できるようになりました。継続的に進化し、PostgreSQL データベースのデプロイと運用に利用できる堅牢かつクラウドネイティブなツールとしての地位を固めています。


日本語訳|CloudNativePG 1.25.0

※GoogleのAutoML Translationを使用して翻訳しております。

英語原文|CloudNativePG 1.25.0