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

Кластерная установка

Назначение документа

В документе описана процедура кластерной установки Диска. Минимальной отказоустойчивой конфигурацией для установки системы считается кластер на 9 машин.

Требования к администраторам

  • Знание Linux на уровне системного администратора.
  • Знание основ работы Систем управления базами данных (СУБД).
  • Знание основ работы служб каталогов (Directory Service).
  • Понимание основ контейнеризации.
  • Знание основ работы сетей и сетевых протоколов.
  • Знание основных инструментов для работы в командной строке: bash, awk, sed.

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

Что делать, если при входе в панель администратора появляется ошибка «Неверный пароль»

Как обновить лицензионный ключ

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

Настройка интеграции с Active Directory

Схема тестового кластера

Вне зависимости от размера кластера нужно соблюдать следующее соотношение виртуальных машин:

cluster-architecture

Минимальная отказоустойчивая конфигурация на 8 машин, которая будет описана в документе, выглядит таким образом:

  • 1 ВМ отводится под мониторинг.
  • 2 ВМ — под фронты.
  • 2 ВМ — под базы данных.
  • 3 ВМ — под хранилища.

Дистрибутив Диска и файл onpremise-deployer_linux должны находиться на гипервизоре, отведенном под мониторинг.

Технические требования

Перед установкой убедитесь, что инфраструктура соответствует требованиям к инфраструктуре Диска VK WorkSpace. Там описаны поддерживаемые операционные системы, требования к CPU, виртуализации, дискам и сети, протоколы и порты, DNS-записи, SSL-сертификаты, настройки ОС, SELinux, антивирус и синхронизация времени, а также то, что нужно подготовить до начала установки.

Требования к ресурсам серверов

По вопросам создания сайзинг-модели специально для вашей компании обратитесь к представителям VK. Минимальные технические параметры для 8 машин:

  • Установщик + мониторинг: 8 vCPU, 16 GB RAM, 570 GB SSD.
  • Фронт №1: 16 vCPU, 40 GB RAM, 570 GB SSD.
  • Фронт № 2: 16 vCPU, 40 GB RAM, 570 GB SSD.
  • База данных №1: 16 vCPU, 20 GB RAM, 570 GB SSD.
  • База данных №2: 16 vCPU, 20 GB RAM, 570 GB SSD.
  • Хранилище №1: 8 vCPU, 16 GB RAM, 570 GB SSD.
  • Хранилище №2: 8 vCPU, 16 GB RAM, 570 GB SSD.
  • Хранилище №3: 8 vCPU, 16 GB RAM, 570 GB SSD.

Также потребуется минимум одна виртуальная машина под Control Plane ноду Kubernetes кластера. Если вы используете несколько дата центров для инсталляции, то для каждого понадобится минимум одна нода Control Plane. Причем количество машин под Control Plane должно быть нечетным.

Требования к дискам (SSD, HDD, IOPS, задержки) приведены в разделе Какие диски использовать для сервисов.

Этапы установки

Весь процесс установки можно разделить на два этапа:

  1. В командной строке на сервере выполняются действия для запуска установщика.
  2. Последующая установка производится в специальном веб-интерфейсе.

Действия в командной строке на сервере

Шаг 1. Создайте пользователя deployer

При кластерной установке вам нужно создать пользователя deployer и скопировать ssh-ключи на всех виртуальных машинах в кластере. Необязательно добавлять один и тот же ssh-ключ, главное, чтобы ВМ с установщиком имела доступ по ssh к другим ВМ в кластере. Ниже алгоритм, который надо выполнить на ВМ с установщиком. На остальных машинах нужно создать пользователя deployer и скопировать ssh-ключи. /home/deployer/.ssh и /home/deployer/.ssh/authorized_keys должны быть с правами 600

  1. В командной строке выполните последовательность команд:

    sudo -i# Задаем пароль и создаем пользователя deployerDEPLOYER_PASSWORD=PASSWORDuseradd -G astra-admin -U -m -s /bin/bash deployerecho deployer:"$DEPLOYER_PASSWORD" | chpasswd# Игнорируем ошибку "НЕУДАЧНЫЙ ПАРОЛЬ: error loading dictionary"# в случае, если она появилась# Перелогиниваемся под пользователем deployersudo -i -u deployerssh-keygen -t rsa -N ""# Нажимаем Enter (согласиться с вариантом по умолчанию)# Копируем ssh-ключ в нужную директориюcat /home/deployer/.ssh/id_rsa.pub >> /home/deployer/.ssh/authorized_keyschmod 600 /home/deployer/.ssh/authorized_keys# Опционально: проверяем, что сами к себе можем зайти без пароляssh deployer@localhostexit
  2. Выполните команду sudo visudo.

  3. В файле /etc/sudoers уберите # в начале следующей строки:

    # %astra-admin       ALL=(ALL)       NOPASSWD: ALL
  4. Выйдите из Vim c сохранением файла.

То же самое можно сделать с помощью редактора nano:

sudo EDITOR=nano visudo# Находим нужную строку, удаляем # в ее начале {params[number=1;position=prefix;anchor=nakhodim_nuzhnuyu_stroku_udalyaem_v_ee_nachale]}# Выходим из nano c сохранением изменений {params[number=2;position=prefix;anchor=vykhodim_iz_nano_c_sokhraneniem_izmeneniy]}

