CloudNativePGの1.20.1がリリースされたようなので、アップグレードしてみた。
Upgrading Operator
最新のoperator manifestを適用。
kubectl apply -f https://raw.githubusercontent.com/cloudnative-pg/cloudnative-pg/release-1.20/releases/cnpg-1.20.1.yaml
namespace/cnpg-system unchanged
customresourcedefinition.apiextensions.k8s.io/backups.postgresql.cnpg.io configured
customresourcedefinition.apiextensions.k8s.io/clusters.postgresql.cnpg.io configured
customresourcedefinition.apiextensions.k8s.io/poolers.postgresql.cnpg.io configured
customresourcedefinition.apiextensions.k8s.io/scheduledbackups.postgresql.cnpg.io configured
serviceaccount/cnpg-manager unchanged
clusterrole.rbac.authorization.k8s.io/cnpg-manager configured
clusterrolebinding.rbac.authorization.k8s.io/cnpg-manager-rolebinding unchanged
configmap/cnpg-default-monitoring unchanged
service/cnpg-webhook-service unchanged
deployment.apps/cnpg-controller-manager configured
mutatingwebhookconfiguration.admissionregistration.k8s.io/cnpg-mutating-webhook-configuration configured
validatingwebhookconfiguration.admissionregistration.k8s.io/cnpg-validating-webhook-configuration configured
podが再起動される。
kubectl -n cnpg-system get all ✘ 1
NAME READY STATUS RESTARTS AGE
pod/cnpg-controller-manager-555597c76-l7m9g 1/1 Running 0 17m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/cnpg-webhook-service ClusterIP 10.245.151.117 <none> 443/TCP 35d
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/cnpg-controller-manager 1/1 1 1 35d
NAME DESIRED CURRENT READY AGE
replicaset.apps/cnpg-controller-manager-555597c76 1 1 1 17m
replicaset.apps/cnpg-controller-manager-6848c4b79b 0 0 0 35d
Upgrading PostgreSQL Cluster
manifestを更新、spec:imageNameを”ghcr.io/cloudnative-pg/postgresql:15.3″に変更。
---
apiVersion: postgresql.cnpg.io/v1
kind: Cluster
metadata:
name: cnpg1
namespace: cnpg
spec:
imageName: ghcr.io/cloudnative-pg/postgresql:15.3
instances: 2
minSyncReplicas: 1
maxSyncReplicas: 1
storage:
storageClass: do-block-storage-xfs
size: 1Gi
monitoring:
enablePodMonitor: true
backup:
barmanObjectStore:
destinationPath: "s3://hoge-fuga/cnpg-backup/"
endpointURL: "https://sgp1.digitaloceanspaces.com"
s3Credentials:
accessKeyId:
name: backup-creds
key: ACCESS_KEY_ID
secretAccessKey:
name: backup-creds
key: ACCESS_SECRET_KEY
wal:
compression: gzip
encryption: AES256
data:
compression: gzip
encryption: AES256
immediateCheckpoint: false
jobs: 2
retentionPolicy: "30d"
ステータス確認
kubectl cnpg -n cnpg status cnpg1
Cluster Summary
Name: cnpg1
Namespace: cnpg
System ID: 7236262496654274579
PostgreSQL Image: ghcr.io/cloudnative-pg/postgresql:15.3
Primary instance: cnpg1-1
Status: Cluster in healthy state
Instances: 2
Ready instances: 2
Current Write LSN: 27/18009630 (Timeline: 5 - WAL File: 000000050000002700000018)
Certificates Status
Certificate Name Expiration Date Days Left Until Expiration
---------------- --------------- --------------------------
cnpg1-ca 2023-08-21 06:28:56 +0000 UTC 55.26
cnpg1-replication 2023-08-21 06:28:56 +0000 UTC 55.26
cnpg1-server 2023-08-21 06:28:56 +0000 UTC 55.26
Continuous Backup status
First Point of Recoverability: 2023-05-24T08:26:18Z
Working WAL archiving: OK
WALs waiting to be archived: 0
Last Archived WAL: 000000050000002700000017 @ 2023-06-27T00:15:48.401719Z
Last Failed WAL: -
Streaming Replication status
Name Sent LSN Write LSN Flush LSN Replay LSN Write Lag Flush Lag Replay Lag State Sync State Sync Priority
---- -------- --------- --------- ---------- --------- --------- ---------- ----- ---------- -------------
cnpg1-2 27/18009630 27/18009630 27/18009630 27/18009630 00:00:00 00:00:00 00:00:00 streaming quorum 1
Unmanaged Replication Slot Status
No unmanaged replication slots found
Instances status
Name Database Size Current LSN Replication role Status QoS Manager Version Node
---- ------------- ----------- ---------------- ------ --- --------------- ----
cnpg1-1 67 MB 27/18009630 Primary OK BestEffort 1.20.1 dok8s-pool-f6du4
cnpg1-2 67 MB 27/18009630 Standby (sync) OK BestEffort 1.20.1 dok8s-pool-f6duh
psqlで接続してバージョン確認
kubectl cnpg -n cnpg psql cnpg1
psql (15.3 (Debian 15.3-1.pgdg110+1))
Type "help" for help.
postgres=# select version();
version
-----------------------------------------------------------------------------------------------------------------------------
PostgreSQL 15.3 (Debian 15.3-1.pgdg110+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 10.2.1-6) 10.2.1 20210110, 64-bit
(1 row)