主な機能
========

サポートされているKubernetesディストリビューション
--------------------------------------------------

CloudNativePGの各マイナーリリースは、さまざまなKubernetesバージョン、通常、マイナーバージョンが最初にリリースされたときにCNCFによってサポートされているバージョンで動作するように設計されています。

詳細は :ref:`サポートされているリリース <サポートされているリリース>` ページを参照してください。

コンテナイメージ
----------------

 `CloudNativePG community <https://github.com/cloudnative-pg>`_ は、演算子とオペランドの両方、つまりPostgreSQLのコンテナイメージを維持します。

CloudNativePGオペレーターコンテナイメージは `distroless <https://github.com/GoogleContainerTools/distroless>`_ です

 `cloudnative-pg <https://github.com/cloudnative-pg/cloudnative-pg/pkgs/container/cloudnative-pg>`_  で利用できます。

PostgreSQLオペランドコンテナイメージは、複数のアーキテクチャでのすべての `PGDG supported versions of PostgreSQL <https://www.postgresql.org/>`_ で
 `postgres-containers <https://github.com/cloudnative-pg/postgres-containers/pkgs/container/postgresql>`_  から直接利用できます。

さらに、コミュニティは :ref:`PostGIS extension <PostGIS>`  のイメージを提供しています。

..  Warning::
   CloudNativePGでは、Kubernetesクラスター内のすべてのノードが同じCPUアーキテクチャであることを必要とします。したがって、ハイブリッドCPUアーキテクチャのKubernetesクラスターはサポートされていません。

.. _主な機能-1:

主な機能
--------

-  外部ツールを必要とせずに、高可用性を実現するKubernetes
   APIサーバーとの直接統合

-  自己修復機能、以下を介して

-  最も調整されたレプリカを昇格させることによるプライマリインスタンスのフェイルオーバー

-  レプリカの自動再作成

-  選択したレプリカの昇格によるプライマリインスタンスの計画的なスイッチオーバー

-  スケールアップ/ダウン機能

-  任意の数のインスタンスの定義最小1 - 1つのプライマリサーバー

-  アプリケーションをクラスターの唯一のプライマリサーバーに接続するための
   *読み取り-書き込み* サービスの定義

-  ワークロードを読み取るためのインスタンスにアプリケーションを接続するための
   *読み取り専用* サービスの定義

-  クラスターを介した特定の人気のPostgres拡張機能を含むPostgreSQL構成の宣言管理
   ``spec`` ``pgaudit`` 、\ ``auto_explain`` 、\ ``pg_stat_statements``
   、および\ ``pg_failover_slots``

-  Postgresのロール、ユーザー、グループの宣言的管理

-  PVCテンプレートを使用したローカル永続ボリュームのサポート

-  ポッドの永続ボリュームストレージの再利用

-  WALファイルの別冊

-  PostgreSQLマイナーバージョンのローリングアップデート

-  オペレーターアップグレードのインプレースまたはローリング更新

-  TLS接続とクライアント証明書認証

-  カスタムTLS証明書のサポートcert-managerとの統合を含む

-  オブジェクトストアへの継続的なWALアーカイブAWS S3およびS3互換、Azure
   Blob Storage、およびGoogle Cloud Storage

-  ボリュームスナップショットのバックアップ基になるストレージクラスでサポートされている場合

-  オブジェクトストアのバックアップAWS S3およびS3互換、Azure Blob
   Storage、およびGoogle Cloud Storage

-  ボリュームスナップショットまたはオブジェクトストアの既存のバックアップからのフルリカバリーおよびポイントインタイムリカバリー

-  PostgreSQLのメジャーアップグレードを含む、既存のPostgreSQLデータベースのオフラインインポート

-  宣言的な方法でのPostgreSQLクラスター全体、またはインスタンスのサブセットのフェンシング

-  宣言的な方法でのPostgreSQLクラスターの休止状態

-  同期レプリカのサポート

-  クラスターレベルでのHA物理レプリケーションスロットのサポート

-  スタンバイからのバックアップ

-  バックアップ保持ポリシーリカバリウィンドウに基づいて、オブジェクトストアのみ

-  並列WALアーカイブと復元により、データベースが大量の書き込みシステムでのWAL生成に追いつくことができます

-  オブジェクトストアにアップロードされたバックアップファイルのタグ付けをサポートして、オブジェクトストアレイヤーでオプションの保持管理を有効にします

-  複数のKubernetesクラスターにわたるPostgreSQLの展開、プライベート、パブリック、ハイブリッド、マルチクラウドアーキテクチャを有効にします

-  PgBouncerを使用した接続プーリング

-  ``nodeSelector`` を介したノードアフィニティのサポート

-  ``metrics``
   ポート9187を介したプロメテウスのユーザー定義メトリックのネイティブなカスタマイズ可能なエクスポーター

-  JSON形式のPostgreSQLエラーメッセージの標準出力ログ

-  ポッドの\ ``readOnlyRootFilesystem``
   セキュリティコンテキストを自動的に設定します

-  ``kubectl`` 用の\ ``cnpg`` プラグイン

-  単純なバインドと検索+バインドのLDAPクライアント認証

-  マルチアーチフォーマットのコンテナイメージ

-  OLMのインストール

..  Note::
   CloudNativePGは、データの永続性の管理に`StatefulSet` sを使用しません。代わりに、永続ボリューム要求PVCを直接管理します。興味がある場合は、 :ref:`カスタムポッドコントローラ <カスタムポッドコントローラ>` を読んで詳細をご覧ください。

このガイドについて
------------------

 :ref:`クイックスタート <クイックスタート>` の指示に従って、KindまたはMinikubeを使用してローカルKubernetesクラスターでCloudNativePGをテストします。

KubernetesとPostgreSQLの基本的な用語に慣れていない場合は、
 :ref:`始める前に <始める前に>` を参照してください。

-  `Postgres, PostgreSQL and the Slonik Logo <https://www.postgresql.org/about/policies/trademarks/>`_ 

は、カナダPostgreSQLコミュニティ協会の商標または登録商標であり、その許可を得て使用しています。\*