Шаг 2. Распакуйте дистрибутив

  1. Распакуйте дистрибутив под пользователя deployer (в директорию /home/deployer). Вы можете распаковать архив с дистрибутивом и в другую папку или создать подпапку. Нет разницы, каким архиватором пользоваться. Ниже приведен пример для unzip:

    # Если на машину не установлен unzip, скачиваем его:sudo apt-get install unzipexport UNZIP_DISABLE_ZIPBOMB_DETECTION=trueunzip -o <имя_архива>
  2. Если при создании пользователя вы следовали инструкциям из Шага 1, то вам не нужно создавать директорию `/home/deployer', она уже создана.

    mkdir -p /home/deployercd /home/deployer
  3. Распакуйте основной архив deployer.tar:

    tar -xf deployer.tar
  4. Создайте директорию для статики и распакуйте архив:

    tar -xf static.tar.gz
  5. Подготовьте Docker-репозиторий

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

    cp registry/mail/dockerRepo.md5 source/

Шаг 3. Проверьте инфраструктуру с помощью InfraKit

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

  • Запускаемый файл: /home/deployer/configs/infrakit/infrakit-bin
  • Файл конфигурации: /home/deployer/configs/infrakit/project-spec.yaml

Чтобы запустить проверку:

  1. Откройте файл /home/deployer/configs/infrakit/project-spec.yaml и настройте параметры подключения к серверам в секции hosts в простом или расширенном формате. Подробнее смотрите в разделе Форматы описания хостов.

  2.  Выполните команду на сервере с распакованным дистрибутивом, заменив <IP_адрес_сервера> на внешний IP-адрес этого сервера:

    /home/deployer/configs/infrakit/infrakit-bin --project-specific /home/deployer/configs/infrakit/project-spec.yaml --infrakit.bind 0.0.0.0:5555 --infrakit.url <IP_адрес_сервера>
  3. После завершения проверок отчет выводится в консоль. В нем указан статус каждой проверки и описание ошибок при их возникновении.

InfraKit проводит следующие проверки:

Название проверки
Что проверяется
Проверка ОС
Дистрибутив, версия ядра и параметры ядра
Проверка CPU
Архитектура, количество ядер, частота, наличие обязательных инструкций
Проверка памяти
Общий объем и характеристики оперативной памяти
Проверка гипертрейдинга
Состояние Hyper-Threading на процессоре
Проверка виртуализации
Тип виртуализации (KVM, VMware и др.)
Проверка SSH доступа
Возможность входа по SSH-ключу
Проверка sudo без пароля
Возможность выполнения команд sudo без ввода пароля
Проверка SELinux
Статус SELinux (включен/выключен)
Проверка места на диске
Размеры и параметры файловых систем
Проверка IOPS
Производительность дисковой подсистемы
Проверка портов
Доступность и состояние обязательных портов
Проверка DNS
DNS-серверы и записи
Проверка tuned
Активный профиль tuned
Проверка swap
Наличие и состояние swap

Дополнительная информация о работе с InfraKit и расшифровке его отчетов представлена в разделе Проверки инфраструктуры.

Шаг 4. Разрешите Port Forwarding

Для корректной работы установщика и почтовой системы в настройках SSH на всех машинах должен быть разрешен TCP Forwarding.

Чтобы изменить настройку TCP Forwarding, нужно в файле /etc/ssh/sshd_config установить следующее значение:

AllowTcpForwarding yes

Шаг 5. Запустите установщик как сервис

Установщик onpremise-deployer_linux рекомендуется запускать как сервис. При таком запуске не придется прибегать к дополнительным мерам (screen, tmux, nohup), позволяющим установщику продолжить работу в случае потери соединения по SSH.

Чтобы запустить установщик как сервис, выполните команду (подходит для Astra Linux и РЕД ОС):

sudo ./onpremise-deployer_linux -concurInstallLimit 5  \  -serviceEnable -serviceMake -serviceUser deployer

По умолчанию выставлен лимит в 5 потоков, при необходимости вы можете увеличить количество потоков до 10, однако это увеличит и нагрузку на систему. Использование более чем 10 потоков не рекомендуется.

Ответ в случае успешного запуска установщика выглядит следующим образом:

deployer.service was added/updatessee status: <systemctl status deployer.service>can`t restart rsyslog services: [exit status 5]OUT: Failed to restart rsyslog.service: Unit rsyslog.service not found.deployer.service was enable and startedsee status: <systemctl status deployer.service>

Если веб-интерфейс не открывается по адресу http://server-ip-address:8888, то проверьте журналы:

journalctl -u deployer

И убедитесь, что порт 8888 слушают:

ss -lanp|grep :8888

Действия в веб-интерфейсе установщика

  1. Перейдите в веб-интерфейс установщика, в адресной строке браузера укажите адрес: http://server-ip-address:8888. Если перейти по этому адресу не удается, убедитесь, что firewall был отключен.

  2. На стартовой странице нажмите на кнопку Установить.

    выбор версии

Шаг 1. Добавьте лицензионный ключ

  1. Введите лицензионный ключ или укажите путь к файлу лицензии .lic.

    лицензия
  2. Нажмите кнопку Сохранить.

  3. Нажмите на кнопку Далее.

Информацию о том, как обновить лицензионный ключ или проверить сроки действия лицензий по продуктам VK WorkSpace, вы сможете найти в разделе с дополнительной документаци.

