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

1.2.10 FEPActionカスタムリソースパラメータ

以下の形式でパラメータを指定してください。

カスタムリソースの仕様

省略値

エフェクトの変更

.spec.targetClusterName

メタデータで指定された名前空間内のターゲットFEPクラスタ名を指定する必要があります。

.spec.targetPgpool2Name

pgpool2_restartを使用する場合は、メタデータで指定された名前空間内のターゲットFEPPgpool2の名前を指定する必要があります。

.spec.fepAction.type

アクションタイプを指定する必要があります。

サポートされるアクションタイプは以下のとおりです。

restart
pod_restart
reload
list
switchover
failover
pgpool2_restart
backup
open_tde_masterkey
create_extention
update_admin_password
backup_expire
promote_standby
fixed_stats

.spec.fepAction.args

指定したアクションに必要な引数を指定する必要があります。各アクションに対応する引数の詳細は、“1.2.10.1 FEPAction固有の操作の詳細”を参照してください。

.spec.fepAction.backupType

full

オプション

fepAction.typeにbackupを指定したとき、backupのタイプをします。

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

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

.spec.fepAction.backupRepo

1

オプション

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

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

.spec.sysExtraLogging

追加のデバッグをオンにするには、値をtrueに設定します。

いつでもオン/オフを切り替えることができます。

FEPActionカスタムリソースの実行後、必要に応じて現在のFEPActionカスタムリソースに動的に挿入されるfepStatusフィールドにステータスが反映されます。

ここでは、FEPActionカスタムリソースで使用されるfepStatusフィールドについて説明します。

fepStatus (指定可能な値を含む)

備考

fepActionStatus:

fepStatusがFEPActionカスタムリソースの先頭に挿入されます。

fepActionCondition: Success | Failure

このフラグは、要求されたアクションの成功または失敗を反映するためにfepActionカスタムリソースに挿入されます。

fepActionResult: >
“details”

結果には、実行された特定のアクションに対応する詳細情報が含まれます。これはHTTP出力のプレーンテキストであることに注意してください。

processedTimestamp: <time stamp>

オペレーターによるアクションの実行時間を示します。


apiVersion: fep.fujitsu.io/v1
kind: FEPAction
fepActionStatus:
 fepActionCondition: Success
metadata:
 name: new-fep-reload-action
 namespace: myns
spec:
 fepAction:
  args:
  - new-fep-sts-0
  - new-fep-sts-1
  type: reload
 sysExtraLogging: false
 targetClusterName: new-fep

注意

  • バックアップの実行中に、FEPActionを使用してスイッチオーバーや再起動を実行しないでください。バックアップの取得に失敗します。

  • FEPActionカスタムリソースは、各操作のたびに新規に作成する必要があります。

1.2.10.1 FEPAction固有の操作の詳細

アクションタイプ - reload

reloadアクションは、ターゲットのFEPCluster上のFEPデータベースを手動でリロードします。

“reload”アクションタイプでは、データベースの再ロード操作を実行する個々のFEP Podの名前を指定する必要があります。

FEPActionカスタムリソース仕様のargsセクションで、以下のように指定します。

spec:
fepAction:
 args:
 - nf-131851-sts-0
 - nf-131851-sts-1
 type: reload
 targetClusterName: nf-131851

アクションタイプ - restart

restartアクションは、ターゲットのFEPCluster上のFEPデータベースを手動で再起動します。

“restart”アクションタイプでは、データベースの再起動操作を実行する個々のFEP Podの名前を指定する必要があります。

FEPActionカスタムリソース仕様のargsセクションで、以下のように指定します。

spec:
fepAction:
 args:
 - nf-131851-sts-0
 - nf-131851-sts-1
 type: restart
 targetClusterName: nf-131851

アクションタイプ - pod_restart

pod_restartアクションは、指定されたターゲットクラスタの指定されたPodリストを再起動します。“args”セクションにキーワード“ALL”を指定すると、ターゲットクラスタ内のすべてのPodを再起動できます。あるいは、ターゲットクラスタで開始するPodのリストを指定することもできます。ユーザーはALLまたはPodのリストを指定する必要があります。

