PGO(The Postgres Operator from Crunchy Data)4.7.5がリリースされたのでアップグレード。
Update PostgreSQL Operator
4.7.5のマニフェストを取得
curl -LO https://raw.githubusercontent.com/CrunchyData/postgres-operator/v4.7.5/installers/kubectl/postgres-operator.yml > pgo-4.7.5.yaml
マニフェストを編集、pgo-deploy > DEPLOY_ACTIONをinstall->updateに変更。
--- postgres-operator.yml 2022-03-19 09:56:27.000000000 +0900
+++ pgo-4.7.5.yml 2022-03-16 19:16:48.000000000 +0900
@@ -201,11 +201,11 @@
scheduler_timeout: "3600"
service_type: "ClusterIP"
sync_replication: "false"
- backrest_storage: "default"
- backup_storage: "default"
- primary_storage: "default"
- replica_storage: "default"
- pgadmin_storage: "default"
+ backrest_storage: "do-bs"
+ backup_storage: "do-bs"
+ primary_storage: "do-bs"
+ replica_storage: "do-bs"
+ pgadmin_storage: "do-bs"
wal_storage: ""
storage1_name: "default"
storage1_access_mode: "ReadWriteOnce"
@@ -251,6 +251,11 @@
storage9_size: "1Gi"
storage9_type: "dynamic"
storage9_class: "rook-ceph-block"
+ storage10_name: "do-bs"
+ storage10_access_mode: "ReadWriteOnce"
+ storage10_size: "1Gi"
+ storage10_type: "dynamic"
+ storage10_class: "do-block-storage"
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
@@ -290,7 +295,7 @@
imagePullPolicy: IfNotPresent
env:
- name: DEPLOY_ACTION
- value: install
+ value: update
volumeMounts:
- name: deployer-conf
mountPath: "/conf"
Diff finished. Sat Mar 19 10:01:15 2022
マニフェストを適用。
kubectl apply -f pgo-4.7.5.yml
pgo-deployジョブが完了していることを確認。
NAME COMPLETIONS DURATION AGE
job.batch/pgo-deploy 1/1 2m7s 2m12s
pgo-deployジョブを削除。
kubectl delete -f pgo-4.7.5.yml
PGO cliのアップデート
pgo-cli-4.7.4 を退避。
cd ~/.pgo
mv pgo pgo-4.7.4
client-setup.shスクリプトをダウンロード・実行
curl https://raw.githubusercontent.com/CrunchyData/postgres-operator/v4.7.5/installers/kubectl/client-setup.sh > client-setup.sh
chmod 755 client-setup.sh
./client-setup.sh
pgo-cli動作確認
kubectl -n pgo port-forward svc/postgres-operator 8443:8443
pgo version
pgo client version 4.7.5
pgo-apiserver version 4.7.5
PostgreSQLクラスタのアップグレード
pgo upgrade hippo1
大体5分くらいかかる。
アップグレードの状態確認
pgo show cluster hippo1
cluster : hippo1 (crunchy-postgres-ha:centos8-13.6-4.7.5)
pod : hippo1-fboq-67747cd447-4zkrf (Running) on dok8s-pool1-uz8fk (1/1) (primary)
pvc: hippo1-fboq (1Gi)
pod : hippo1-klro-f9589ccfd-vl8cq (Running) on dok8s-pool1-uz8fk (1/1) (replica)
pvc: hippo1-klro (1Gi)
resources : Memory: 128Mi
deployment : hippo1-backrest-shared-repo
deployment : hippo1-fboq
deployment : hippo1-klro
deployment : hippo1-pgbouncer
service : hippo1 - ClusterIP (10.245.59.237) - Ports (2022/TCP, 5432/TCP)
service : hippo1-pgbouncer - ClusterIP (10.245.239.253) - Ports (5432/TCP)
service : hippo1-replica - ClusterIP (10.245.33.199) - Ports (2022/TCP, 5432/TCP)
pgreplica : hippo1-klro
labels : name=hippo1 pg-cluster=hippo1 pgo-version=4.7.5 pgouser=admin workflowid=6886dca1-e6f5-4cc0-a3f3-b5159c2af06c deployment-name=hippo1-fboq
pgo-version=4.7.5に更新されている。
pgo test hippo1
cluster : hippo1
Services
primary (10.245.59.237:5432): UP
pgbouncer (10.245.239.253:5432): UP
replica (10.245.33.199:5432): UP
Instances
primary (hippo1-fboq-67747cd447-4zkrf): UP
replica (hippo1-klro-f9589ccfd-vl8cq): UP
Primary/Replicaのサービス・インスタンスもUPステータスになっている。
pgo show backup hippo1 | head -10
cluster: hippo1
storage type: s3
stanza: db
status: ok
cipher: none
db (current)
wal archive min/max (13-1)
バックアップステータスもOK
kubectl -n pgo port-forward svc/hippo1 5432:5432
psql -h localhost -U postgres
Password for user postgres:
psql (14.2, server 13.6)
Type "help" for help.
postgres=# select version();
version
--------------------------------------------------------------------------------------------------------
PostgreSQL 13.6 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-4), 64-bit
(1 row)
PostgreSQLも13.6にアップグレードされている。