Шаг 2. Выберите продукты и компоненты

  1. Включите флаги Диск VK WorkSpace.
  2. Нажмите на кнопку Далее.
  3. Включите нужные вам компоненты в разделе Администрирование.
Продукт
Описание
Аутентификация v26.2.0
Обязательный продукт. Настройка способов входа и защиты аккаунтов
Аутентификация v26.2.0. Единый вход (SSO)
Вход в систему через внешний сервис идентификации (IdP)
Аутентификация v26.2.0. Вход через Kerberos
Вход через Kerberos для пользователей корпоративной сети
Вход через Kerberos. Blitz (внешний)
Beta
Вход через Kerberos. Keycloak (внутри инсталляции) v17.0.1
Вход через Kerberos. Keycloak (внешний)
Аутентификация v26.2.0. Двухфакторная аутентификация
Дополнительная проверка личности при входе
Двухфакторная аутентификация. Коды подтверждения в VK WorkSpace
Получение кодов подтверждения в VK WorkSpace при входе в систему
Аудит действий пользователя
Сервисы записи и чтения действий пользователей, хранилище действий пользователей (ScyllaDB)
Аудит действий пользователя. Дублирование действий пользователей во внешние хранилища
Нужно, чтобы хранить историю операций пользователей отдельно от почтовой системы
Система BI-аналитики
Beta
Система BI-аналитики. Kafka внутри инсталляции
16 GB RAM, 8 vCPU
Консолидация серверов Tarantool
Переключает тарантулы выбранных групп на консолидированные
Базы Данных
Включение обратной совместимости с версиями VK WorkSpace для определенных сервисов, ранее поддерживающих только работу с MySQL.
Базы Данных. Использовать MySQL
Инструменты разработки
Включает дополнительные сервисы для тестирования системы, например, генерирование аккаунтов
Поддержка Российских криптографических стандартов (ГОСТ TLS)
Beta. Позволяет VK WorkSpace работать с российскими криптографическими стандартами: ГОСТ Р 34.12-2015 (шифрование) и ГОСТ Р 34.10-2012 (электронные подписи). Это необходимо для обеспечения безопасного соединения
Система групповых политик
Beta
Система групповых политик. Kafka внутри инсталляции
16 GB RAM, 8 vCPU
Встроенное хранилище образов контейнеров
Хранения образов контейнеров почтовой системы внутри вашей инфраструктуры
VK Kubernetes
Beta. Возможность развертывания в среде контейнеризации Kubernetes
Резервное копирование (бэкап)
Средства резервного копирования данных диска, почты, календарей, профилей пользователей и адресных книг
Мониторинг
Набор сервисов, обеспечивающих хранение метрик сервисов в базе данных Prometheus и визуализацию данных с помощью Grafana
Мониторинг. Экспортер метрик из Victoria Metrics в Zabbix
Сервис, обеспечивающий отправку данных из Victoria Metrics и Node Exporter в Zabbix
Сбор и отправка метрик
Сборщики и трансляторы Graphite и Prometheus-метрик
Прогноз и контроль объема почтового хранилища
Beta. Мониторинг заполнения хранилища почты
Интеграция с редактором «МойОфис» по протоколу WOPI
Отменить проверку контейнеров OneDB после запуска
Редактор «Р7-Офис» внутри инсталляции
Позволяет использовать встроенный в VK WorkSpace редактор «Р7-Офис». Требует дополнительных ресурсов системы
Интеграция с редактором «Р7-Офис» по протоколу WOPI
Аудит действий пользователя (облегченная версия)
Сервисы записи и чтения действий пользователей, хранилище действий пользователей (PostgreSQL)
Аудит действий пользователя (облегченная версия). Дублирование действий пользователей во внешние хранилища
Нужно, чтобы хранить историю операций пользователей отдельно от почтовой системы
Ядро объектного хранилища S3
Обязательный продукт. Сервисы, обеспечивающие хранение любых неструктурированных данных по протоколу S3
Ядро объектного хранилища S3. Ядро распределенного файлового хранилища
Обязательный продукт. Отвечает за логику распределения данных по узлам, целостность и отказоустойчивость хранилища
Интеграция почты с мессенджером VK WorkSpace
  1. Включите продукты VK Kubernetes и Логирование. Логирование позволяет сохранять историю логов пода, но потребуется больше дискового пространства.

    добавить новый ключ

  2. Нажмите на кнопку Далее.

  3. Включите нужные вам компоненты в разделе Диск.

Продукт
Описание
Система миграции Диска VK WorkSpace из внешних сервисов
Beta. После включения опции появится возможность мигрировать в VK WorkSpace файлы из Microsoft OneDrive, Google Drive, NextCloud
Система проверки файлов Диска через DLP
Beta. Настройки дополнительной проверки файлов Диска с помощью внешней DLP-системы для повышения уровня безопасности
Интеграция с антивирусом по протоколу ICAP
Дает возможность интегрировать сторонние антивирусные системы с VK WorkSpace
<info>Есть компоненты, настройка которых производится в административной панели (`biz.<почтовый домен>`), но включить их нужно при установке. Например, **Система расширенных транспортных правил** и **Система миграции Диска VK WorkSpace из внешних сервисов**.</info>

7. Нажмите на кнопку Далее.

Шаг 3. Добавьте гипервизоры (серверы)