このアクションは、最初にレプリカPodを再起動します。

すべてのレプリカが再起動されると、古いマスターPodを再起動する前に、マスター権がレプリカの1つに切り替わります。

単一ノードクラスタの場合、マスターは現在の状態で再起動されます。

このアクションは、イメージまたはマシンの仕様がFEPClusteカスタムリソースのautoPodRestartフラグに応じてfepまたはバックアップコンテナに対して変更された場合にPodを再起動するために自動的に作成されます (詳細は、“FEPClusterカスタムリソースパラメータ”を参照してください) 。

spec:
fepAction:
args:
 - nf-131851-sts-0
 - nf-131851-sts-1
 type: pod_restart
 targetClusterName: nf-131851

アクションタイプ - list

listアクションは、ターゲットのFEPClusterのステータスを返します。

“list”アクションタイプでは、ターゲットクラスタ名のみを指定して、その詳細をリストする必要があります。以下のようになります。

spec:
fepAction:
 type: list
 targetClusterName: nf-131851

アクションタイプ - switchover

switchoverアクションは、現在のリーダー/プライマリデータベースを、あるPodからターゲットのFEPClusterの別のPodに手動でスイッチオーバーします。

“switchover”アクションタイプでは、ユーザーがスイッチオーバーを実行するターゲットクラスタの名前を指定する必要があります。argsセクションはスイッチオーバーには必要ありません。FEPAction演算子コードが内部的にそれを見つけて新しいマスターをプロモートします。以下のようになります。

spec:
fepAction:
 type: switchover
 targetClusterName: nf-131851

アクションタイプ - failover

failoverアクションは、現在のプライマリデータベースを、ターゲットのFEPClusterのあるPodから別のPodに手動でフェイルオーバーします。

スイッチオーバーとフェールオーバーの違いは、スイッチオーバーではその時点でプライマリデータベースが実行されていると想定されるのに対し、フェールオーバーではプライマリロールを非応答Podから別のPodに強制的にスイッチオーバーできます。

フェイルオーバーは停止を伴う処理であり、データが失われる可能性があるので注意してください。

“failover”アクションタイプでは、フェイルオーバー先の候補Podの名前を指定する必要があります。

FEPActionカスタムリソース仕様のargsセクションで、以下のように指定します。

spec:
fepAction:
 args:
 - nf-131851-sts-1
 - nf-131851-sts-2
 type: failover
 targetClusterName: nf-131851

ここでは、nf-131851-sts-1およびnf-131851-2は、フェールオーバー先の候補Podです。この例では、現在のプライマリポッドはnf-131851-sts-0になります。

アクションタイプ - pgpool2_restart

"pgpool 2_restart"アクションタイプでは、ユーザーが操作を再開する個々のFEPPgpool 2リソースの名前を指定する必要があります。

FEPActionカスタムリソース仕様のtargetPgpool2Nameセクションで、以下のように指定します。

spec:
fepAction:
 type: pgpool2_restart
 targetPgpool2Name: nf-131851-pgpool2

アクションタイプ - backup

"backup"アクションでは、ターゲットのFEPClusterでバックアップを実行します。

"backup"アクションタイプでは、バックアップのタイプとデータを格納するレポジトリを指定する必要があります。

FEPActionカスタムリソース仕様のfepActionセクションで、以下のように指定します。

spec: 
  targetClusterName: new-fep 
  fepAction:  
    type: backup 
    backupType: full 
    backupRepo: 1

注意

  • バックアップの実行方法(スケジュール実行またはFEPAction)に問わず、同じFEPClusterで同時にバックアップが実行された場合、後から実行されたバックアップは処理に失敗します。

  • FEPClusterカスタムリソースのspec.fepChildCrVal.backup.pgbackrestParamsにバックアップレポジトリのRetention Optionが指定されている場合、FEPActionで取得されたバックアップファイルもオプションの指定に従い削除されます。

アクションタイプ - open_tde_masterkey

open_tde_masterkeyアクションは、TDEが有効になっているターゲットクラスタに対してキーストアのオープンを実行します。

