ページの先頭行へ戻る
Enterprise Postgres 14 SP1 オペレーターリファレンス
FUJITSU Software

1.1 FEPClusterパラメータ

Kubernetesコマンド:kubectl apply-f FEPClusterCR.yaml

FEPClusterCR.yamlに提供された情報を持つFEPClusterが作成されます。

FEPクラスタの初期構成とその後の変更は、FEPClusterカスタムリソースを使用して行います。

フィールド

省略値

説明

metadata.name

new-fep

クラスタの名前

FEPサーバコンテナはこの値をPatroniスコープに使用します。

例) new-fep

spec.fep.autoPodRestart

省略

オプション

このパラメータは、FEPまたはバックアップコンテナのCPU、メモリ、またはイメージの値がFEPClusterカスタムリソースで更新されたときの動作に影響します。

このパラメータが定義されていない、および、trueが設定されている場合、オペレータは自動的にFEPActionカスタムリソースを作成し、停止を最小限に抑えるためにすべてのPodを順番に再起動して値を有効にします。

falseが設定されている場合、Podの自動再起動は行われません

変更を有効にするには、タイプ‘pod_restart’、引数‘ALL’のFEPActionカスタムリソースを作成して、Podを再起動する必要があります。

spec.fep.fepVersion

省略

オプション

新しいFEPクラスタをデプロイする場合、このパラメータはデプロイに使用するFEPメジャーバージョンを制御します。

指定しない場合、オペレーターはオペレーターがサポートする最新のFEPバージョンを使用します。

fepVersionが定義されていて、spec.fep.image.imageが定義されていない場合、オペレータは特定のバージョンのFEPを展開します。

fepVersionとimageの両方が定義されている場合、Operatorはイメージを使用し、fepVersionの値を破棄します。

現在のサポート値:12、13、14

注意 : fepVersionのあるバージョンから別のバージョンへの変更は、展開後はサポートされません。

spec.fep.customAnnotation.allDeployments

{}

(*)

この下の内容はオプションです。

ユーザーは、{}を削除したり、複数のキーと値のペアを追加したりできます。

これらのペアはすべて、FEP statefulSetとFEP Podの注釈に追加されます。

デフォルトのままにすると、PodとstatefulSetsに注釈は追加されません。

spec.fep.image.image

省略

使用するFEPサーバコンテナーイメージ

quay.io/fujitsu/fujitsu-enterprise-postgres-14-server:ubi8-14-0.0を参照してください。

オプションです。

イメージ行はデフォルトでは省略されています。

このキーの優先順位はfepVersionよりも高くなります。fepVersionとimageの両方を省略した場合、Operatorはサポートしている最新のFEPバージョンを使用します。fepVersionとimageの両方が指定されている場合、Operatorは指定されたイメージを使用し、fepVersionの値を無視します。

spec.fep.image.pullPolicy

IfNotPresent

spec.fep.mcSpec.limits

cpu: 500m

memory: 700Mi

spec.fep.mcSpec.requests

cpu: 200m

memory: 512Mi

spec.fep.sysExtraLogging

false

オペレータの追加デバッグメッセージをオンにするには、値をtrueに設定します。

いつでもオン/オフできます。

spec.fep.instances

1

マスターとレプリカの両方を含む、クラスタ内のノードの数。

カスタムリソースの例では、認証のために1に保持されています。

ただし、1つのマスターと2つのレプリカについては3に変更できます。

spec.fep.servicePort

27500

FEPマスターサービス用のTCPポート

spec.fep.syncMode

off

レプリケーションモード:

off - 非同期レプリケーション

on - 同期レプリケーション

spec.fep.forceSsl

true

サーバとの通信にSSLのみを使用するように制御します。変更はpg_hba.confに反映されます。

spec.fep.locale

省略

(*)

オプション

FEPCluster作成時のみ指定可能です。

データベースクラスタのロケール設定:

ja_JP - 日本ロケール

省略時 - C

spec.fep.monitoring

オプションセクションです。

監視を有効(true)または無効(false)にするかどうか、MTLSを有効または無効にするかどうか、および、基本認証を有効または無効にするかどうかを定義します。

spec.fep.monitoring.enable

false

trueに設定すると、オペレーターは指定されたスペックでFEPExporterを作成します。

spec.fep.monitoring.fepExporter

オプションセクションです。

Exporter仕様セクションは、enable:trueの場合にのみ適用されます。

spec.fep.monitoring.fepExporter.authSecret

オプションセクションです。

ユーザーのユーザー名と暗号化されたパスワードを提供する基本認証シークレット

spec.fep.monitoring.fepExporter.authSecret.secretName

(ユーザーが作成)

必須

ユーザー名とパスワードを含むシークレットの名前

spec.fep.monitoring.fepExporter.authSecret.userKey

(ユーザーが作成)

必須

指定したシークレットのユーザー名のキー

spec.fep.monitoring.fepExporter.authSecret.passwordKey

(ユーザーが作成)

f必須

指定されたシークレットのパスワードのキー

spec.fep.monitoring.fepExporter.tls

オプションセクションです。

FEPExporter MTLS仕様

Prometheus仕様にtls仕様が定義されている場合は必須

spec.fep.monitoring.fepExporter.tls.certificateName

(ユーザーが作成)

必須

