Examples

例は、PostgreSQLクラスターをセットアップするための構成ファイルを示しています。

注釈

これらの例は、デモンストレーションと実験を目的としています。 クイックスタート で説明しているように、MinikubeまたはKindを使用して個人のKubernetesクラスターで実行できます。

注釈

使用可能なオプションのリストについては、 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クラスターの例。詳細は、 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

使用可能なオプションのリストについては、 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