Переключитесь на вкладку Ручная настройка. Ниже описано, как добавить одну из worker-машин и как добавить Control Plane ноду.

Чтобы добавить worker-ноду:

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

  2. Заполните поля:

    • IP-адрес — адрес машины, на которую производится установка.

    • Имя сервера — укажите имя сервера (гипервизора) или оставьте поле пустым. В случае если вы оставите поле незаполненным, имя гипервизора будет взято из hostname -s и добавится автоматически. В документации будет использовано имя hypervisor1.

    • Имя пользователя — укажите имя того пользователя, под которым запущен установщик. В рассматриваемом примере это пользователь deployer.

  3. Заполните поле Метки:

    1. Напротив server, в выпадающем меню выберите опцию worker.

    2. Напротив DC укажите любое название дата-центра.

    3. Напротив project выберите опцию mail.

    4. Для машины отведенной под мониторинг напротив type выберите: monitoring и registry. Для всех остальных машин укажите одну опцию type соответствующую роли машины: storage, database, frontend.

    настройки сети
  4. Оставьте чекбокс Сервер во внешней (dmz) зоне пустым.

  5. После заполнения полей нажмите на кнопку Добавить сервер — гипервизор отобразится в веб-интерфейсе установщика.

  6. Аналогичным образом добавьте еще 6 гипервизоров:

    • 2 — под фронты,
    • 1 — под базы данных,
    • 3 — под хранилища.
  7. Добавьте ноду Control Plane. Ее рекомендуется устанавливать на отдельную виртуальную машину. Но она может быть установлена на гипервизор отведенный под базы данных.

  8. Если нода Control Plane будет установлена на ВМ под базы данных, то при добавлении гипервизора, в поле Метки, напротив server укажите опцию control-plane.

    настройки сети

  9. Нажмите Далее внизу страницы.

Шаг 4. Проверьте серверы на соответствие требованиям

В открывшемся окне нажмите Запустить проверки. Будут выполнены следующие проверки:

  • Проверка ОС, дистрибутива и параметры ядра.
  • Проверка архитектуры CPU, количества ядер и обязательных фич.
  • Проверка общего объема и характеристик оперативной памяти.
  • Проверка размеров и параметров файловых систем.
  • Проверка производительности дисковой подсистемы по IOPS.
  • Проверка доступности и состояния обязательных портов.
  • Проверка DNS-серверов и записей.
  • Проверка активного tuned профиля.
  • Проверка наличия и состояния swap.

После успешного выполнения всех проверок нажмите Далее.

Шаг 5. Настройте кластер Kubernetes

Чтобы настроить Kubernetes кластер перейдите в раздел Настройки → Kubernetes. Или по адресу http://server-ip-address:8888/config/main/k8s/commonTab, если оно не откроется автоматически.

В разделе Общие настройки укажите:

  • Режим маршрутизации: VXLAN.
  • Namespace по умолчанию — пространство имен, в котором будут работать сервисы Диска.
  • Домен в кластере K8s.
  • Использовать WG — установщик самостоятельно установит и настроит WireGuard на серверах на шаге enable_hybrid_bgp.
  • Tunnel CIDR — диапазон адресов для интерфейсов WireGuard или tunl0.
  • Версия Kubernetes.

общие настройки Kubernetes

Заполните поля в разделе Настройки кластеров. Пример заполнения полей для трех кластеров:

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

Шаг 6. Доменные имена

Подробную информацию о создании доменных имен вы найдете в разделе DNS-записи.

На вкладке Доменные имена необходимо заполнить все поля:

  • Название вашей компании — введите название компании, которое будет отображаться в интерфейсе Диска.
  • Сайт вашей компании — укажите сайт вашей компании.
  • Основной домен для сервисов — в поле необходимо указать ранее созданный Основной домен для Диска.
  • Домен для облачных хранилищ — в поле введите ранее созданный Домен для облачных хранилищ.

Когда все поля будут заполнены, нажмите на кнопку Сохранить для перехода к следующему шагу.

доменные имена

После сохранения доменных имен появятся ошибки. Они пропадут после добавления SSL-сертификатов на следующем шаге.

Добавление SSL-сертификатов

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

  2. В открывшейся форме введите сертификат и ключ. Их необходимо указать полностью, включая:

    -----BEGIN CERTIFICATE----- и -----END CERTIFICATE----- и -----BEGIN PRIVATE KEY----- и -----END PRIVATE KEY-----.

  3. Кликните по кнопке Сохранить.

    сохранение сертификата

Есть второй вариант:

  1. Нажмите на кнопку Выбрать файл.
  2. Укажите путь к файлу с сертификатом .crt.
  3. Укажите путь к файлу с ключом .key.
  4. Кликните по кнопке Сохранить.

Если все верно, в интерфейсе не будет отображаться ошибок и красной подсветки. Нажмите на зеленую кнопку Далее.

Шаг 7. Установка гипервизоров и Kubernetes кластера

Чтобы установить гипервизоры и Kubernetes кластер, запустите автоматическую установку.

На изображении ниже приведен пример того, как выглядит веб-интерфейс установщика после завершения установки всех гипервизоров.

7BeforeAddingContainers

Если на гипервизорах есть шаги, помеченные серым или желтым цветом, то запустите автоматическую установку еще раз.

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

В релизе 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: запущен ли он, инициализирован, запечатан или распечатан, готов ли к работе. Также отображаются «Количество ключей для распечатывания», «Количество необходимых секретов» и «Количество доступных секретов» — последние два значения должны совпадать.

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

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