“open_tde_masterkey”アクションタイプでは、ユーザーがキーストアのオープンを実行するターゲットクラスタの名前を指定する必要があります。argsセクションは必要ありません。
以下のように指定します。

spec:
  targetClusterName: nf-131851
  fepAction:
    type: open_tde_masterkey

アクションタイプ - create_extention

create_extentionアクションは、ターゲットのFEPCluster上で”CREATE EXTENTION”を実行し拡張をインストールします。

fepAction.argsでインストールする「拡張の名前、バージョン」、「データベース」、「スキーマ」、「CASCADEオプションの適用」を指定します。

argsで指定するパラメータ

説明

extension

必須

インストールする拡張とバージョンを指定します。

version

オプション

VARSIONオプションに指定する、拡張のバージョンを指定します。
省略された場合は、VARSIONオプションを省略します。

database

オプション

インストールするデータベースを指定します。
省略された場合は、“postgres”データベースにインストールします。

schema

オプション

SCHEMAオプションに指定する、インストールするスキーマを指定します。
省略した場合はSCHEMAオプションを省略します。

cascade

オプション

true or false
CREATE EXTENTIONのCASCADEオプションを有効にするかを選択できます。
省略された場合は、falseです。

下記に指定例を示します。

spec: 
targetClusterName: new-fep
fepAction: 
args: 
type: create_extention
  extension:  “vci”
         version: “2.0”
         database: “mydb”
         schema: “public”
         cascade: “true”

アクションタイプ - update_admin_password

update_admin_passwordアクションは、ターゲットのFEPCluster上のSUPERUSER”postgres”のパスワードをランダムな値で再定義します。

FEPClusterカスタムリソースのspec.fepChildCrVal.sysUsers.pgAdminPasswordが定義されていないとき、このアクションは実行されます。

下記に指定例を示します。

spec: 
fepAction: 
type: update_admin_password
targetClusterName: new-fep

アクションタイプ - backup_expire

FEPPodに対して“pgbackrest expire”コマンドを実行し期限切れのバックアップを削除することができます。

“pgbackrest expire”コマンドは通常バックアップ成功時に自動で実行されますが、バックアップの保持世代数の定義を削減した際などにユーザが実行し、変更した定義に従った保持数になるようバックアップデータを削除することができます。

バックアップの保持世代数を削減しディスク容量を開放する場合は、FEPClusterカスタムリソースのfepChildCrVal.backup.pgbackrestParams配下のバックアップデータのリテンション設定を変更した後に、FEPActionの“backup_expire”をアプライしてください。

args.repoを指定することで、バックアップを削除するリポジトリを指定することができます。

argsで指定するパラメータ

説明

repo

オプション

指定値: integer

バックアップを削除するリポジトリを番号で指定します。

省略された場合は、全てのバックアップリポジトリに対して、バックアップの削除を実行します。

注意

バックアップのリポジトリの番号はFEPClusterカスタムリソースのspec.fepChildCrVal.backup.pgbackrestParamsで定義されている、repoN-typeのNを指定してください。

まず、FEPClusterカスタムリソースのバックアップデータのリテンション設定変更例を下記に示します。

S3に格納しているバックアップの世代数を削減したい場合

spec: 
  fepChildCrVal:
    backup:
      pgbackrestParams:
        repo2-type=s3
        repo2-retention-full=5   # 保持したい世代数に書き換えます
        repo2-retention-full-type=time

バックアップ世代数を削減するFEPActionカスタムリソースの例を下記に示します。

s3のバックアップリポジトリはpgbackrestParamsのrepo2-typeに指定されているため、spec.fepActoin.repoには2を指定します。

apiVersion: fep.fujitsu.io/v1 
kind: FEPAction
metadata: 
  name: backup-expire-action
spec: 
  targetCluster: new-fep
  fepAction:
    type: backup_expire
    args:
      repo: 2

アクションタイプ - promote_standby

promote_standbyは災害対策環境のFEPデータベースをStandby DBからPrimary DBへと昇格させます。昇格させるDBクラスタを指定する必要があります。

