CloudNativePG
=============

**CloudNativePG** は、オープンソース `operator <https://kubernetes.io/docs/concepts/extend-kubernetes/operator/>`_ 

プライベート、パブリック、ハイブリッド、またはマルチクラウド環境で実行されているサポートされている `Kubernetes <https://kubernetes.io>`_ クラスターで `PostgreSQL <https://www.postgresql.org/>`_ ワークロードを管理するように設計されています。
CloudNativePGは、宣言的構成や不変のインフラストラクチャなどのDevOpsの原則と概念を遵守しています。

``Cluster``
と呼ばれる新しいKubernetesリソースを定義します。高可用性と読み取り専用クエリのオフロードのために、選択したKubernetes名前空間に共存する単一のプライマリとオプションの数のレプリカで構成されるPostgreSQLクラスターを表します。

同じKubernetesクラスターにあるアプリケーションは、オペレーターによってのみ管理されるサービスを使用してPostgreSQLデータベースにアクセスでき、フェールオーバーまたはスイッチオーバーに続くプライマリロールの変更を心配する必要はありません。
Kubernetesクラスターの外部にあるアプリケーションは、TCP経由でPostgresを公開するようにServiceまたはIngressオブジェクトを構成する必要があります。
Webアプリケーションは、PgBouncerに基づいたネイティブ接続プーラーを利用できます。

CloudNativePGは、もともと `EDB <https://www.enterprisedb.com>`_ 
によってビルドされ、その後、Apache License
2.0の下でオープンソースをリリースし、2022年4月にCNCFサンドボックスに提出されました。
 `source code repository is in Github <https://github.com/cloudnative-pg/cloudnative-pg>`_  。

..  Note::
   :ref:`Operator Capability Levels model <オペレーター能力レベル>` に基づいて、ユーザーはCloudNativePGオペレーターからの**「レベルV - 自動パイロット」**機能セットを期待できます。

.. toctree::
  :maxdepth: 3

  ch_01
  before_you_start
  use_cases
  architecture
  installation_upgrade
  quickstart
  bootstrap
  database_import
  security
  instance_manager
  scheduling
  resource_management
  failure_modes
  rolling_update
  replication
  backup
  backup_barmanobjectstore
  wal_archiving
  backup_volumesnapshot
  recovery
  backup_recovery
  postgresql_conf
  declarative_role_management
  operator_conf
  cluster_conf
  storage
  labels_annotations
  monitoring
  logging
  certificates
  ssl_connections
  applications
  connection_pooling
  replica_cluster
  kubernetes_upgrade
  expose_pg_services
  kubectl-plugin
  failover
  troubleshooting
  fencing
  declarative_hibernation
  postgis
  e2e
  container_images
  operator_capability_levels
  controller
  samples
  networking
  benchmarking
  commercial_support
  faq
  cloudnative-pg.v1
  supported_releases
  release_notes
  appobject_stores
  