Шаг 9. Распределение подов по гипервизорам

Кликните по значку иконка и перейдите в раздел Описание сервисов, чтобы посмотреть развернутую информацию о назначении ролей, их дублируемости и зависимостях. В этом же выпадающем меню вы найдете дополнительную документацию, сможете включить или выключить продукты (внутри раздела Продукты) и обновить лицензионный ключ.

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

В нижней части экрана выберите Добавить → Несколько подов.

8AddSeveralContainers

Откроется окно выбора ролей.

8SelectRoles

При распределении ролей нужно соблюдать такой порядок:

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

Для выбора ролей используйте поле Теги в качестве фильтра.

Порядок действий при распределении подов

Хранилища

Первыми должны быть выбраны роли для хранилищ:

  1. В колонке Тег нажмите на значок filter_icon и в выпадающем меню выберите Хранилище.

  2. В колонке Установлено нажмите на значок filter_icon и в строке Не более установите значение 0.

  3. В колонке Тип нажмите на значок filter_icon и в выпадающем меню выберите StatefulSet.

  4. Отметьте все доступные для установки роли с помощью чекбокса в таблице.

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

  5. Ниже в списке гипервизоров отметьте те, которые были отведены под хранилища.

  6. Режим генерации — На каждом гипервизоре.

    выбор гипервизоров-хранилищ

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

  8. Аналогично добавьте роли с типом Deployment. В поле Кластер K8s выберите кластер для сервисов Диска. Название кластера указывалось на Шаге 5.

На гипервизоры-хранилища необходимо добавить кластер raft.

  1. В колонке Тег нажмите на значок filter_icon и в выпадающем меню выберите raft.
  2. В колонке Установлено нажмите на значок filter_icon и в строке Не более установите значение 0. Если пропустить этот фильтр, кластер не соберется.
  3. Отметьте все доступные для установки роли с помощью чекбокса в таблице.
  4. Ниже в списке гипервизоров отметьте те, которые были отведены под хранилища.
  5. Нажмите на кнопку Добавить. Всплывающее окно, в котором выполнялись предыдущие действия, закроется.

На каждом из гипервизоров-хранилищ нужно дополнительно сгенерировать еще по одному контейнеру xtaz.

  1. В колонке Роль нажмите на значок filter_icon и введите xtaz.

  2. Очистите значение фильтра в колонке Установлено.

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

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

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

    выбор гипервизоров-хранилищ

Базы данных

Следующий шаг — распределение ролей для баз данных.

  1. В колонке Тег нажмите на значок filter_icon и в выпадающем меню выберите База данных.
  2. В колонке Установлено нажмите на значок filter_icon и в строке Не более установите значение 0.
  3. В колонке Тип нажмите на значок filter_icon и в выпадающем меню выберите StatefulSet.
  4. Отметьте Все доступные для установки роли.
  5. Ниже выберите гипервизоры, отведенные под базы данных.
  6. Нажмите на кнопку Добавить.
  7. Аналогично добавьте роли с типом Deployment. В поле Кластер K8s выберите кластер для сервисов Диска. Название кластера указывалось на Шаге 5.

Мониторинг

Чтобы добавить роли для мониторинга, повторно откройте окно выбора ролей.

  1. В колонке Тег нажмите на значок filter_icon и в выпадающем меню выберите Мониторинг.
  2. В колонке Установлено нажмите на значок filter_icon и в строке Не более установите значение 0.
  3. Отметьте Все доступные для установки роли.
  4. Выберите гипервизор-мониторинг.
  5. Нажмите на кнопку Добавить.
  6. Аналогично добавьте роли с типом Deployment. В поле Кластер K8s выберите кластер для сервисов Диска. Название кластера указывалось на Шаге 5.

Фронты

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

  1. В колонке Тег нажмите на значок filter_icon и в выпадающем меню выберите Почтовый транспорт.
  2. В колонке Установлено нажмите на значок filter_icon и в строке Не более установите значение 0.
  3. Отметьте Все доступные для установки роли.
  4. Выберите гипервизоры, отведенные под фронты.
  5. Нажмите на кнопку Добавить.
  6. Аналогично добавьте роли с типом Deployment. В поле Кластер K8s выберите кластер для сервисов Диска. Название кластера указывалось на Шаге 5.

Завершающий этап — распределить роли для API.

  1. В колонке Тег нажмите на значок filter_icon и в выпадающем меню выберите API.
  2. В колонке Установлено нажмите на значок filter_icon и в строке Не более установите значение 0.
  3. Отметьте Все доступные для установки роли.
  4. Выберите гипервизоры, отведенные под фронты.
  5. Нажмите на кнопку Добавить.
  6. Аналогично добавьте роли с типом Deployment. В поле Кластер K8s выберите кластер для сервисов Диска. Название кластера указывалось на Шаге 5.

Убедитесь, что все роли распределены

  1. Откройте окно добавления выбора ролей, нажав на Добавить → Несколько подов.
  2. В колонке Установлено нажмите на значок filter_icon и в строке Не более установите значение 0.
  3. Список ролей, доступных для добавления, должен быть пустым. Если это не так, распределите оставшиеся роли по гипевизорам в соответствии с тегами.

После того как все контейнеры сгенерированы, нажмите на зеленую кнопку Далее в правом верхнем углу.