下記に指定例を示します。

spec:
  fepAction:
    type: promote_standby
  targetClusterName: my-fep

アクションタイプ - fixed_stats

fixed_statsアクションは、ターゲットのFEPClusterに対して統計情報の操作(pg_dbms_stats)を実行します。

fixed_statsアクションでは、pg_dbms_statsで実行できる操作を指定する必要があります。spec.fepAction.argsにfixedStatsType: <操作タイプ>を記述してください。操作タイプに応じて、さらに必須の引数とオプションの引数があります。以下の表を参考に記述してください。

表1.1 操作タイプと引数

操作タイプ

必須引数

オプション引数

backup

なし

すべてのデータベースに対して統計情報のバックアップが実行されます。また、識別用のコメントが省略された場合、“FEPAction”がコメントとして割り当てられます。

targetDb: ターゲットのデータベース
fixedObject: スキーマ以降のオブジェクト名

例)特定の列が対象
fixedObject: myschema.mytable.myclomun

comment: “XXX”

restore

targetDb: ターゲットのデータベース

backupId: バックアップID
または
timestamp: タイムスタンプ
データ型はtimestamptzです。

指定したバックアップIDか指定した時刻以前の最新のバックアップを用いて、統計情報が固定化されます。

timestampを定義した場合のみ、スキーマ以降のオブジェクトを指定することが可能です。
fixedObject: スキーマ以降のオブジェクト名

例)特定の列が対象

fiexdObject: myschema.mytable.myclomun

purge

backupId: バックアップID
targetDb: ターゲットのデータべース

targetDbに指定したデータベースに対して、指定したバックアップID以前のバックアップを消去します。

削除フラグを指定できます。
force: true
force: false
省略した場合はfalseで実行されます。

lock

targetDb: ターゲットのデータべース

指定されたデータベースに対して統計情報を固定化します。

fixedObject: スキーマ以降のオブジェクト名

例)特定の列が対象
fixedObject: myschema.mytable.myclomun

unlock

targetDb: ターゲットのデータべース

指定されたデータベースに対して行われている統計情報の固定化を解除します。

fixedObject: スキーマ以降のオブジェクト名

例)特定の列が対象
fixedObject: myschema.mytable.myclomun

cleanup

targetDb: ターゲットのデータべース

指定されたデータベースに対して、統計情報をクリーンアップします。

なし

import

targetDb: ターゲットのデータべース

targetDbに指定したデータベースに対して、バイナリファイルから統計情報を固定化します。

ファイルのインポート元は、FEPClusterカスタムリソースに定義されているfep.fixedStats.endpoint.protocolの情報が使用されます。
protocolによって、必須引数が変わります。“表1.2 プロトコルごとの必須引数”を参照してください。

fixedObject: スキーマ以降のオブジェクト名

export

targetDb: ターゲットのデータべース
targetStats: 有効な統計情報と正規の統計情報
のどちらをエクスポートするか(effective or plain)


targetDbに指定したデータベースに対して、現在有効なまたは正規の統計情報をエクスポートします。
ファイルのエクスポート先は、FEPClusterカスタムリソースに定義されているfep.fixedStats.endpoint. protocolの情報が使用されます。
protocolによって、必須引数が変わります。“表1.2 プロトコルごとの必須引数”を参照してください。

fixedObject: スキーマ以降のオブジェクト名

表1.2 プロトコルごとの必須引数

プロトコル

必要な引数

説明

s3, gcs

url

オブジェクトストレージのURL

blob

azureBlobName

統計情報のバイナリファイルのBLOB名

azureContainerName

Azureストレージアカウントのコンテナ名

local

file

統計情報がExport/Importされるファイルの名前を指定してください。

下記に指定例を示します。

apiVersion: fep.fujitsu.io/v1
kind: FEPAction
metadata:
  name: fep-action-firxdStats
spec:
  fepAction:
    targetClusterName: new-fep
    type: fixed_stats 
    args:
      fixedStatsType: backup
      targetDb: mydb
      fixedObject: schema.table.attaname
      comment: “xxyyzz”