FepExporterの証明書を含むKubernetes TLSシークレットを指します。Prometheusはこれを証明書認証に使用します。証明書自体はtls.crtキーに格納されます。

spec.fep.monitoring.fepExporter.tls.caName

(ユーザーが作成)

必須

サーバ証明書を確認するためにクライアントが使用する追加のCAを含むKubernetesの設定マップを指します。CAは、ca.crtキーに格納されます。

spec.fep.monitoring.fepExporter.customLabel

オプション

Prometheus ServiceMonitorラベルに追加するキーと値のペアのリスト。次のラベルは、値が指定されているかどうかに関係なく、常にServiceMonitorに追加されます。
fepsmgrp:sm-fep-exporter

spec.fep.monitoring.prometheus

オプションセクションです。

FEPExporterにtls仕様が定義されている場合、Prometheus仕様は必須です。

spec.fep.monitoring.prometheus.tls

Prometheus MTLS仕様

spec.fep.monitoring.prometheus.tls.certificateName

(ユーザーが作成)

オプションのパラメータです。

Prometheusの証明書を含むKubernetes TLSシークレットを指しています。FEPExporterはこれを証明書認証に使用します。証明書自体はtls.crtキーに格納されます

spec.fep.monitoring.prometheus.tls.caName

(ユーザーが作成)

オプションのパラメータです。

サーバ証明書を確認するためにクライアントが使用する追加のCAを含むKubernetesの設定マップを指します。CAは、ca.crtキーに格納されます。

spec.fep.podAntiAffinity

false

すべてのPodが同じワーカーノードで実行されないように定義します。

spec.fep.podDisruptionBudget

false

保守などのために一部のノードが自発的にドレーンされている場合でも、アプリケーションのPod数を最小限に抑えることができます。

spec.fep.replicationSlots

Patroni永続レプリケーションスロットのリスト。

spec.fep.replicationSlots.demo_subscription1

“demo_subscription1”はスロット名です。この名前は、クラスタ内のPod名(例:new-fep-sts-01)と同じにすることはできません。そうしないと、スロットは作成されません。

spec.fep.replicationSlots.type

logical

ロジカルレプリケーションの場合は、“logical”である必要があります。

spec.fep.replicationSlots.database

postgres

ロジカルレプリケーション用のデータベース名を指定します。

spec.fep.replicationSlots.plugin

pgoutput

FEPはデフォルトで“pgoutput”をサポートします。

spec.fep.usePodName

オプション

trueに設定すると、内部Pod通信が行われ、IPアドレスの代わりにホスト名がPatroniとPostgresの両方で使用されます。Podのホスト名は予測可能で、サーバ証明書の作成に使用できますが、IPアドレスは予測不可能で、証明書の作成には使用できないため、これはTLSにとって重要です。TLS (例:サーバ証明書)を使用しない場合でも、このキーをtrueに設定しても悪影響はありません。

spec.fep.patroni.tls.certificateName

(ユーザーが作成)

オプション

Patroniの証明書を含むKubernetes TLSシークレットを指します。証明書自体はtls.crtキーに格納されます。このフィールドはオプションです。

このキーを設定すると、オペレーターはsystemCertificatesの値を無視します。

spec.fep.patroni.tls.caName

(ユーザーが作成)

オプション

Patroniがクライアントを検証するための追加のCAを含むKubernetesのconfigマップを示します。CAは、ca.crtキーに格納されます。このフィールドはオプションです。

spec.fep.postgres.tls.certificateName

(ユーザーが作成)

オプション

Postgresの証明書を含むKubernetes TLSシークレットを指します。証明書自体はtls.crtキーに格納されます。このフィールドはオプションです。このキーを設定すると、オペレーターはsystemCertificatesの値を無視します。

spec.fep.postgres.tls.caName

(ユーザーが作成)

オプション

Postgresがクライアントを検証するための追加のCAを含むKubernetesのconfigマップを指します。CAは、ca.crtキーに格納されます。このフィールドはオプションです。

spec.fep.postgres.tls.privateKeyPassword

(ユーザーが作成)

オプション

上記のプライベートキーのパスワードを含むKubernetesシークレットを指します。このフィールドはオプションです。

spec.fep.pgAuditLog.auditLogPath

監査ログファイルが格納されるディレクトリ。これは、fepChildCrVal.customPgAudit.log_directoryで定義されたものと一致する必要があります。

spec.fep.pgAuditLog.schedules

監査ログをアップロードするスケジュール

spec.fep.pgAuditLog.schedules.upload

crontab形式でのスケジュールのアップロード

spec.fep.pgAuditLog.endpoint.protocol

監査ログファイルをアップロードするためのWebサーバプロトコル。

サポートされているタイプはhttpまたはhttpsです。

spec.fep.pgAuditLog.endpoint.url

監査ログファイルをアップロードするWebサーバのURL

spec.fep.pgAuditLog.endpoint.customCertificateName

オプション

Webサーバとの通信をセットアップするための証明書を含むシークレット

spec.fep.pgAuditLog.endpoint.insecure

false

オプション

curl-insecureオプションと同等

spec.fep.pgAuditLog.endpoint.authentication

オプション

Webサーバへの基本認証用のユーザー名とパスワードを含むシークレットの名前

spec.fep.pgAuditLog.endpoint.fileUploadParameter

file

