KubernetesにおけるPostgreSQL 16.4から17.0へのメジャーアップデート手順
2024-10-14
Post Image

PostgreSQLをバージョン16.4から17.0にアップデートするための手順を以下に示します。このガイドでは、バックアップの取得、リソースの削除、新しいコンテナの起動、バックアップからのリストアを行います。

必要な準備

  • Kubernetesクラスターが動作していること
  • kubectlコマンドが使用できること
  • PostgreSQLデータベースのユーザー名とデータベース名を把握していること

ステップ1: 16.4のコンテナを起動

まず、現在のPostgreSQL 16.4のコンテナを起動します。このステップは、すでに起動している場合はスキップできます。

kubectl apply -k <.yaml>

ステップ2: バックアップの取得

次に、データベースのバックアップを取得します。

# Kubernetesポッド内に対して、ホストPCからバックアップを取得
kubectl exec -it <postgresql pod> -n <namespace> -- pg_dumpall -U <db_user> > ./backup.sql

backup.sqlはホストPCに保存されます。

ステップ3: リソースの削除

古いリソースを削除します。このステップで、古いPostgreSQLのリソースをクリーンアップします。

kubectl delete -k <.yaml>

ステップ4: ポッドの確認

新しいコンテナを起動する前に、現在のポッドの状況を確認しましょう。

kubectl get pods -n <namsespace> -o wide

ステップ5: PostgreSQLのデータベースがマウントされているホストディレクトリの名前を変更

データの保存先であるホストディレクトリの名前を適宜変更してください。 万一、失敗したときにデータの損失を防ぐためです。

ステップ6: 17.0コンテナの起動

PostgreSQL 17.0のコンテナを起動します。

kubectl apply -k <.yaml>

ステップ7: バックアップファイルからのリストア

最後に、バックアップファイルからデータをリストアします。

# バックアップファイルからのリストア
kubectl exec -it <postgresql pod> -n <namespace> -- psql -U <user name> -d <db_name> < ./backup.sql

以上がPostgreSQL 16.4から17.0へのアップデート手順です。

KubernetesにおけるPostgreSQL 16.4から17.0へのメジャーアップデート手順
https://notes.midnightstops.com/posts/4/
作者
Author
公開日
2024-10-14