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に追加されます。 | |
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ネゴシエーションのタイプを指定します。
|
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ネゴシエーションのタイプを指定します。
|
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ネゴシエーションのタイプを指定します。
|
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ネゴシエーションのタイプを指定します。
|
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使用率に基づく場合) 省略した場合はoffを指定したとみなします。 |
spec.fepChildCrVal.autoscale.scaleout.threshold | 40 | スケールアウトを実行するときのしきい値を整数で指定します。 - policyにcpu_utilizationを指定した場合 - policyにconnection_numberを指定した場合 |
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の名前を指定します。 | |
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を指定します。
|
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フラグは次の調整ループに参加しません。