オプション

Webサーバによって定義されたファイルアップロードパラメータ

spec.fep.pgBadger.schedules.create

レポートを作成してアップロードするための作成スケジュール

spec.fep.pgBadger.schedules.cleanup

コンテナに残されたレポートを削除するための クリーンアップスケジュール

spec.fep.pgBadger.options.incremental

false

オプション

デフォルトはfalseです。trueを設定すると、pgbadgerで増分レポートを作成します。

spec.fep.pgBadger.endpoint.authentication

オプション

エンドポイントにアクセスするための認証情報を含むシークレット

Basic認証のみをサポートします。

spec.fep.pgBadger.endpoint.customCertificateName

オプション

customCertificate CRでのクライアント証明書の参照

spec.fep.pgBadger.endpoint.fileUploadParameter

file

オプション

Webサーバによって定義されたファイルアップロードパラメータ

spec.fep.pgBadger.endpoint.insecure

false

オプション

curl-insecureオプションと同じです。

spec.fep.pgBadger.endpoint.url

レポートファイルをアップロードするWebサーバのURL

spec.fepChildCrVal.customCertificates

オプション

オプションのパラメータで、次のパラメータで構成されます。証明書を定義するための要素の配列です。ロジカルレプリケーション用のパブリッシャクラスタとサブスクライバクラスタ間のSSL接続のセットアップに使用されます。

spec.fepChildCrVal.customCertificates.userName

オプション

パブリッシャデータベースのユーザー名を指定します。このパラメーターを指定すると、FEP Server Container-/tmp/custom_certs/<username>の下に空のフォルダーが作成されます。カスタム証明書は、この空のフォルダにマウントされます。ただし、このパラメータが指定されていない場合、セクションは無視され、フォルダは作成されません。証明書はそれなしではマウントされません。

spec.fepChildCrVal.customCertificates.certificateName

(ユーザーが作成)

オプション

カスタム証明書を含むKubernetes TLSシークレットを指します。証明書自体はtls.crtキーに格納されます。

spec.fepChildCrVal.customCertificates.caName

(ユーザーが作成)

オプション

サーバを確認するためのCA証明書を含むKubernetesの設定マップを指しています。CAは、ca.crtキーに格納されます。

spec.fepChildCrVal.backup

オプション

このセクションは、クラスタバックアップ機能のfepbackupサイドカーを有効にするために定義されています。

spec.fepChildCrVal.backup.image.image

省略

使用するFEPバックアップコンテナイメージ

quay.io/fujitsu/fujitsu-enterprise-postgres-14-backup:ubi8-14-0.0

オプションです。

デフォルトでは省略されています。この場合、オペレーターコンテナ環境からimageのURLが取得されます。

imageを指定すると、オペレーターはそのイメージを使用してバックアップコンテナを展開します。

spec.fepChildCrVal.backup.image.pullPolicy

IfNotPresent

spec.fepChildCrVal.backup.mcSpec.limits

cpu: 0.2

memory: "300Mi"

spec.fepChildCrVal.backup.mcSpec.requests

cpu: 0.1

memory: "200Mi"

spec.fepChildCrVal.backup.pgbackrestParams

[global]

repo1-retention-full=7

repo1-retention-full-type=time

log-path=/database/log/backup

「|」の後ろには何も指定せず、pgbackrest.confに設定されたパラメータをその下の行に記述します。

spec.fepChildCrVal.backup.pgbackrestKeyParams

オプション

“|”固定とし、その下の行よりpgbackrest.confで設定するパラメタを記述します。このパラメータで記述された値は*****でマスクされます。

spec.fepChildCrVal.backup.caName

オプション

システムのデフォルト以外のCAファイルを使用する場合に設定します。

作成したConfigmapの名前を指定します。

spec.fepChildCrVal.backup.repoKeySecretName

オプション

オブジェクトストレージの鍵ファイルより生成したKubernetes Secretの名前を指定します。配列形式で指定します。

spec.fepChildCrVal.backup.schedule.num

0

設定するスケジュールの数

バックアップスケジュールの最大数は5です。

spec.fepChildCrVal.backup.scheduleN.schedule

"|"

cron形式のバックアップスケジュール

日付と時刻はUTC時間です。

spec.fepChildCrVal.backup.scheduleN.type

"|"

full : フルバックアップを実行します(データベースクラスタの内容をバックアップします)。

incr : 増分バックアップを実行します(最後のバックアップ移行時に変更されたデータベースクラスタファイルのみをバックアップします)。

spec.fepChildCrVal.backup.scheduleN.repo

1

オプション

指定されたレポジトリでバックアップを取得します。

1-256の範囲で指定可能です。

spec.fepChildCrVal.customPgAudit

[output]

logger = 'auditlog'

log_directory = '/database/log/audit'

log_truncate_on_rotation = on

log_filename = 'pgaudit-%a.log'

log_rotation_age = 1d

log_rotation_size = 0

[rule]

PgAuditファイルの内容

spec.fepChildCrVal.customPgHba

# define pg_hba custom rules here to be merged with default rules.

# TYPE DATABASE USER ADDRESS METHOD

pg_hba.confに挿入する項目

spec.fepChildCrVal.customPgParams

# define custom postgresql.conf parameters below to override defaults.

# Current values are as per default FEP deployment

