ELMA365 On-Premises > Подготовка инфраструктуры > Базы данных > Прекращение поддержки PostgreSQL 10 в ELMA365 / Обновление контейнера PostgreSQL 10 до 15

Обновление контейнера PostgreSQL 10 до 15

При обновлении PostgreSQL до основной версии необходимо обновить версию image запущенного пода до более поздней версии PostgreSQL. Также нужно пересоздать хранилище для обновления данных, которые хранятся в файлах данных PostgreSQL.

Обновление контейнера PostgreSQL состоит из пяти этапов:

  1. Резервное копирование базы данных.
  2. Установка PostgreSQL 15 в kubernetes-кластер.
  3. Пересоздание хранилища.
  4. Запуск PostgreSQL.
  5. Восстановление базы данных.

Шаг 1. Резервное копирование базы данных

Перед выполнением любых действий, связанных с обновлением, создайте резервную копию данных и конфигурации PostgreSQL. О том, как это сделать, читайте в статье «Резервное копирование и восстановление баз данных».

начало внимание

Если на сервере PostgreSQL имеются сторонние базы данных, их резервные копии также необходимо создать.

конец внимание

Резервное копирование базы данных PostgreSQL без использования утилиты elma365-backupper

Шаг 2. Установка PostgreSQL 15 в kubernetes-кластер

  1. Остановите контейнер postgres:

kubectl scale -n <<namespace>> statefulset -l app.kubernetes.io/instance=<<namespace>>,app.kubernetes.io/name=postgresql --replicas 0

  1. Сохраните конфигурацию statefulsets пода postgres в файл postgresql.yaml:

kubectl get statefulsets -n <<namespace>> -lapp.kubernetes.io/instance=<<namespace>>,app.kubernetes.io/name=postgresql -o yaml > path/to/postgresql.yaml

  1. Откройте файл postgresql.yaml командой:

sudo nano path/to/postgresql.yaml

В этом файле замените версию image на docker.io/bitnami/postgresql:15.4.0.

  1. Примените изменения для пода postgres:

kubectl apply -f path/to/postgresql.yaml

Шаг 3. Пересоздание хранилища

Удалите хранилище postgresql:

kubectl delete pvc -n <<namespace>> -l app.kubernetes.io/instance=<<namespace>>,app.kubernetes.io/name=postgresql --wait=false

Шаг 4. Запуск PostgreSQL

Запустите контейнер postgres:

kubectl scale -n <<namespace>> statefulset -l app.kubernetes.io/instance=<<namespace>>,app.kubernetes.io/name=postgresql --replicas 1

Шаг 5. Восстановление базы данных

О том, как это сделать, читайте в статье «Резервное копирование и восстановление баз данных».

Восстановление базы данных PostgreSQL без использования утилиты elma365-backupper