VK WorkSpace On-Premise logo
Помощь
Обновлена 20 октября 2026 г. в 14:33

Установка обновлений на кластер

Как обновлять Почту до версий ниже 26.3

Документация ко всем предыдущим релизам Почты собрана на странице: Документация предыдущих релизов.

Вы можете выбрать версию Почты, до которой хотите обновиться, и посмотреть соответствующее руководство по обновлению.

Дополнительная документация

Как обновить SSL-сертификаты

Миграция zepto-del-remove

Как подготовить Почту к обновлению на версию 26.3.1?

Предварительные условия для установки обновления

  1. Убедитесь, что представители VK предоставили вам ссылку на скачивание дистрибутива новой версии Почты.

  2. У вас есть архитектурная схема кластера, показывающая, на каком гипервизоре какие компоненты системы установлены. Эти данные потребуются на этапе генерации новых контейнеров.

  3. Проверьте наличие лицензий Почты на каждом домене. Отсутствие лицензии приведет к неработоспособности продукта после обновления.

  4. Чтобы Почта 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.
  1. При обновлении Почты отключите сервисы kesl и auditd. Они могут создавать значительную нагрузку на сервера.

Обновление необходимо проводить в нерабочее время, когда приложением не пользуются сотрудники (в технологическое окно).

Шаг 1. Переключите все Tarantool на консолидированные

  1. Нажмите на значок иконка и перейдите в раздел Продукты.

  2. Включите продукт Консолидация серверов Tarantool и все дочерние продукты.

    Filters

  3. Нажмите кнопку Сохранить внизу страницы.

  4. Запустите автоматическую установку со всеми проверками.

  5. Удалите все роли, помеченные желтым цветом.

Шаг 2. Выполните проверку баз данных и хранилищ

Перед установкой обновления необходимо удостовериться в консистентном состоянии кластеров баз данных:

  1. В веб-интерфейсе установщика перейдите в Настройки → Шардирование и репликация БД.
  2. Нажмите на кнопку Опросить базы данных. Таким образом будет проверено состояние баз данных.

Проверьте дисковое пространство на серверах отведенных под хранилища:

  • На разделах выделенных для хранения данных должно быть свободно более 15% дискового пространства и обязательно более 25 Гб.
  • На всех остальных разделах должно быть занято не более 10% дискового пространства.