Шаг 10. Хранилища

В разделе формируются дисковые пары для гипервизоров-хранилищ. Разделение на дисковые пары происходит автоматически, если вы не подключали дополнительные диски. В таком случае можно переходить в настройке Mescalito, описанной в следующем шаге.

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

Ниже описана процедура ручного распределения дисковых пар. Дисковые пары нужно распределять вручную, если вы подключали дополнителные диски.

Минимальная отказоустойчивая конфигурация состоит из трех машин, на каждой из которых по 2 дисковых раздела:

  • Диск хранилища 1 разделен на 2 части.
  • Диск хранилища 2 разделен на 2 части.
  • Диск хранилища 3 разделен на 2 части.

Всего 6 разделов дисков (2 на одном гипервизоре, 2 — на втором, еще 2 — на третьем).

При такой конфигурации:

  • Всегда есть пара на запись.
  • Остальные пары доступны для чтения.

При сборке хранилищ дисковые пары объединяются в «логические треугольники». Объединение происходит по принципу: 1-2, 2-3, 3-1.

storages_diagram_1

В списке слева доступные хранилища будут отмечены восклицательными знаками. Нужно перейти на вкладку каждого хранилища и сформировать дисковые пары.

хранилища без пар

Чтобы добавить дисковые пары вручную:

  1. Нажмите на кнопку Добавить.
  2. В выпадающем меню выберите контроллер и устройство для Диска 1 первой пары.
  3. Выберите контроллер и устройство для Диска 2 первой пары.
  4. Повторите шаги 2-3 еще для двух пар.

На изображении ниже приведен пример для хранилища zepto_skel:

zepto_skel

Раздел Mescalito

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

mescalito

  • Обработчики писем (mescalito) — специальные процессы внутри контейнеров stm. Задача обработчика — собрать письмо из частей, находящихся в разных хранилищах.

  • Хранилища индексов (tarantool xtaz) — хранилища «горячих» данных почтовых ящиков.

Существует 2 типа ящиков:

  • Сервисный — admin@admin.qdit (администраторы Диска).
  • Корпоративный — все остальные ящики системы, которые администрируются в biz.<домен>.

Чтобы обеспечить отказоустойчивость для каждого кластера необходимо назначать по 2-3 обработчика, которые находятся на разных машинах или в разных дата-центрах.

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

fstab

Раздел актуален для ситуаций, когда были подключены дополнительные диски.

Необходимый набор томов для контейнеров хранилища выдается в виде набора записей для /etc/fstab.

Отредактировать fstab и смонтировать разделы нужно самостоятельно в консоли. Монтировать рекомендуется по UUID.

Ниже для примера приведен скриншот с одного из наших тестовых стендов.

fstab

Пример команд для монтирования разделов:

vi /etc/fstab# Вставляем строчки, скопированные из веб-интерфейса установщика. {params[number=3;position=prefix;anchor=vstavlyaem_strochki_skopirovannye_iz_veb_interfeysa_ustanovshchika]}# Сохраняем изменения. {params[number=4;position=prefix;anchor=sokhranyaem_izmeneniya]}mount -a# Получаем набор предупреждений <путь> mount point does not exist {params[number=5;position=prefix;anchor=poluchaem_nabor_preduprezhdeniy_put_mount_point_does_not_exist]}mkdir -p <путь># Повторяем для всех путей {params[number=6;position=prefix;anchor=povtoryaem_dlya_vsekh_putey]}mount -a

Шаг 11. Шардирование и репликация БД

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

Чтобы добавить более одного кластера, потребуется сгенерировать дополнительные контейнеры.

шардирование и репликация БД

Чтобы добавить кластер:

  1. Нажмите кнопку Добавить в первой строке, отмеченной красным.
  2. Нажмите кнопку Добавить контейнер БД. В зависимости от типа базы данных может быть добавлен один или два контейнера.
  3. Сохраните изменения.
  4. Повторите шаги 1-4 для каждой строки, отмеченной красным.

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

шардирование и репликация БД

Шаг 12. Настройка компонентов

В разделе выполняются настройки различных компонентов системы.

компоненты

Ограничение доступа к доменам

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

Ограничить доступ к домену — если включен только этот флаг, в поле ниже нужно будет ввести IP/подсети, которым будет разрешен доступ к домену. Также вы можете добавить комментарии, если это необходимо.

кому запрещен доступ

Режим запрета — запрещать следующим IP/подсетям — если включены оба флага (ограничение доступа и режим запрета), доступ к доменам будет запрещен IP/подсетям, введенным в поле.

Не забудьте повторить шаги на гипервизоре (нужные шаги уже отмечены желтым). Также можно нажать на кнопку Play в общей строке состояния. Для этого перейдите к списку шагов, кликнув по логотипу в левом верхнем углу веб-интерфейса.

Панель администрирования

Чтобы начать настройку, нажмите кнопку редактирования значок редактирования.

настройки административной панели

Административные домены — с помощью кнопки Добавить по одному введите домены (до знака @), которым нужно выдать максимальные права.

Количество дней перед удалением пользователя — количество дней, через которое пользователь будет удален из Диска. Изменение настройки по умолчанию актуально при одновременном использовании Диска c Active directory. По умолчанию выставлен срок 5 дней, то есть пользователь будет удален из Диска через 5 дней после его удаления из AD.