shared_preload_libraries='pgx_datamasking,pg_prewarm,pg_stat_statements,fsep_operator_security'

session_preload_libraries='pg_prewarm'

max_prepared_transactions = 100

max_worker_processes = 30

max_connections = 100

work_mem = 1MB

maintenance_work_mem = 12MB

shared_buffers = 128MB

effective_cache_size = 384MB

checkpoint_completion_target = 0.8

# tcp parameters

tcp_keepalives_idle = 30

tcp_keepalives_interval = 10

tcp_keepalives_count = 3

# logging parameters in default fep installation

# if log volume is not defined, log_directory should be

# changed to '/database/userdata/data/log'

log_directory = '/database/log'

log_filename = 'logfile-%a.log'

log_file_mode = 0600

log_truncate_on_rotation = on

log_rotation_age = 1d

log_rotation_size = 0

log_checkpoints = on

log_line_prefix = '%e %t [%p]: [%l-1] user=%u,db=%d,app=%a,client=%h'

log_lock_waits = on

log_autovacuum_min_duration = 60s

logging_collector = on

pgaudit.config_file='/opt/app-root/src/pgaudit-cfg/pgaudit.conf'

log_replication_commands = on

log_min_messages = WARNING

log_destination = stderr

# wal_archive parameters in default fep installation

archive_mode = on

archive_command = 'pgbackrest --stanza=backupstanza --config=/database/userdata/pgbackrest.conf archive-push %p'

wal_level = replica

max_wal_senders = 12

wal_keep_segments = 64

track_activities = on

track_counts = on

password_encryption = 'md5'

postgresql.conf内のPostgres設定

FEPサーバコンテナで、FEPBaseVersionが15未満のイメージを利用する場合は、fsep_operator_securityは設定値から除外してください。

spec.fepChildCrVal.storage.dataVol

必須ボリューム

spec.fepChildCrVal.storage.dataVol.size

2Gi

(**)

データボリュームのサイズ

データボリュームを指定する必要があります。

spec.fepChildCrVal.storage.dataVol.storageClass

省略

(*)

データボリュームのストレージクラス

この行を省略すると、作成された永続ボリュームはKubernetesクラスタのデフォルトのストレージクラスを使用します。

spec.fepChildCrVal.storage.dataVol.accessModes

省略

(*)

データボリュームのアクセスモード

アクセスモードの配列として指定します。例: [ReadWriteMany]

省略すると、[ReadWriteOnce]として扱われます。

spec.fepChildCrVal.storage.walVol

必須ボリューム

spec.fepChildCrVal.storage.walVol.size

1200Mi

(**)

WALボリュームのサイズ

WALボリュームを指定しなければなりません。

spec.fepChildCrVal.storage.walVol.storageClass

省略

(*)

WALボリュームのストレージクラス

省略すると、作成された永続ボリュームはKubernetesクラスタのデフォルトのストレージクラスを使用します。

spec.fepChildCrVal.storage.walVol.accessModes

省略

(*)

WALボリュームのアクセスモード

アクセスモードの配列として指定します。例: [ReadWriteMany]

省略すると、[ReadWriteOnce]として扱われます。

spec.fepChildCrVal.storage.tablespaceVol

オプションのボリューム

spec.fepChildCrVal.storage.tablespaceVol.size

512Mi

(**)

テーブルスペースボリュームのサイズ

このボリュームはオプションであり、省略可能です。

spec.fepChildCrVal.storage.tablespaceVol.storageClass

省略

(*)

テーブルスペースボリュームのストレージクラス

省略すると、作成された永続ボリュームはKubernetesクラスタのデフォルトのストレージクラスを使用します。

spec.fepChildCrVal.storage.tablespaceVol.accessModes

省略

(*)

テーブルスペースボリュームのアクセスモード

アクセスモードの配列として指定します。例: [ReadWriteMany]

省略すると、[ReadWriteOnce]として扱われます。

spec.fepChildCrVal.storage.archivewalVol

バックアップセクションが定義されている場合は必須です。

その他の場合は任意です。

spec.fepChildCrVal.storage.archivewalVol.size

1Gi

(**)

アーカイブボリュームのサイズ。このボリュームはオプションであり、省略可能です。

spec.fepChildCrVal.storage.archivewalVol.storageClass

省略

(*)

アーカイブWALボリュームのストレージクラス

省略すると、作成された永続ボリュームはKubernetesクラスタのデフォルトのストレージクラスを使用します。

インスタンスの数が1を超え、S3でバックアップが実行されていない場合、それぞれのストレージクラスを持つNFSでarchivewalVolとbackupVolの両方をホストする必要があります。

spec.fepChildCrVal.storage.archivewalVol.accessModes

省略

(*)

アーカイブされたWALボリュームのアクセスモード

アクセスモードの配列として指定します。例: [ReadWriteMany]

省略すると、[ReadWriteOnce]として扱われます。

インスタンスの数が1を超え、S3でバックアップが実行されていない場合、アクセスモードを[ReadWriteMany]に設定したNFSなどの共有ストレージでarchivewalVolとbackupVolの両方をホストする必要があります。

spec.fepChildCrVal.storage.logVol

オプションのボリューム

spec.fepChildCrVal.storage.logVol.size

1Gi

(**)

ログボリュームのサイズ