Шаг 3. Подготовьте новую версию к обновлению

  1. Распакуйте zip-архив c новой версией. Используйте учетную запись пользователя, от имени которого производилась первичная установка:

    # Если на машину не установлен unzip, скачиваем его:sudo apt-get install unzipexport UNZIP_DISABLE_ZIPBOMB_DETECTION=trueunzip -o <имя_архива>
  2. Поместите архив deployer.tar с дистрибутивом новой версии в ту же папку, которая использовалась при первичной установке. То есть туда же, где находится файл-установщик onpremise-deployer_linux.

  3. Распакуйте архив под той же учетной записью поверх имеющегося дистрибутива с заменой всех изменившихся файлов:

    tar -xf deployer.tar
  4. Проверьте, есть ли у файла onpremise-deployer_linux флаг на исполнение (x) с помощью команды:

    ls -la <путь к каталогу с файлом>`.
  5. Если флаг отсутствует, выполните команду:

    chmod +x onpremise-deployer_linux
  6. Распакуйте архив со статическими файлами:

    tar -xf static.tar.gz
  7. Скопируйте архив Docker-репозитория:

    cp registry/mail/dockerRepo.tar source/
  8. Скопируйте файлы md5:

    cp registry/mail/dockerRepo.md5 source/
  9. Выполните команду sudo systemctl restart deployer.

Шаг 4. Добавьте хранилище секретов

В релизе 26.3 секреты из main.yaml хранятся в vault — специализированном хранилище секретов от HashiCorp. Это хранилище типа «ключ-значение», данные в котором хранятся в зашифрованном виде. Для отказоустойчивости несколько инстансов vault объединяются в кластер по алгоритму распределенного консенсуса (RAFT).

Для начала работы с хранилищем его необходимо инициализировать: при инициализации указывается, сколько ключей для разблокировки (unseal keys) сгенерировать и сколько из них требовать для распечатки. Инициализация возвращает токен суперпользователя (rootToken) и ключи для распечатки (unseal keys), которые необходимы для дальнейшей работы с хранилищем.

Каждый перезапуск vault приводит его в состояние «запечатан» (sealed), и его надо распечатать (unseal).

Пример работы с ключами

Есть 10 доверенных сотрудников, при создании хранилища мы создаем 10 ключей и раздаем каждому сотруднику по одному ключу. Чтобы распечатать хранилище, будем требовать 3 ключа. Поэтому, когда нужно будет распечатать vault, нам потребуется 3 сотрудника, чтобы его распечатать.

Чтобы добавить и инициализировать хранилище:

  1. Нажмите кнопку Добавить внизу главной страницы веб-интерфейса установщика.

  2. Выберите опцию Хранилище секретов.

  3. Выберите контейнер vault с помощью чекбокса.

  4. В списке гипервизоров отметьте гипервизоры, на которых будут размещены инстансы vault.

  5. Нажмите на кнопку Добавить.

  6. Запустите автоматическую установку — после ее завершения инстансы vault будут запущены.

  7. Перейдите в раздел Обслуживание -> Хранилище секретов или по адресу http://server-ip-address:8888/service/vault.

  8. Если vault устанавливается впервые, нажмите кнопку Инициализировать Хранилище и задайте параметры инициализации:

    • Всего ключей для распечатывания — сколько ключей сгенерировать.
    • Минимум ключей для распечатывания — сколько ключей потребуется ввести для распечатки (unseal) хранилища. Значение не должно превышать общее количество ключей.
    • Сохранить ключи в Deployer — включите опцию, чтобы установщик сохранил ключи и мог распечатывать хранилище в автоматическом режиме.
  9. После инициализации в веб-интерфейсе отобразятся ключи для распечатки и токен суперпользователя. Сохраните эту информацию.

При инициализации установщик автоматически распечатает хранилище. Если вы обновляете инсталляцию с версии 26.2.3, миграция старых секретов из main.yaml произойдет автоматически.

Распечатка хранилища

Если при инициализации вы включили опцию Сохранить ключи в Deployer, установщик будет автоматически распечатывать хранилище при каждом своем перезапуске и запуске задачи up_container. В этом случае ключи для распечатывания сохраняются на машине с установщиком в файле /home/deployer/workmail/.secStoreKeys.yaml. Если установщику не удалось распечатать хранилище, установка будет заблокирована.

Чтобы распечатать хранилище вручную:

  1. Перейдите на страницу http://server-ip-address:8888/service/vault.
  2. В блоке Распаковка Хранилища секретов введите ключи, полученные при инициализации.
  3. Нажмите кнопку Распаковать (unseal).

В кластерной установке инициализация выполняется только на одном инстансе vault — остальные инстансы подключатся к нему и инициализируются самостоятельно. Распечатка выполняется на каждом инстансе.

Проверка состояния хранилища

На странице http://server-ip-address:8888/service/vault отображается состояние каждого инстанса vault: запущен ли он, инициализирован, запечатан или распечатан, готов ли к работе. Также отображаются «Количество ключей для распечатывания», «Количество необходимых секретов» и «Количество доступных секретов» — последние два значения должны совпадать.

Инстанс готов к работе, когда он запущен, инициализирован и распечатан, а количество доступных секретов совпадает с количеством необходимых.

Установщик автоматически проверяет актуальность секретов при каждом перезапуске и распечатке хранилища и при необходимости мигрирует или добавляет их.

Шаг 5. Добавьте новые контейнеры

Добавьте новые контейнеры, соблюдая распределение по гипервизорам как при первичной установке: базы данных добавить на гипервизоры с базами данных, хранилища — на гипервизоры с хранилищами и так далее. При распределении ролей нужно соблюдать такой порядок:

  1. Хранилища + raft
  2. xtaz
  3. Базы данных
  4. Мониторинг
  5. Почтовый транспорт
  6. API
  7. Все, что осталось (опционально)

Чтобы добавить новые контейнеры:

  1. Перейдите в веб-интерфейс установщика http://server-address:8888, где server-address — ip-адрес машины, на которую производится установка, либо ее доменное имя.

  2. Пролистайте список контейнеров, в нижней части страницы нажмите на кнопку Добавить и выберите пункт Несколько подов.

    AddSeveralConainers

    Откроется всплывающее окно Выберите роли для добавления.

    8SelectRoles

  3. Задайте фильтры:

    • Установлено не более: 0.
    • В колонке Тег: контейнеры какого компонента системы необходимо добавить. Например: База данных, Хранилище, Мониторинг, Инфраструктура и т.д.
    • В колонке Тип нажмите на значок filter_icon и в выпадающем меню выберите StatefulSet.
  4. Выберите все доступные для установки контейнеры.

    выбор тега и ролей

  5. Прокрутите список контейнеров вниз и выберите гипервизоры, на которые нужно произвести установку.

  6. Нажмите на синюю кнопку Добавить. Всплывающее окно, в котором выполнялись предыдущие действия, закроется.

  7. Откройте окно добавления контейнеров, нажав Добавить → Несколько подов.

  8. Повторите шаги 1-6 для всех оставшихся компонентов в поле Теги.

  9. Повторите Шаги 1-8 для всех компонентов с типом Deployment.

  10. Убедитесь, что все контейнеры добавлены:

    • Откройте окно добавления контейнеров, нажав Добавить → Несколько подов.
    • Выберите фильтр Установлено не более: 0.
    • Список контейнеров, доступных для добавления, должен быть пустым.

Вернитесь в верхнюю часть страницы и проверьте: отображается ли в правом верхнем углу зеленая кнопка Далее. Если зеленая кнопка Далее отображается и активна, то донастройте параметры системы. Логика: «Cледуем за кнопкой Далее то тех пор, пока она активна». Когда зеленая кнопка Далее перестанет отображаться в верхнем углу страницы, можно запускать обновление.

Как ускорить установку

Если вы планируете провести подготовительные действия днем, а непосредственную установку ночью, необходимо заранее запустить проверку и кэширование образов:

  1. Днем нажмите кнопку Запустить проверку в выпадающем меню рядом с кнопкой Play.
  2. Дождитесь завершения проверки.
  3. Нажмите кнопку Кэшировать образы в выпадающем меню. Это позволит сэкономить время ночной установки.

При таком подходе ночью достаточно будет нажать на кнопку Play и завершить обновление согласно инструкции.

Как перенести роль cld-unzipper на StatefulSet

  1. Удалите текущий compute cld-unzipper:

    1. Найдите cld-unzipper в списке compute'ов.

    2. Подключитесь по SSH к серверу, на котором установлен deployer, и в файле /home/deployer/computes.yaml удалите блок роли cld-unzipper:

      - role: cld-unzipper  hostname: cld-unzipper3  podK8SParams:    cluster: ext-k8s1    replicas:      min: 1      max: 1      dc:        dc1:          min: 1          max: 1        dc2:          min: 1          max: 1  zone: ""
    3. Удалите deployment cld-unzipper в каждом контексте k8s:

      export KUBECONFIG=/home/deployer/.kube/ext-k8s<номер ext-k8s с лейблом local-k8s>.configkubectl delete deployment cld-unzipper -n <namespace, указанный в настройках kubernetes> --context=dc-<наименование dc>kubectl get cm -n <namespace, указанный в настройках kubernetes> -o name | grep cld-unzipper | xargs kubectl delete -n <namespace, указанный в настройках kubernetes>kubectl delete svc -n <namespace, указанный в настройках kubernetes> cld-unzipper-headless-service
    4. Выполните команду sudo systemctl restart deployer.

  2. В веб-интерфейсе установщика, на главной странице нажмите кнопку Добавить и выберите пункт Несколько подов.

  3. В столбце Роль введите cld-unzipper.

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

  5. Выберите гипервизоры, на которые нужно произвести установку.

  6. Нажмите на синюю кнопку Добавить. Всплывающее окно, в котором выполнялись предыдущие действия, закроется.

  7. Выполните шаг up_container для добавленных cld-unzipper.

Шаг 6. Запустите обновление

Для обновления версии Почты:

  1. Запустите установку, нажав на кнопку Play напротив индикатора состояния.
  2. Подтвердите запуск автоматической установки, нажав на кнопку Запустить во всплывающем окне. В этом окне также есть возможность увеличить процент контейнеров одной роли, устанавливаемых одновременно. Допустима установка значений: 25, 50, 100. Это ускорит процесс обновления.
  3. Дождитесь завершения установки.
  4. Перейдите в панель администратора https://biz.main-domain.
  5. Авторизуйтесь под учетной записью администратора admin@admin.qdit.
  6. Убедитесь, что письма отправляются и доходят до адресата. Для проверки лучше написать письмо от одного пользователя (не от admin@admin.qdit) другому пользователю и убедиться, что оно будет доставлено.

Шаг 7. Выполните компактизацию и дефрагментацию etcd

Данный шаг не является обязательным, но рекомендуется выполнить его, чтобы сохранить скорость работы системы. После завершения обновления и миграции хранилищ метаданных:

  1. Перейдите в раздел Настройки → Шардирование и репликация БД.
  2. Найдите БД infraetcd.
  3. В строчке с infraetcd, в колонке Действия нажмите на иконку с тремя точками и нажмите кнопку Compact & defrag.
  4. Найдите БД mailetcd.
  5. В строчке с mailetcd, в колонке Действия нажмите на иконку с тремя точками и нажмите кнопку Compact & defrag.

Шаг 8. Проведите тестирование пользовательских интерфейсов

Чтобы убедиться, что обновление прошло успешно, рекомендуем пройти проверки из инструкции:
Как вручную проверить состояние Почты.

Не проходит up_container у контейнеров cube

Если при обновлении для роли cube не проходит шаг up_container, то в каждом из контейнеров swapg нужно выполнить шаг init_db_fixtures, даже если он помечен зеленым цветом и подписью done.


Технический писатель: Груздев Никита

Была ли статья полезна?