Examples
========
.. raw:: html
例は、PostgreSQLクラスターをセットアップするための構成ファイルを示しています。
.. Note::
これらの例は、デモンストレーションと実験を目的としています。 :ref:`クイックスタート <クイックスタート>` で説明しているように、MinikubeまたはKindを使用して個人のKubernetesクラスターで実行できます。
.. Note::
使用可能なオプションのリストについては、 :ref:`API Reference ` を参照してください。
基本
----
**基本的なクラスター**
`cluster-example.yaml `_
クラスターの基本的な例。
**カスタムクラスター**
`cluster-example-custom.yaml `_
デフォルトのストレージクラスとカスタムパラメーターを使用する基本的なクラスター
``postgresql.conf`` および\ ``pg_hba.conf`` ファイル。
**カスタマイズされたストレージクラスを使用したクラスター**
`cluster-storage-class.yaml `_ ``standard``
の指定されたストレージクラスを使用する基本クラスター。
**永続的なボリューム要求PVCテンプレートが構成されたクラスター**
`cluster-pvc-template.yaml `_
明示的な永続ボリューム要求テンプレートを使用した基本クラスター。
**拡張構成例**
`cluster-example-full.yaml `_ 使用可能なオプションのほとんどを設定するクラスター。
**SQLファイルを使用したブートストラップクラスター**
`cluster-example-initdb-sql-refs.yaml `_
データベースが作成された直後に、シークレットと\ ``ConfigMap``
で定義されたクエリーセットを実行するクラスター例。
**カスタマイズされた\ ``pg_hba`` 構成を使用したサンプルクラスター**
`cluster-example-pg-hba.yaml `_
ユーザアプリが証明書を使用して認証できるようにする基本的なクラスター。
**投影されたボリュームテンプレートを使用してマウントされたシークレットとConfigMapを含むサンプルクラスター**
`cluster-example-projected-volume.yaml `_
投影されたボリュームマウントを使用してPostgresポッドにマウントされた既存の\ ``Secret``
および\ ``ConfigMap`` を含む基本的なクラスター。
セキュリティ
------------
**カスタムセキュリティコンテキストを使用したサンプルクラスター**
`cluster-example-security-context.yaml `_
ポッドとコンテナの両方のセキュリティコンテキストをカスタマイズする方法を示すクラスター。これは、ポッドセキュリティ標準を使用する場合、または特定のセキュリティ要件を満たす場合に役立ちます。
バックアップ
------------
**カスタマイズされたストレージクラスとバックアップ**
*前提条件*
バケットストレージが利用できること。サンプル構成はAWS用です。セットアップに合わせて変更します。
`cluster-storage-class-with-backup.yaml `_ バックアップが構成されたクラスター。
**バックアップ**
*前提条件*
`cluster-storage-class-with-backup.yaml `_
適用済みで正常稼働
。
`backup-example.yaml `_ 前のサンプルに対して実行されるバックアップの例。
**minio用にバックアップが構成された単純なクラスター**
*前提条件*
この構成では、minioが実行され動作していることを前提としています。
minioパラメーターまたはクラウドソリューションで\ ``backup.barmanObjectStore``
を更新します。
`cluster-example-with-backup.yaml `_
バックアップが構成された基本的なクラスター。
**Scaleway Object
Storage用に構成されたバックアップを含む単純なクラスター**
*前提条件* この構成では、Scaleway Object
Storageバケットが存在することを前提としています。
``backup.barmanObjectStore`` をScalewayパラメーターで更新します。
`cluster-example-with-backup-scaleway.yaml `_
Scaleway Object
Storageで動作するように構成されたバックアップを含む基本的なクラスター。
レプリカクラスター
------------------
**オブジェクトストアからのバックアップによるレプリカクラスター**
*前提条件*
`cluster-storage-class-with-backup.yaml `_
適用され、正常な、およびバックアップ
`cluster-example-trigger-backup.yaml `_
適用されて完了しました。
`cluster-example-replica-from-backup-simple.yaml `_
バックアップが構成されたクラスターに続くレプリカクラスター。
**ボリュームスナップショットによるレプリカクラスター**
*前提条件*
`cluster-example-with-volume-snapshot.yaml `_
適用され、正常な、およびボリュームスナップショット
`backup-with-volume-snapshot.yaml `_
適用されて完了しました。
`cluster-example-replica-from-volume-snapshot.yaml `_
ボリュームスナップショットが構成されたクラスターに続くレプリカクラスター。
**ストリーミングpg_basebackupを介したレプリカクラスター**
*前提条件*
`cluster-example.yaml `_
適用済みで正常稼働
。
`cluster-example-replica-streaming.yaml `_ ストリーミングレプリケーションを使用した\ ``cluster-example``
に続くレプリカクラスター。
PostGIS
-------
**PostGISの例**
`postgis-example.yaml `_ PostGISクラスターの例。詳細は、
:ref:`PostGISクラスター ` を参照してください。
管理対象ロール
--------------
**宣言的ロール管理を使用したクラスター**
`cluster-example-with-roles.yaml `_ ``managed`` スタンザを使用してロールを宣言します。
Kubernetesシークレットを使用したパスワード管理が含まれます。
管理対象サービス
----------------
**管理対象サービスを使用したクラスター**
`cluster-example-managed-services.yaml `_ ``managed``
スタンザを使用してサービスを宣言します。デフォルトサービスが無効になり、定義された\ ``LoadBalancer``
タイプの新しい\ ``rw`` サービステンプレートが含まれます。
宣言的テーブルスペース
----------------------
**宣言的テーブルスペースを使用したクラスター**
`cluster-example-with-tablespaces.yaml `_
**宣言的テーブルスペースとバックアップを使用したクラスター**
*前提条件*
この構成では、minioが実行され動作していることを前提としています。
minioパラメーターまたはクラウドソリューションで\ ``backup.barmanObjectStore``
を更新します。
`cluster-example-with-tablespaces-backup.yaml `_
**オブジェクトストアからテーブルスペースを使用して復元されたクラスター**
*前提条件*
以前のクラスターが適用され、ベースバックアップが完了しました。
``bootstrap.recovery.backup.name``
をバックアップ名で更新することを忘れないでください。
`cluster-restore-with-tablespaces.yaml `_
使用可能なオプションのリストについては、
:ref:`API Reference ` を参照してください。
プーラー構成
------------
**カスタムサービス構成を使用したプーラー**
`pooler-external.yaml `_
宣言的なパブリケーションおよびサブスクリプションオブジェクトを介した論理レプリケーション
----------------------------------------------------------------------------------------
2つのテストマニフェストには、論理レプリケーションのセットアップに必要なすべてが含まれています。
**パブリケーションを含むソースクラスター**
`cluster-example-logical-source.yaml `_
``app``
データベースで作成されたいくつかのテーブルを使用してクラスター\ ``cluster-example``
をセットアップし、重要なことに、
*アプリユーザーにレプリケーションを追加します* 。 ``app``
データベースにクラスターのパブリケーションが作成されます。パブリケーションは、クラスターのプライマリが起動して実行された後にのみリコンサイルされることに注意してください。
**サブスクリプションを使用した宛先クラスター**
*前提条件*
上記のように定義された、パブリケーションを含むソースクラスター。
`cluster-example-logical-destination.yaml `_
次を使用してクラスター\ ``cluster-example-dest`` を設定します。
- ``externalClusters`` スタンザで定義されたソースクラスター。 ``app``
ロールを使用して接続することに注意してください。これは、ソースクラスターが\ ``replication``
特権を付与していることを前提としています。
- ``schemaOnly``
が有効になったマイクロサービスタイプのブートストラップインポート
サブスクリプションは宛先クラスターで作成されます。サブスクリプションは、宛先クラスターのプライマリが起動して実行された後にのみ調整されることに注意してください。
両方のクラスターがリコンサイルされた後、パブリケーションオブジェクトとサブスクリプションオブジェクトとともに、ソースクラスターのテーブルとそのデータが宛先クラスターでレプリケートされたことを確認できます。
さらに、いくつかのスタンドアロンのマニフェストの例があります。
**すべてのテーブルをターゲットとしたプレーンなパブリケーション**
*前提条件* 既存のクラスター\ ``cluster-example`` 。
`publication-example.yaml `_
**制約されたパブリケーションターゲットを含むパブリケーション**
*前提条件* 既存のクラスター\ ``cluster-example`` 。
`publication-example-objects.yaml `_
**プレーンなサブスクリプション**
前提条件 パブリケーション\ ``pub-all``
を使用して、ソースとして設定された既存のクラスター\ ``cluster-example``
。宛先クラスターとして設定されたクラスター\ ``cluster-example-dest``
。レプリケーション特権を持つロールを含む、ソースクラスターへの接続パラメーターを含む\ ``externalClusters``
スタンザを含みます。
`subscription-example.yaml `_
上記のマニフェストはすべて、\ ``app``
データベースにパブリケーションまたはサブスクリプションを作成します。
Database
CRDは、データベースを宣言的に作成する便利な方法を提供します。これを使用すると、任意のデータベースに論理レプリケーションを設定できます。次のセクションに進みます。
Postgresデータベースの宣言的管理
--------------------------------
**プレーンなデータベース**
*前提条件* 既存のクラスター\ ``cluster-example`` 。
`database-example.yaml `_
**ICUローカル仕様のデータベース**
*前提条件* Postgres
16以上を実行している既存のクラスター\ ``cluster-example`` 。
`database-example-icu.yaml `_