Размер облака пользователя по умолчанию (Мб) — при необходимости ограничьте максимальный размер облака для каждого пользователя.

Не проверять актуальность включенного функционала (фич) — при включенном флаге установщик будет пропускать шаг bizf → addBizFeatures.

Общие переменные окружения для всех сервисов панели администрирования — с помощью кнопки Добавить вы можете ввести имя и значение переменных, которые применятся к ролям bizf, biz-celery-worker-* и biz-celery-beat. Вам не нужно будет каждый раз отдельно для всех ролей прописывать переменные, достаточно добавить их в общие переменные окружения.

Рассыльщики

В разделе настраиваются служебные почтовые рассылки для внутренних пользователей. Чтобы перейти к настройкам, нажмите на кнопку редактирования. Есть возможность создать рассылки для VK WorkDisk, административной панели и уведомлений об отзыве письма.

настройки логов

  1. Введите email и имя отправителя.
  2. Введите адрес и порт сервера рассылки.
  3. Сохраните изменения.
  4. Перейдите к списку ролей и запустите автоматическую установку, чтобы применить настройки.

Дальнейшая настройка транспортных правил производится в административной панели по завершении установки.

Система учета действий пользователей

Чтобы изменить время хранения логов, кликните по кнопке редактирования.

настройки логов

Время хранения событий по пользователям (в секундах) — вы можете установить время хранения логов. При установленном значении 0 срок хранения логов не будет ограничен.

Включить статистику по IP — при включенном флаге появится окно для изменения срока хранения логов по IP.

Мониторинг

Настройки мониторинга актуальны для случаев, когда необходимо переключиться с внутреннего мониторинга Диска на внешние системы мониторинга (Graphite/Prometheus).

Чтобы включить внешнюю систему мониторинга:

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

  2. Включите флаг Система сбора и отправки метрик. При этом флаг Система мониторинга будет автоматически отключен.

  3. Сохраните изменения и вернитесь к списку ролей.

  4. Внизу страницы нажмите на кнопку Сгенерировать автоматически, чтобы установщик сформировал новые роли.

  5. Чтобы предотвратить возможные проблемы, перейдите в консоль и перезапустите установщик с помощью команды:

    sudo systemctl restart deployer
  6. После перезапуска в списке ролей отобразятся роли, которые нужно удалить. Если в интерфейсе не подсветились роли для удаления, перезагрузите страницу.

    роли к удалению
  7. Удаление может занять некоторое время. Когда все неактуальные роли будут удалены, запустите автоматическую установку.

  8. Далее перейдите в раздел Настройки компонентов → Мониторинг. Введите необходимые данные для системы мониторинга, которую вы используете.

    настройки мониторинга

  9. Сохраните изменения.

По ссылке Набор готовых дашбордов для Grafana вы можете скачать дашборды в формате JSON для добавления их в Grafana.

Настройки HTTP(S)-прокси

Если вы используете прокси-сервер при подключении клиентов к системе VK WorkSpace, включите флаг Перед VK WorkSpace есть прокси-сервер, чтобы контейнер, отвечающий за HTTPS-соединение, мог принимать трафик без шифрования.

настройки прокси

Список IP прокси-серверов — введите в поле список IP-адресов, с которых Диск будет принимать заголовки с оригинальными IP клиента и оригинальным протоколом подключения.

HTTP-заголовок прокси с оригинальным IP клиента — добавьте в поле заголовок прокси, который передает реальный IP-адрес клиента, иначе сервис будет работать некорректно.

HTTP-заголовок прокси с оригинальным протоколом подключения клиента — для корректной работы сервисов введите заголовок оригинального протокола подключения.

Внешний S3 как хранилище для Диска

Шаг выполняется, только если при выборе продуктов в разделе Администрирование был включен продукт Внешний S3 как хранилище для Почты и Диска. Если продукт выключен, инсталляция использует встроенное хранилище и настраивать ничего не нужно.

Параметры подключения задаются отдельно для каждого типа хранилища. Перейдите в раздел Настройки → вкладка Хранилища, слева выберите S3, затем откройте вкладку нужного типа хранилища и нажмите на значок карандаша.

Настройка внешнего S3

Протокол, хост и порт S3 сервера — адрес внешнего S3 в формате <протокол>://<хост>:<порт>, например https://example.com:443. Обращение к объектам выполняется в стиле path-style, то есть по схеме http(s)://<хост>/<бакет>/<ключ>.

S3 Bucket — имя бакета, в котором будут храниться объекты этого типа хранилища.

S3 Access Key ID — идентификатор ключа доступа к S3.

S3 Secret Key — секретный ключ доступа к S3. После сохранения значение скрывается и в интерфейсе не отображается.

S3 Region — регион S3. Заполняется, если этого требует ваш провайдер. Значение по умолчанию — auto.

S3 Storage Class — класс хранения объектов. Заполняется, если этого требует ваш провайдер. Значение по умолчанию — auto. Рекомендуемый класс зависит от типа хранилища и указан в интерфейсе установщика в блоке Рекомендации к S3.

Заполните параметры на вкладке cloud. Если вместе с Диском устанавливается Почта, заполните параметры и для остальных типов хранилищ — blobcloud, blobsign, crow, skel. Набор вкладок зависит от состава устанавливаемых продуктов. Требования и рекомендации к каждому типу хранилища установщик показывает на его вкладке в блоках Требования к S3 и Рекомендации к S3.

