FEPPGPool2の構成の変更について説明します。
FEPPGPool2の一覧表示
Kubernetesコマンド: kubectl get FEPPGPool2 (-A)
この操作では、名前空間内のすべてのFEPPGPool2が一覧表示されます。または、-Aオプションが指定されている場合は、すべての名前空間内のすべてのFEPPGPool2が一覧表示されます。
Default output format:
フィールド | 値 | 詳細 |
---|---|---|
Name | .metadata.name | pgpool2の名前 |
例)
# kubectl get feppgpool2 -A NAMESPACE NAME namespace1 fep1-pgpool2 namespace2 fep2-pgpool2
FEPPGPool2の削除
Kubernetesコマンド: kubectl delete FEPPGPool2 <pgpool2_name>
この操作により、FEPPGPool2が削除されます。
FEPPGPool2の更新
Kubernetesコマンド: kubectl apply -f <new_spec>
“オペレーターリファレンス”の“FEPPgpool2カスタムリソースパラメータ”を参照して、更新するパラメータを指定します。以下のパラメータのみ指定可能です。
カスタムリソースの仕様 | 変更内容 |
---|---|
.spec.count: n | クラスタ内のノードの数をnに増やします。 |
.spec.serviceport | Pgpool-IIに接続するためのTCPポートを変更します。 |
.spec.statusport | PCPプロセスに接続するためのTCPポートを変更します。 |
.spec.limits.cpu | CPUの制限を変更します。 |
.spec.limits.memory | メモリの制限を変更します。 |
.spec.requests.cpu | CPUのリクエストを変更します。 |
.spec.requests.memory | メモリのリクエストを変更します。 |
.spec.fepclustername | 接続するFepClusterを変更します。 |
.spec.customhba | pool_hba.confファイルを変更します。 |
.spec.customparams | pgpool2パラメータを変更します。 |
.spec.custompcp | pcp.confファイルを変更します。 |
.spec.customsslkey | 秘密鍵の内容を変更します。 |
.spec.customsslcert | x509公開鍵証明書の内容を変更します。. |
.spec.customsslcacert | CAルート証明書の内容をPEM形式で変更します。 |
一部のcustomparamsパラメータ、customhbaおよびcustompcpでは、pgpool2を再起動する必要があります。
Kubernetesコマンド: Kubectl apply -f <new_spec>
「pgpool2_restart」アクションタイプでは、ユーザーが再起動するpgpool2の名前を指定する必要があります。
以下のように、FEPActionカスタムリソースのtargetPgpool2NameセクションでFEPPGPool2カスタムリソースのmetadata.Nameを指定します。
spec: targetPgpool2Name: fep1-pgpool2 fepAction: type: pgpool2_restart
注意
FEPPGPool2を更新すると、FEPPGPool2のPodが再起動されます。複数のFEPPGpool2で構成されている場合、順番に再起動されます。接続が切断されるため、アプリケーションは接続を再接続するように設計する必要があります。
scram-sha-256認証を使用したクライアント認証に使用する各リソースの更新
データベースに新規ユーザーを追加した場合に、ユーザーとパスワードをFEPpgpool2コンテナに通知する必要があります。
この場合、既存のユーザーの情報に加えて、以下のように新規ユーザーの情報をシークレットに追記してください。
apiVersion: v1 kind: Secret metadata: name: test-secret type: Opaque data: user_name_1:cGFzc3dvcmRfMQ== user_name_2:cGFzc3dvcmRfMg== user_name_new:cGFzc3dvcmRfbmV3
シークレットの更新後、FEPpgpool2コンテナは自動でパスワードファイルpool_passwdの内容を更新します。
オペレーターが自動で作成したシークレットを編集して新規ユーザーの情報を追加する場合、postgresキーのエントリを削除してください。postgresキーのエントリが残存している場合、新規ユーザーの情報が反映されません。
FEPClusterコンテナでは、パスワード期限などの理由からデータベースユーザーのパスワードが更新される場合があります。
この場合、既存のユーザーの情報は維持したまま、更新したパスワードについて、以下のようにユーザー情報用シークレットを更新してください。
apiVersion: v1
kind: Secret
metadata:
name: test-secret
type: Opaque
data:
user_name_1:cGFzc3dvcmRfMQ==
user_name_2:cGFzc3dvcmRfMl9uZXc=
シークレットの更新後、FEPpgpool2コンテナは自動でパスワードファイルpool_passwdの内容を更新します。
暗号化用キーファイルpgpoolkeyを更新したい場合、暗号化キー用シークレットpgpoolkeySecretに定義しているシークレットの内容を更新します。
apiVersion: v1
kind: Secret
metadata:
name: pgpoolkey-secret
type: Opaque
data:
pgpoolkey:bmV3LXBncG9vbGtleXBhc3N3b3Jk
暗号化用キーファイルpgpoolkeyを更新する場合は、更新されたpgpoolkeyを使用して、再度、scram-sha-256による暗号化を行う必要があります。また、暗号化キー用シークレットの更新後は、pgpool2を再起動してください。
シークレットの更新後、FEPpgpool2コンテナは自動で、更新されたpgpoolkeyを使用して、パスワードファイルpool_passwdの内容を更新します。