Examples
例は、PostgreSQLクラスターをセットアップするための構成ファイルを示しています。
注釈
これらの例は、デモンストレーションと実験を目的としています。 クイックスタート で説明しているように、MinikubeまたはKindを使用して個人のKubernetesクラスターで実行できます。
注釈
使用可能なオプションのリストについては、 API Reference を参照してください。
基本
基本的なクラスター
クラスターの基本的な例。
カスタムクラスター
デフォルトのストレージクラスとカスタムパラメーターを使用する基本的なクラスター
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 を参照してください。
プーラー構成
カスタムサービス構成を使用したプーラー
宣言的なパブリケーションおよびサブスクリプションオブジェクトを介した論理レプリケーション
2つのテストマニフェストには、論理レプリケーションのセットアップに必要なすべてが含まれています。
パブリケーションを含むソースクラスター
cluster-example-logical-source.yaml
app
データベースで作成されたいくつかのテーブルを使用してクラスターcluster-example
をセットアップし、重要なことに、
アプリユーザーにレプリケーションを追加します 。 app
データベースにクラスターのパブリケーションが作成されます。パブリケーションは、クラスターのプライマリが起動して実行された後にのみリコンサイルされることに注意してください。
サブスクリプションを使用した宛先クラスター
前提条件 上記のように定義された、パブリケーションを含むソースクラスター。
cluster-example-logical-destination.yaml
次を使用してクラスターcluster-example-dest を設定します。
externalClustersスタンザで定義されたソースクラスター。appロールを使用して接続することに注意してください。これは、ソースクラスターがreplication特権を付与していることを前提としています。schemaOnlyが有効になったマイクロサービスタイプのブートストラップインポート
サブスクリプションは宛先クラスターで作成されます。サブスクリプションは、宛先クラスターのプライマリが起動して実行された後にのみ調整されることに注意してください。
両方のクラスターがリコンサイルされた後、パブリケーションオブジェクトとサブスクリプションオブジェクトとともに、ソースクラスターのテーブルとそのデータが宛先クラスターでレプリケートされたことを確認できます。
さらに、いくつかのスタンドアロンのマニフェストの例があります。
すべてのテーブルをターゲットとしたプレーンなパブリケーション
前提条件 既存のクラスターcluster-example 。
制約されたパブリケーションターゲットを含むパブリケーション
前提条件 既存のクラスターcluster-example 。
publication-example-objects.yaml
プレーンなサブスクリプション
前提条件 パブリケーションpub-all
を使用して、ソースとして設定された既存のクラスターcluster-example
。宛先クラスターとして設定されたクラスターcluster-example-dest
。レプリケーション特権を持つロールを含む、ソースクラスターへの接続パラメーターを含むexternalClusters
スタンザを含みます。
上記のマニフェストはすべて、app
データベースにパブリケーションまたはサブスクリプションを作成します。
Database
CRDは、データベースを宣言的に作成する便利な方法を提供します。これを使用すると、任意のデータベースに論理レプリケーションを設定できます。次のセクションに進みます。
Postgresデータベースの宣言的管理
プレーンなデータベース
前提条件 既存のクラスターcluster-example 。
ICUローカル仕様のデータベース
前提条件 Postgres
16以上を実行している既存のクラスターcluster-example 。