このボリュームはオプションであり、省略可能です。

spec.fepChildCrVal.storage.logVol.storageClass

省略

(*)

ログボリュームのストレージクラス

省略すると、作成された永続ボリュームはKubernetesクラスタのデフォルトのストレージクラスを使用します。

spec.fepChildCrVal.storage.logVol.accessModes

省略

(*)

ログボリュームのアクセスモード

アクセスモードの配列として指定します。例: [ReadWriteMany]

省略すると、[ReadWriteOnce]として扱われます。

spec.fepChildCrVal.storage.backupVol

バックアップセクションが定義されている場合は必須です。

その他の場合は任意です。

spec.fepChildCrVal.storage.backupVol.size

2Gi

(**)

バックアップボリュームのサイズ

このボリュームはオプションであり、省略可能です。

spec.fepChildCrVal.storage.backupVol.storageClass

省略

(*)

バックアップボリュームのストレージクラス

省略すると、作成された永続ボリュームはKubernetesクラスタのデフォルトのストレージクラスを使用します。

インスタンスの数が1を超え、S3でバックアップが実行されていない場合、それぞれのストレージクラスを持つNFSでarchivewalVolとbackupVolの両方をホストする必要があります。

spec.fepChildCrVal.storage.backupVol.accessModes

省略

(*)

バックアップボリュームのアクセスモード

アクセスモードの配列として指定します。例: [ReadWriteMany]

省略すると、[ReadWriteOnce]として扱われます。

インスタンスの数が1を超え、S3でバックアップが実行されていない場合、アクセスモードを[ReadWriteMany]に設定したNFSなどの共有ストレージでarchivewalVolとbackupVolの両方をホストする必要があります。

spec.fepChildCrVal.sysUsers.pgAdminPassword

省略

ユーザー“postgres”のパスワード

利用可能な文字種