После заполнения параметров нажмите Сохранить и продолжите установку.

Ограничения функциональности, требования к S3-хранилищу, список совместимых провайдеров, описание типов хранилищ с расчетом нагрузки и порядок изменения параметров подключения после установки описаны в отдельном документе — Как подключить внешний S3 как хранилище для Диска.

Шаг 13. Интеграции

В блоке будут отображаться интеграции, которые вы включили на этапе выбора продуктов и опций (настройки интеграций могут также находиться в верхнем меню).

Интеграция с Keycloak для SSO-авторизации — в документе содержится инструкция по настройке интеграции с сервисом SSO-авторизации.

Настроить дублирование действий пользователей во внешние хранилища

Настройки cистемы BI-аналитики

Чтобы получить возможность просматривать статистику использования VK WorkDisk в административной панели (biz.<домен>), в списке продуктов необходимо включить опцию Система BI-аналитики и Kafka внутри инсталяции и нажать на кнопку Сохранить.

Чтобы подключиться к внешнему серверу Kafka, перейдите в раздел Интеграции → Настройки cистемы BI-аналитики и заполните соответствующие поля.

внешняя статистика

Сохраните изменения.

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

  1. Нажмите на кнопку Добавить → Несколько контейнеров.
  2. В поле Установлено не более: введите значение 0. Появятся контейнеры для распредления.
  3. Добавьте контейнеры для Clickhouse на гипервизоры для хранилищ.
  4. Если вы используете Kafka внутри инсталяции, распределите контейнеры с Kafka на гипервизоры для баз данных тем же способом (с помощью кнопки Добавить).
  5. По окончании генерации контейнеров запустите автоматическую установку в общей строке состояния.

Шаг 14. Укажите переменные окружения

В разделе производится настройка кастомных переменных Панели администратора.

14

Чтобы добавить кастомную переменную:

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

  2. В выпадающем меню выберите название переменной.

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

  4. Нажмите на кнопку Сохранить.

  5. Нажмите на кнопку Далее для перехода к следующему шагу.

Шаг 15. Запустите установку всех машин

  1. В веб-интерфейсе установщика Панели администратора кликните по иконке 9 рядом c общей строкой состояния в верхней части экрана.

  2. Подтвердите запуск автоматической установки, нажав на кнопку Запустить.

    запуск всего

    В зависимости от этапа установки будет меняться цвет индикатора:

    • Серый — в ожидании начала генерации.
    • Синий — в процессе генерации.
    • Желтый — шаг будет повторен (автоматически).
    • Красный — ошибка.
  3. Ожидайте завершения установки. Пока процесс идет, рядом со строкой состояния будет отображаться красная кнопка Stop.

Если в процессе установки и настройки системы происходят изменения конфигурации, некоторые задачи могут потребовать повторного выполнения.

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

Шаг 16. Инициализируйте домен и войдите в Панель администратора

Когда установка Панели администратора будет завершена, соответствующий статус отобразится в строке состояния.

  1. Нажмите на кнопку Далее в правом верхнем углу.

    installation complete

  2. Введите имя домена и нажмите на кнопку Добавить.

    add domain

    Домен считается подтвержденным после добавления в Панель администратора.

    В адресную строку скопируйте адрес Панели администратора и введите данные:

    • Имя пользователя — admin@admin.qdit.
    • Пароль находится в файле — bizOwner.pass, для его просмотра введите в консоли команду: cat <путь до директории с установщиком>/bizOwner.pass.

    Если логин и пароль были введены правильно, вы попадете в Панель администратора.

Добавление дополнительных доменов

Если вы планируете использовать несколько доменов, добавьте их с помощью кнопки Добавить домен:

11

Логи и полезные команды

  1. Перезапуск установщика:

    sudo systemctl restart deployer
  2. Логи установщика:

    sudo journalctl -fu deployer
  3. Список запущенных подов:

    kubectl get pods -n <namespace>

    Добавьте флаг -o wide, чтобы увидеть, на каких нодах размещены поды.

  4. Список подов, которые не перешли в состояние Running:

    kubectl get pods -n <namespace> --field-selector=status.phase!=Running
  5. Состояние нод кластера:

    kubectl get nodes -o wide
  6. Логи конкретного пода:

    kubectl logs -n <namespace> <имя_пода>

    Полезные флаги:

    • -f — следить за логом в реальном времени.
    • --tail=100 — вывести только последние 100 строк.
    • --previous — логи предыдущего запуска. Пригодится, если под успел перезапуститься и логи упавшего экземпляра уже не отдаются.
    • -c <имя_контейнера> — выбрать контейнер, если в поде их несколько.
  7. Подробная информация о поде — события, причина перезапуска, ограничения по ресурсам:

    kubectl describe pod -n <namespace> <имя_пода>
  8. События в пространстве имен в порядке возникновения:

    kubectl get events -n <namespace> --sort-by=.lastTimestamp
  9. Консоль внутри пода:

    kubectl exec -it -n <namespace> <имя_пода> -- bash
  10. Перезапуск пода:

    kubectl delete pod -n <namespace> <имя_пода>
  11. Перезапуск всех подов сервиса:

    kubectl rollout restart -n <namespace> deployment/<имя_сервиса>
    kubectl rollout restart -n <namespace> statefulset/<имя_сервиса>

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

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