Документация ко всем предыдущим релизам Почты собрана на странице: Документация предыдущих релизов.
Вы можете выбрать версию Почты, до которой хотите обновиться, и посмотреть соответствующее руководство по обновлению.
-
Убедитесь, что представители VK предоставили вам ссылку на скачивание дистрибутива новой версии Почты.
-
У вас есть архитектурная схема кластера, показывающая, на каком гипервизоре какие компоненты системы установлены. Эти данные потребуются на этапе генерации новых контейнеров.
-
Проверьте наличие лицензий Почты на каждом домене. Отсутствие лицензии приведет к неработоспособности продукта после обновления.
-
Чтобы Почта VK WorkSpace работала корректно, нужно установить оперативное обновление ядра ОС указанной ниже версии. Версия должна быть актуальной на момент обновления. Поддерживаемые операционные системы:
- Astra Linux SE Орел — версия 1.7.5+, версия ядра — 5.15.
- Astra Linux SE Орел — версия 1.8, версия ядра — 6.1.
- РЕД ОС — версия 7.3.5, версия ядра — 6.1.
- РЕД ОС — версия 7.3с (сертифицированная), версия ядра — 6.1.
- РЕД ОС — версия 8, версия ядра — 6.6 или 6.12.
Обновление необходимо проводить в нерабочее время, когда приложением не пользуются сотрудники (в технологическое окно).
- При обновлении Почты отключите сервисы kesl и auditd. Они могут создавать значительную нагрузку на сервера.
Перед установкой обновления необходимо удостовериться в консистентном состоянии кластеров баз данных:
- В веб-интерфейсе установщика перейдите в Настройки → Шардирование и репликация БД.
- Нажмите на кнопку Опросить базы данных. Таким образом будет проверено состояние баз данных.
- Авторизуйтесь в панели администратора Почты
https://biz.<main-domain>. - Перейдите в панель управления кластерами БД MySQL
https://biz.<main-domain>/orchestrator/web/clusters/. - Проверьте отсутствие ошибок в процессе репликации баз данных.
Проверьте дисковое пространство на серверах отведенных под хранилища:
- На разделах выделенных для хранения данных должно быть свободно более 15% дискового пространства и обязательно более 25 Гб.
- На всех остальных разделах должно быть занято не более 10% дискового пространства.
-
Распакуйте zip-архив c новой версией. Используйте учетную запись пользователя, от имени которого производилась первичная установка:
Astra LinuxРЕД ОСMosOS Arbat# Если на машину не установлен unzip, скачиваем его:sudo apt-get install unzipexport UNZIP_DISABLE_ZIPBOMB_DETECTION=trueunzip -o <имя_архива> -
Поместите архив deployer.tar с дистрибутивом новой версии в ту же папку, которая использовалась при первичной установке. То есть туда же, где находится файл-установщик
onpremise-deployer_linux. -
Распакуйте архив под той же учетной записью поверх имеющегося дистрибутива с заменой всех изменившихся файлов:
tar -xf deployer.tar -
Проверьте, есть ли у файла
onpremise-deployer_linuxфлаг на исполнение (x) с помощью команды:ls -la <путь к каталогу с файлом>`. -
Если флаг отсутствует, выполните команду:
chmod +x onpremise-deployer_linux -
Распакуйте архив со статическими файлами:
tar -xf static.tar.gz -
Скопируйте архив Docker-репозитория:
cp registry/mail/dockerRepo.tar source/ -
Скопируйте файлы md5:
cp registry/mail/dockerRepo.md5 source/ -
Выполните команду
sudo systemctl restart deployer.
Добавьте новые контейнеры, соблюдая распределение по гипервизорам как при первичной установке: базы данных добавить на гипервизоры с базами данных, хранилища — на гипервизоры с хранилищами и так далее.
-
Перейдите в веб-интерфейс установщика
http://server-address:8888, где server-address — ip-адрес машины, на которую производится установка, либо ее доменное имя. -
Пролистайте список контейнеров, в нижней части страницы нажмите на кнопку Добавить и выберите пункт Несколько контейнеров.
Откроется всплывающее окно Выберите роли для добавления.

-
Задайте фильтры:
-
Установлено не более: 0.
-
Тег: контейнеры какого компонента системы необходимо добавить. Например: База данных, Хранилище, Мониторинг, Инфраструктура и т.д.

-
-
Выберите все доступные для установки контейнеры.

-
Прокрутите список контейнеров вниз и выберите гипервизоры, на которые нужно произвести установку.
-
Выберите режим генерации На каждом гипервизоре.

-
Нажмите на синюю кнопку Добавить. Всплывающее окно, в котором выполнялись предыдущие действия, закроется.
-
Откройте окно добавления контейнеров, нажав Добавить → Несколько контейнеров.
-
Повторите шаги 1-6 для всех оставшихся компонентов в поле Теги.
-
Убедитесь, что все контейнеры добавлены:
- Откройте окно добавления контейнеров, нажав Добавить → Несколько контейнеров.
- Выберите фильтр Установлено не более: 0.
- Список контейнеров, доступных для добавления, должен быть пустым.
Вернитесь в верхнюю часть страницы и проверьте: отображается ли в правом верхнем углу зеленая кнопка Далее. Если зеленая кнопка Далее отображается и активна, то донастройте параметры системы. Логика: «Следуем за кнопкой Далее то тех пор, пока она активна». Когда зеленая кнопка Далее перестанет отображаться в верхнем углу страницы, можно запускать обновление.
Если вы планируете провести подготовительные действия днем, а непосредственную установку ночью, необходимо заранее запустить проверку и кэширование образов:
- Днем нажмите кнопку Запустить проверку в выпадающем меню рядом с кнопкой Play.
- Дождитесь завершения проверки.
- Нажмите кнопку Кэшировать образы в выпадающем меню. Это позволит сэкономить время ночной установки.
При таком подходе ночью достаточно будет нажать на кнопку Play и завершить обновление согласно инструкции.
Для обновления версии Почты:
- Запустите установку, нажав на кнопку Play напротив индикатора состояния.
- Подтвердите запуск автоматической установки, нажав на кнопку Запустить во всплывающем окне. В этом окне также есть возможность увеличить процент контейнеров одной роли, устанавливаемых одновременно. Допустима установка значений: 25, 50, 100. Это ускорит процесс обновления.
- Дождитесь завершения установки.
- Перейдите в панель администратора
https://biz.main-domain. - Авторизуйтесь под учетной записью администратора
admin@admin.qdit. - Убедитесь, что письма отправляются и доходят до адресата. Для проверки лучше написать письмо от одного пользователя (не от
admin@admin.qdit) другому пользователю и убедиться, что оно будет доставлено.
После завершения обновления установщик может показать статус Установка завершена, хотя отдельные кластеры баз данных или их реплики остаются в нерабочем состоянии.
-
Откройте Настройки → Шардирование и репликация БД → Кластеры баз данных.
-
Нажмите Опросить базы данных.
-
Перейдите в контейнер каждой роли Tarantool, например:
kubectl exec -it -n onprem rima1-0 -- bash -
Перейдите в консоль:
tarantoolctl connect /run/tarantool/tarantool.sock -
Выполните команду:
box.info -
Убедитесь, что:
- В box.info.status состояние —
running. - В репликации значения box.info.replication.upstream и downstream —
follow.
- В box.info.status состояние —
Если все кластеры в этом состоянии, обновление завершено корректно. Если репликация нарушена, восстановите её по инструкции ниже.
Выполняйте этот шаг, только если на предыдущем шаге обнаружены реплики с нарушенной репликацией.
-
В составе нужного кластера найдите неисправную реплику.
-
Откройте меню реплики и выберите Ребутстрап.

-
Нажмите Запустить.

-
Дождитесь завершения операции.

-
Повторно выполните проверку кластера по инструкции «Проверьте состояние всех баз данных».
Порядок действий описан на примере кластера rima. В примере считаем, что rima1 - master, а для rima2, rima3 нужно выполнить ребутстрап. Для других кластеров используйте их имена.
-
Во вкладке Шардирование и репликация выберите инстанс с наибольшим значением LSN. Остальные инстансы кластера остановите, удалив соответствующие StatefulSet:
kubectl delete sts -n onprem rima2kubectl delete sts -n onprem rima3 -
На Kubernetes-нодах остановленных инстансов создайте резервную копию каталогов в
/opt/mailOnPremise/dockerVolumes, а оригинальные каталоги удалите переименованием:cd /opt/mailOnPremise/dockerVolumessudo mv rima2 rima2baksudo mv rima3 rima3bak -
В веб-интерфейсе установщика на вкладке Переменные окружения установите для мастера переменную:
TARANTOOL_FORCE_RECOVERY=true -
Запустите установку роли для мастера в веб-интерфейсе установщика.
-
Зайдите в консоль Tarantool мастера:
kubectl exec -it -n onprem rima1-0 -- \tarantoolctl connect /var/run/tarantool/tarantool.sock -
Удалите записи в space
_cluster. Идентификаторы для удаления возьмите из результатаbox.space._cluster:select{}:box.space._cluster:select{}box.space._cluster:delete{ИДЕНТИФИКАТОР_RIMA2}box.space._cluster:delete{ИДЕНТИФИКАТОР_RIMA3}В результате команда должна возвращать одну запись:
box.space._cluster:select{} -
Сохраните snapshot:
box.snapshot() -
В веб-интерфейсе установщика установите для мастера переменную:
TARANTOOL_FORCE_RECOVERY=false -
Повторно запустите установку роли для мастера.
-
Запустите установку роли для остальных инстансов кластера. Установщик заново создаст удаленные StatefulSet
rima2иrima3. -
После запуска всех инстансов нажмите Опросить базы данных и проверьте состояние кластера.
Данный шаг не является обязательным, но рекомендуется выполнить его, чтобы сохранить скорость работы системы. После завершения обновления и миграции хранилищ метаданных:
-
Перейдите в раздел Настройки → Шардирование и репликация БД.
-
Найдите БД infraetcd.
-
Кликните правой кнопкой мыши по строчке с infraetcd и нажмите кнопку Compact & defrag.
-
Найдите БД mailetcd.
-
Кликните правой кнопкой мыши по строчке с mailetcd и нажмите кнопку Compact & defrag.
Чтобы убедиться, что обновление прошло успешно, рекомендуем пройти проверки из инструкции: Как вручную проверить состояние Почты.
Технический писатель: Груздев Никита