半角英字(A-Z、a-z)、半角数字(0-9)、半角記号(~!@#$^&*()-=<>,.?;:|/+)

このパラメータが省略されている場合は、Operatorが自動的にパスワードを生成します。

FEPサーバコンテナで、FEPBaseVersionが15未満のイメージを利用する場合は、本パラメタを必ず指定してください。

spec.fepChildCrVal.sysUsers.pgdb

mydb

(*)

プロビジョニング中に作成されるデータベース

利用可能な文字種

半角英字(A-Z、a-z)、半角数字(0-9)、半角アンダースコア(_)

ただし、数字は先頭に使えません。

また、半角英大文字は半角英小文字として扱われます。

最大文字列長

63文字

spec.fepChildCrVal.sysUsers.pguser

mydbuser

(*)

プロビジョニング中に作成されるデータベースユーザー

利用可能な文字種

半角英字(A-Z、a-z)、半角数字(0-9)、半角アンダースコア(_)

ただし、数字は先頭に使えません。

また、半角英大文字は半角英小文字として扱われます。

最大文字列長

63文字

spec.fepChildCrVal.sysUsers.pgpassword

mydbpassword

データベースユーザーpguserのパスワード

利用可能な文字種

半角英字(A-Z、a-z)、半角数字(0-9)、半角記号(~!@#$^&*()-=<>,.?;:|/+)

spec.fepChildCrVal.sysUsers.pgrepluser

repluser

(*)

レプリケーションのデータベースユーザー

利用可能な文字種

半角英字(A-Z、a-z)、半角数字(0-9)、半角アンダースコア(_)

ただし、数字は先頭に使えません。

最大文字列長

63文字

spec.fepChildCrVal.sysUsers.pgreplpassword

repluserpwd

データベースユーザーrepluserのパスワード

利用可能な文字種

半角英字(A-Z、a-z)、半角数字(0-9)、半角記号(~!@#$^&*()-=<>,.?;:|/+)

spec.fepChildCrVal.sysUsers.tdepassphrase

tde-passphrase

透過的データ暗号化キーストアパスフレーズ

spec.fepChildCrVal.sysUsers.pgRewindUser

rewind_user

巻き戻し用データベースユーザー

利用可能な文字種

半角英字(A-Z、a-z)、半角数字(0-9)、半角アンダースコア(_)

ただし、数字は先頭に使えません。

最大文字列長

63文字

spec.fepChildCrVal.sysUsers.pgRewindUserPassword

rewind_password

データベースユーザーrewinduserのパスワード

利用可能な文字種

半角英字(A-Z、a-z)、半角数字(0-9)、半角記号(~!@#$^&*()-=<>,.?;:|/+)

spec.fepChildCrVal.sysUsers.pgMetricsUser

オプション

FEPExporter接続のユーザー。後で定義可能です。

利用可能な文字種

半角英字(A-Z、a-z)、半角数字(0-9)、半角アンダースコア(_)

ただし、数字は先頭に使えません。

また、半角英大文字は半角英小文字として扱われます。

最大文字列長

63文字

spec.fepChildCrVal.sysUsers.pgMetricsUserPassword

オプション

メトリクスユーザーのパスワード。後で定義可能です。

利用可能な文字種

半角英字(A-Z、a-z)、半角数字(0-9)、半角記号(~!@#$^&*()-=<>,.?;:|/+)

spec.fepChildCrVal.sysUsers.pgAdminTls.certificateName

Postgresユーザー“postgres”の証明書を含むKubernetes TLSシークレットを指します。Patroniはこれを証明書認証に使用します。証明書自体はtls.crtキーに格納されます。このフィールドはオプションです。

spec.fepChildCrVal.sysUsers.pgAdminTls.caName

サーバ証明書を確認するためにクライアントが使用する追加のCAを含むKubernetesのconfigマップを指します。CAは、ca.crtキーに格納されます。このフィールドはオプションです。

spec.fepChildCrVal.sysUsers.pgAdminTls.sslMode

prefer

サーバとのTLSネゴシエーションのタイプを指定します。

  • disable

  • allow

  • prefer

  • require

  • verify-ca

  • verify-full

spec.fepChildCrVal.sysUsers.pgreplUserTls.certificateName

Postgresユーザー“repluser”の証明書を含むKubernetes TLSシークレットを指します。Patroniはこれを証明書認証に使用します。証明書自体はtls.crtキーに格納されます。このフィールドはオプションです。

spec.fepChildCrVal.sysUsers.pgreplUserTls.caName

サーバ証明書を確認するためにクライアントが使用する追加のCAを含むKubernetesのconfigマップを指します。CAは、ca.crtキーに格納されます。このフィールドはオプションです。

spec.fepChildCrVal.sysUsers.pgreplUserTls.sslMode

prefer

サーバとのTLSネゴシエーションのタイプを指定します。

  • disable

  • allow

  • prefer

  • require

  • verify-ca

  • verify-full

spec.fepChildCrVal.sysUsers.pgRewindUserTls.certificateName

Postgresユーザー“rewinduser”の証明書を含むKubernetes TLSシークレットを指します。Patroniはこれを証明書認証に使用します。証明書自体はtls.crtキーに格納されます。このフィールドはオプションです。

spec.fepChildCrVal.sysUsers.pgRewindUserTls.caName

サーバ証明書を確認するためにクライアントが使用する追加のCAを含むKubernetesのconfigマップを指します。CAは、ca.crtキーに格納されます。このフィールドはオプションです。

spec.fepChildCrVal.sysUsers.pgRewindUserTls.sslMode

prefer

サーバとのTLSネゴシエーションのタイプを指定します。

  • disable

  • allow

  • prefer

  • require

  • verify-ca

  • verify-full

spec.fepChildCrVal.sysUsers.pgMetricsUserTls.certificateName

オプション

pgMetricsUserによって定義されたPostgresユーザーの証明書を含むKubernetes TLSシークレットを指します。FEPExporterはこれを証明書認証に使用します。証明書自体はtls.crtキーに格納されます。

spec.fepChildCrVal.sysUsers.pgMetricsUserTls.caName

オプション

サーバ証明書を確認するためにクライアントが使用する追加のCAを含むKubernetesのconfigマップを指します。CAは、ca.crtキーに格納されます。

spec.fepChildCrVal.sysUsers.pgMetricsUserTls.sslMode

prefer

オプション

FEPExporterがFEPサーバに接続するときのTLSネゴシエーションのタイプを指定します。

  • disable

  • allow

  • prefer

  • require

  • verify-ca

  • verify-full

spec.fepChildCrVal.sysTde

(*)

オプション

ユーザーがファイルベースのTDEを選択した場合、定義する必要はありません。

鍵管理システム(KMS)を利用したTDEを実装する場合に必須です。

spec.fepChildCrVal.sysTde.tdeType

(*)

オプション

パラメータ自体はオプションですが、spec.fepChildCrVal.sysTdeが定義されたときは指定必須です。

tdekを指定します。

spec.fepChildCrVal.sysTde.tdek

オプション

KMSとの接続情報を定義します。

spec.fepChildCrVal.sysTde.tdeTypeにtdekが指定されたときに指定必須です。

spec.fepChildCrVal.sysTde.tdek.targetKmsName

(*)

KMS名を指定します。

sysTde.tdek.kmsDefinitionのnameと同じ値を指定します。

spec.fepChildCrVal.sysTde.tdek.targetKeyId

KMSにおいて暗号鍵に付けられた鍵ID(KMIPにおけるIdentifier属性)を指定します。

このパラメータを更新すると、Operatorが自動的にマスタ鍵の更新を行います。

spec.fepChildCrVal.sysTde.tdek.kmsDefinition

KMSの接続情報を指定します。

配列形式で指定します。

spec.fepChildCrVal.sysTde.tdek.kmsDefinition[0].name

(*)

KMSに付けた名称(鍵管理システム名)で、spec.fepChildCrVal.sysTde.tdek.targetKmsNameに指定します。

KMS名は、a-zで始まりa-z、数字(0-9)およびアンダースコアから構成される63文字以下の文字列でなければなりません。大文字と小文字は同一視されます。

spec.fepChildCrVal.sysTde.tdek.kmsDefinition[0].type

(*)

KMSのタイプを指定します。

現在は、kmipのみ指定可能です。

spec.fepChildCrVal.sysTde.tdek.kmsDefinition[0].address

(*)

KMSのホスト名またはIPアドレスを指定します。

spec.fepChildCrVal.sysTde.tdek.kmsDefinition[0].port

(*)

KMSのポートを指定します。

spec.fepChildCrVal.sysTde.tdek.kmsDefinition[0].authMethod

(*)

KMSにおける認証方式を指定します。

現在、指定可能な値はcertのみです。

spec.fepChildCrVal.sysTde.tdek.kmsDefinition[0].sslpassphrase

オプション

KMSに接続する際のクライアント証明書用秘密鍵ファイルのパスフレーズを指定します。秘密鍵ファイルにパスフレーズが設定されていない場合は省略できます。

spec.fepChildCrVal.sysTde.tdek.kmsDefinition[0].cert

オプション

authMethodにcertを指定した場合に、証明書ファイル等を保存したSecret/ConfigMap名を指定します。

spec.fepChildCrVal.sysTde.tdek.kmsDefinition[0].cert.certificateName

(*)

KMSとTLS通信をするためのクライアント証明書と秘密鍵を保存したTLS Secret名を指定します。

spec.fepChildCrVal.sysTde.tdek.kmsDefinition[0].cert.caName

(*)

SSL認証局の証明書のファイル名を保存したConfigMap名を指定します。

接続先のサーバ証明書を検証するために利用されます。

spec.fepChildCrVal.systemCertificates.key

代わりに、spec.fep.postgres.tls仕様を使用してください。

spec.fepChildCrVal.systemCertificates.crt

代わりに、spec.fep.postgres.tls仕様を使用してください。

spec.fepChildCrVal.systemCertificates. cacrt

代わりに、spec.fep.postgres.tls仕様を使用してください。

spec.fepChildCrVal.autoscale.scaleout.policy

off

自動スケールアウト機能の利用の有無、および、基準とするメトリクスを指定します。

以下のいずれかを指定します:

- cpu_utilization (CPU使用率に基づく場合)
- connection_number (コネクション数に基づく場合)
- off (自動スケールアウトを使用しない場合)

省略した場合はoffを指定したとみなします。

spec.fepChildCrVal.autoscale.scaleout.threshold

40

スケールアウトを実行するときのしきい値を整数で指定します。

- policyにcpu_utilizationを指定した場合
しきい値となるCPU使用率の平均値をパーセントで指定します。省略した場合は40(40%)を指定したとみなします。

- policyにconnection_numberを指定した場合
しきい値となるコネクション数の平均値を指定します。省略した場合は40を指定したとみなします。

spec.fepChildCrVal.autoscale.scaleout.metricName

pg_capacity_connection_average

policyにconnection_numberを指定した場合に指定します。policyにcpu_utilizationを指定した場合は無視されます。

カスタムメトリクスサーバはFEPクラスタのコネクション数の平均値を、この名前で公開しなければなりません。

省略した場合は、pg_capacity_connection_averageを指定したとみなします。

spec.fepChildCrVal.autoscale.scaleout.stabilizationWindowSeconds

0

スケーリング(レプリカ数の変動)の安定度合を制御するパラメタです。メトリクスがしきい値を超える状況がこのパラメタに指定した秒数以上継続しない限り、スケールアウトは実行されません。

省略した場合は0を指定したとみなします。

spec.fepChildCrVal.autoscale.limits.maxReplicas

2

レプリカの最大数(0~15)

値が範囲外の場合は、自動スケールアウトが実行されません。

spec.fepChildCrVal.restore

オプション

オブジェクトストレージに格納されているバックアップデータを指定してリストアする場合に定義します。

spec.fepChildCrVal.restore.pgbackrestParams

オプション

“|”固定とし、その下の行よりpgbackrest.confで設定するパラメータを記載します。

バックアップデータが格納されているオブジェクトストレージを指定します。

デフォルト以外のルート証明書の利用が必要な場合は、下記を指定します。

repo1-storage-ca-path=/pgbackrest/storage-certs/<ファイル名>

CAファイルはConfigMapに登録し、spec.fepChildCrVal.restore.caNameにConfigMap名を記述します。

spec.fepChildCrVal.restore.pgbackrestKeyParams

オプション

“|”固定とし、その下の行よりpgbackrest.confで設定するパラメタを記述します。このパラメータで記述された値は*****でマスクされます。パスワードなどマスクしたいパラメータを指定します。

spec.fepChildCrVal.restore.caName

オプション

システムのデフォルト以外のCAファイルを使用する場合に設定します。

作成したConfigMapの名前をリスト形式で指定します。

指定されたConfigMapは/pgbackrest/storage-certsにマウントされます。

spec.fepChildCrVal.restore.repoKeySecretName

オプション

オブジェクトストレージの鍵ファイルより生成したKubernetes Secretの名前を指定します。
配列形式で指定します。指定されたSecretは/pgbackrest/storage-keyにマウントされます。

spec.fepChildCrVal.restore.mcSpec.limits

cpu: 200m

memory: 300Mi

オプション

リストアを実行するコンテナに割り当てるCPUとメモリ

spec.fepChildCrVal.restore.mcSpec.requests

cpu: 100m

memory: 200Mi

オプション

リストアを実行するコンテナに割り当てるCPUとメモリ

spec.fepChildCrVal.restore.restoretype

latest

オプション

リストアのタイプ(latest or PITR)を選択します。

spec.fepChildCrVal.restore.restoredate

オプション

spec.fepChildCrVal.restore.restoretypeが"PITR"の場合に、復元する日付を指定します。

spec.fepChildCrVal.restore.restoretime

オプション

spec.fepChildCrVal.restore.restoretypeが"PITR"の場合に、復元する時間を指定します。

spec.fepChildCrVal.restore.image

オプション

リストアを実行するコンテナのイメージ

デフォルトでは省略されています。この場合、オペレーターコンテナ環境からimageのURLが取得されます。

spec.fepChildCrVal.restore.imagePullPolicy

IfNotPresent

オプション

spec.fepChildCrVal.upgrade

オプション

このフィールドが定義されるとメジャーバージョンアップグレードを実行します。

ただし、spec.fepChildCrVal.restoreが定義されているとFEPClusterの構築が停止します。

spec.fepChildCrVal.upgrade.sourceCluster

データ移行元のFEPClusterCR名を指定します。

spec.fepChildCrVal.upgradeを定義する場合、必ず指定します。

spec.fepChildCrVal.upgrade.mcSpec.limits

cpu: 200m

memory: 300Mi

オプション

アップグレード実行コンテナに割り当てるリソースの上限値を指定します。

spec.fepChildCrVal.upgrade.mcSpec.requests

cpu: 100m

memory: 200Mi

オプション

アップグレード実行コンテナに割り当てるリソースの下限値を指定します。

spec.fepChildCrVal.upgrade.image

オプション

省略時はオペレーターコンテナ環境からimageのURLが取得されます。

spec.fepChildCrVal.upgrade.imagePullPolicy

IfNotPresent

オプション

コンテナイメージのpull policyを指定します。

  • Always

  • IfNotPresent

  • Never

spec.fepChildCrVal.upgrade.source.pgAdminTls.certificateName

オプション

データソースのspec.fepChildCrVal.sysUsers.pgAdminTls.certificateNameを定義していない場合、データソースのPostgresユーザー“postgres”の証明書を含むKubernetes TLSシークレットを指します。

データソースのFEPがアップグレード実行コンテナの認証方法を“cert”にしていた場合、アップグレード実行コンテナがシークレットに定義された証明書を利用します。

spec.fepChildCrVal.upgrade.destination.pgAdminTls.certificateName

オプション

新規作成するFEPClusterのspec.fepChildCrVal.sysUsers.pgAdminTls.certificateNameを定義していない場合、データソースのPostgresユーザー“postgres”の証明書を含むKubernetes TLSシークレットを指します。

新規作成するFEPがアップグレード実行コンテナの認証方法を“cert”にしていた場合、アップグレード実行コンテナがシークレットに定義された証明書を利用します。

spec.fepChildCrVal.upgrade.storage

オプション

ダンプファイルを格納するためのストレージを定義します。

spec.fepChildCrVal.upgrade.storage.storageClass

オプション

省略された場合、運用している環境のデフォルトのストレージクラスを利用します。

spec.fepChildCrVal.upgrade.storage.size

2Gi

オプション

ダンプファイルを格納するストレージのサイズを指定します。

spec.fepChildCrVal.upgrade.storage.accessModes

ReadWriteOnce

オプション

ダンプファイルを格納するストレージのアクセスモード

アクセスモードの配列として指定します。

例: [ReadWriteMany]

省略すると、[ReadWriteOnce]として扱われます。

spec.fep.remoteLogging.enable

ログをfluentbitからfluentdに転送するには、trueに設定します。

spec.fep.remoteLogging.image

オプション

使用するFluentbitイメージ。指定しない場合、OperatorはOperatorがサポートする最新バージョンを使用します。

spec.fep.remoteLogging.pullPolicy

IfNotPresent

オプション

注意

  • (*) : これらのパラメータは作成時にのみ指定でき、変更しないでください。これらのパラメータの変更は無視され、FEPクラスタの機能には影響しません。

  • (**) : 基盤となるストレージがオペレーションをサポートしていれば、ストレージボリュームのサイズを増やすことができます。オプションのボリュームは、最初のFEPクラスタ作成時にのみ指定できます。オプションのボリュームが後で追加された場合、オペレーターはそれを無視し実行されません。

  • サポートされていないカスタムリソースの変更は手動で行うか削除する必要があります。

  • spec.fepChildCrVal.systemCertificatesの代わりに、spec.fep.postgres.tlsカスタムリソース仕様を使用する必要があります。ラテラル仕様は引き続き使用できますが、spec.fep.postgres.tlsを使用すると、クラスタのMTLSアクセスをより柔軟に制御できます。

  • spec.fep.postgres.tls仕様 (古い仕様) またはspec.fepChildCrVal.systemCertificatesのいずれかを使用する必要があります。これらは互換的に使用しないでください。

  • spec.fep.postgres.tlsの下で指定されたサーバ証明書は、シークレットを変更し、reload (例:FEPActionの使用)を実行することでローテーションできます。ただし、カスタムリソースで指定されている他のものについては、Podの再起動が必要です。

実行状態では、次の値がFEPClusterに動的に表示され、クラスタのステータスを反映します。

フィールド名

説明

status.fepStatus.fepClusterReady

クラスタ全体の準備ができているかどうかを示すtrueまたはfalseです。Kubernetesクラスタ情報は、インスタンスの数“READY”と“RUNNING”がConfiguredインスタンスの数と等しいことを確認するために取得されます。

注意

“fepClusterReady”フラグは、最初のFEPCluster作成時にのみ設定されます。fepClusterReadyフラグは次の調整ループに参加しません。