В документе описана процедура кластерной установки Диска. Минимальной отказоустойчивой конфигурацией для установки системы считается кластер на 9 машин.
- Знание Linux на уровне системного администратора.
- Знание основ работы Систем управления базами данных (СУБД).
- Знание основ работы служб каталогов (Directory Service).
- Понимание основ контейнеризации.
- Знание основ работы сетей и сетевых протоколов.
- Знание основных инструментов для работы в командной строке: bash, awk, sed.
Что делать, если при входе в панель администратора появляется ошибка «Неверный пароль»
Как обновить лицензионный ключ
Установщик не может получить доступ до гипервизора
Настройка интеграции с Active Directory
Вне зависимости от размера кластера нужно соблюдать следующее соотношение виртуальных машин:
Минимальная отказоустойчивая конфигурация на 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, задержки) приведены в разделе Какие диски использовать для сервисов.
Весь процесс установки можно разделить на два этапа:
- В командной строке на сервере выполняются действия для запуска установщика.
- Последующая установка производится в специальном веб-интерфейсе.
При кластерной установке вам нужно создать пользователя deployer и скопировать ssh-ключи на всех виртуальных машинах в кластере. Необязательно добавлять один и тот же ssh-ключ, главное, чтобы ВМ с установщиком имела доступ по ssh к другим ВМ в кластере. Ниже алгоритм, который надо выполнить на ВМ с установщиком. На остальных машинах нужно создать пользователя deployer и скопировать ssh-ключи. /home/deployer/.ssh и /home/deployer/.ssh/authorized_keys должны быть с правами 600
-
В командной строке выполните последовательность команд:
Astra LinuxРЕД ОС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 -
Выполните команду
sudo visudo. -
В файле
/etc/sudoersуберите # в начале следующей строки:Astra LinuxРЕД ОС# %astra-admin ALL=(ALL) NOPASSWD: ALL -
Выйдите из 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]}
-
Распакуйте дистрибутив под пользователя deployer (в директорию
/home/deployer). Вы можете распаковать архив с дистрибутивом и в другую папку или создать подпапку. Нет разницы, каким архиватором пользоваться. Ниже приведен пример для unzip:Astra LinuxРЕД ОС# Если на машину не установлен unzip, скачиваем его:sudo apt-get install unzipexport UNZIP_DISABLE_ZIPBOMB_DETECTION=trueunzip -o <имя_архива> -
Если при создании пользователя вы следовали инструкциям из Шага 1, то вам не нужно создавать директорию `/home/deployer', она уже создана.
mkdir -p /home/deployercd /home/deployer -
Распакуйте основной архив deployer.tar:
tar -xf deployer.tar -
Создайте директорию для статики и распакуйте архив:
tar -xf static.tar.gz -
Подготовьте Docker-репозиторий
cp registry/mail/dockerRepo.tar source/ -
Скопируйте файлы md5:
cp registry/mail/dockerRepo.md5 source/
InfraKit входит в состав дистрибутива. Отдельно скачивать его не нужно. После распаковки дистрибутива на сервере, где будет запускаться установщик, файлы InfraKit расположены по следующим путям:
- Запускаемый файл:
/home/deployer/configs/infrakit/infrakit-bin - Файл конфигурации:
/home/deployer/configs/infrakit/project-spec.yaml
Чтобы запустить проверку:
-
Откройте файл
/home/deployer/configs/infrakit/project-spec.yamlи настройте параметры подключения к серверам в секцииhostsв простом или расширенном формате. Подробнее смотрите в разделе Форматы описания хостов. -
Выполните команду на сервере с распакованным дистрибутивом, заменив <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_адрес_сервера> -
После завершения проверок отчет выводится в консоль. В нем указан статус каждой проверки и описание ошибок при их возникновении.
InfraKit проводит следующие проверки:
Название проверки | Что проверяется |
|---|---|
Проверка ОС | Дистрибутив, версия ядра и параметры ядра |
Проверка CPU | Архитектура, количество ядер, частота, наличие обязательных инструкций |
Проверка памяти | Общий объем и характеристики оперативной памяти |
Проверка гипертрейдинга | Состояние Hyper-Threading на процессоре |
Проверка виртуализации | Тип виртуализации (KVM, VMware и др.) |
Проверка SSH доступа | Возможность входа по SSH-ключу |
Проверка sudo без пароля | Возможность выполнения команд sudo без ввода пароля |
Проверка SELinux | Статус SELinux (включен/выключен) |
Проверка места на диске | Размеры и параметры файловых систем |
Проверка IOPS | Производительность дисковой подсистемы |
Проверка портов | Доступность и состояние обязательных портов |
Проверка DNS | DNS-серверы и записи |
Проверка tuned | Активный профиль tuned |
Проверка swap | Наличие и состояние swap |
Дополнительная информация о работе с InfraKit и расшифровке его отчетов представлена в разделе Проверки инфраструктуры.
Для корректной работы установщика и почтовой системы в настройках SSH на всех машинах должен быть разрешен TCP Forwarding.
Чтобы изменить настройку TCP Forwarding, нужно в файле /etc/ssh/sshd_config установить следующее значение:
AllowTcpForwarding yes
Установщик 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
-
Перейдите в веб-интерфейс установщика, в адресной строке браузера укажите адрес:
http://server-ip-address:8888. Если перейти по этому адресу не удается, убедитесь, что firewall был отключен. -
На стартовой странице нажмите на кнопку Установить.
-
Введите лицензионный ключ или укажите путь к файлу лицензии .lic.
-
Нажмите кнопку Сохранить.
-
Нажмите на кнопку Далее.
Информацию о том, как обновить лицензионный ключ или проверить сроки действия лицензий по продуктам VK WorkSpace, вы сможете найти в разделе с дополнительной документаци.
- Включите флаги Диск VK WorkSpace.
- Нажмите на кнопку Далее.
- Включите нужные вам компоненты в разделе Администрирование.
Продукт | Описание |
|---|---|
Аутентификация 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 |
-
Включите продукты VK Kubernetes и Логирование. Логирование позволяет сохранять историю логов пода, но потребуется больше дискового пространства.

-
Нажмите на кнопку Далее.
-
Включите нужные вам компоненты в разделе Диск.
Продукт | Описание |
|---|---|
Система миграции Диска VK WorkSpace из внешних сервисов | Beta. После включения опции появится возможность мигрировать в VK WorkSpace файлы из Microsoft OneDrive, Google Drive, NextCloud |
Система проверки файлов Диска через DLP | Beta. Настройки дополнительной проверки файлов Диска с помощью внешней DLP-системы для повышения уровня безопасности |
Интеграция с антивирусом по протоколу ICAP | Дает возможность интегрировать сторонние антивирусные системы с VK WorkSpace |
<info>Есть компоненты, настройка которых производится в административной панели (`biz.<почтовый домен>`), но включить их нужно при установке. Например, **Система расширенных транспортных правил** и **Система миграции Диска VK WorkSpace из внешних сервисов**.</info>
7. Нажмите на кнопку Далее.
Переключитесь на вкладку Ручная настройка. Ниже описано, как добавить одну из worker-машин и как добавить Control Plane ноду.
Чтобы добавить worker-ноду:
-
Нажмите на кнопку Добавить.
-
Заполните поля:
-
IP-адрес — адрес машины, на которую производится установка.
-
Имя сервера — укажите имя сервера (гипервизора) или оставьте поле пустым. В случае если вы оставите поле незаполненным, имя гипервизора будет взято из
hostname -sи добавится автоматически. В документации будет использовано имя hypervisor1. -
Имя пользователя — укажите имя того пользователя, под которым запущен установщик. В рассматриваемом примере это пользователь deployer.
-
-
Заполните поле Метки:
-
Напротив server, в выпадающем меню выберите опцию worker.
-
Напротив DC укажите любое название дата-центра.
-
Напротив project выберите опцию mail.
-
Для машины отведенной под мониторинг напротив type выберите: monitoring и registry. Для всех остальных машин укажите одну опцию type соответствующую роли машины: storage, database, frontend.
-
-
Оставьте чекбокс Сервер во внешней (dmz) зоне пустым.
-
После заполнения полей нажмите на кнопку Добавить сервер — гипервизор отобразится в веб-интерфейсе установщика.
-
Аналогичным образом добавьте еще 6 гипервизоров:
- 2 — под фронты,
- 1 — под базы данных,
- 3 — под хранилища.
-
Добавьте ноду Control Plane. Ее рекомендуется устанавливать на отдельную виртуальную машину. Но она может быть установлена на гипервизор отведенный под базы данных.
-
Если нода Control Plane будет установлена на ВМ под базы данных, то при добавлении гипервизора, в поле Метки, напротив server укажите опцию control-plane.

-
Нажмите Далее внизу страницы.
В открывшемся окне нажмите Запустить проверки. Будут выполнены следующие проверки:
- Проверка ОС, дистрибутива и параметры ядра.
- Проверка архитектуры CPU, количества ядер и обязательных фич.
- Проверка общего объема и характеристик оперативной памяти.
- Проверка размеров и параметров файловых систем.
- Проверка производительности дисковой подсистемы по IOPS.
- Проверка доступности и состояния обязательных портов.
- Проверка DNS-серверов и записей.
- Проверка активного tuned профиля.
- Проверка наличия и состояния swap.
После успешного выполнения всех проверок нажмите Далее.
Чтобы настроить Kubernetes кластер перейдите в раздел Настройки → Kubernetes. Или по адресу http://server-ip-address:8888/config/main/k8s/commonTab, если оно не откроется автоматически.
В разделе Общие настройки укажите:
- Режим маршрутизации: VXLAN.
- Namespace по умолчанию — пространство имен, в котором будут работать сервисы Диска.
- Домен в кластере K8s.
- Использовать WG — установщик самостоятельно установит и настроит WireGuard на серверах на шаге
enable_hybrid_bgp. - Tunnel CIDR — диапазон адресов для интерфейсов WireGuard или
tunl0. - Версия Kubernetes.

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

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

После сохранения доменных имен появятся ошибки. Они пропадут после добавления SSL-сертификатов на следующем шаге.
-
Нажмите на кнопку Добавить сертификат под заголовком SSL-сертификаты.
-
В открывшейся форме введите сертификат и ключ. Их необходимо указать полностью, включая:
-----BEGIN CERTIFICATE----- и -----END CERTIFICATE-----и-----BEGIN PRIVATE KEY----- и -----END PRIVATE KEY-----. -
Кликните по кнопке Сохранить.
Есть второй вариант:
- Нажмите на кнопку Выбрать файл.
- Укажите путь к файлу с сертификатом .crt.
- Укажите путь к файлу с ключом .key.
- Кликните по кнопке Сохранить.
Если все верно, в интерфейсе не будет отображаться ошибок и красной подсветки. Нажмите на зеленую кнопку Далее.
Чтобы установить гипервизоры и Kubernetes кластер, запустите автоматическую установку.
На изображении ниже приведен пример того, как выглядит веб-интерфейс установщика после завершения установки всех гипервизоров.

Если на гипервизорах есть шаги, помеченные серым или желтым цветом, то запустите автоматическую установку еще раз.
В релизе 26.3 секреты из main.yaml хранятся в vault — специализированном хранилище секретов от HashiCorp. Это хранилище типа «ключ-значение», данные в котором хранятся в зашифрованном виде. Для отказоустойчивости несколько инстансов vault объединяются в кластер по алгоритму распределенного консенсуса (RAFT).
Для начала работы с хранилищем его необходимо инициализировать: при инициализации указывается, сколько ключей для разблокировки (unseal keys) сгенерировать и сколько из них требовать для распечатки. Инициализация возвращает токен суперпользователя (rootToken) и ключи для распечатки (unseal keys), которые необходимы для дальнейшей работы с хранилищем.
Каждый перезапуск vault приводит его в состояние «запечатан» (sealed), и его надо распечатать (unseal).
Пример работы с ключами
Есть 10 доверенных сотрудников, при создании хранилища мы создаем 10 ключей и раздаем каждому сотруднику по одному ключу. Чтобы распечатать хранилище, будем требовать 3 ключа. Поэтому, когда нужно будет распечатать vault, нам потребуется 3 сотрудника, чтобы его распечатать.
Чтобы добавить и инициализировать хранилище:
-
Нажмите кнопку Добавить внизу главной страницы веб-интерфейса установщика.
-
Выберите опцию Хранилище секретов.
-
Выберите контейнер vault с помощью чекбокса.
-
В списке гипервизоров отметьте гипервизоры, на которых будут размещены инстансы vault.
-
Нажмите на кнопку Добавить.
-
Запустите автоматическую установку — после ее завершения инстансы vault будут запущены.
-
Перейдите в раздел Обслуживание -> Хранилище секретов или по адресу
http://server-ip-address:8888/service/vault. -
Если vault устанавливается впервые, нажмите кнопку Инициализировать Хранилище и задайте параметры инициализации:
- Всего ключей для распечатывания — сколько ключей сгенерировать.
- Минимум ключей для распечатывания — сколько ключей потребуется ввести для распечатки (unseal) хранилища. Значение не должно превышать общее количество ключей.
- Сохранить ключи в Deployer — включите опцию, чтобы установщик сохранил ключи и мог распечатывать хранилище в автоматическом режиме.
-
После инициализации в веб-интерфейсе отобразятся ключи для распечатки и токен суперпользователя. Сохраните эту информацию.
При инициализации установщик автоматически распечатает хранилище. Если вы обновляете инсталляцию с версии 26.2.3, миграция старых секретов из main.yaml произойдет автоматически.
Распечатка хранилища
Если при инициализации вы включили опцию Сохранить ключи в Deployer, установщик будет автоматически распечатывать хранилище при каждом своем перезапуске и запуске задачи up_container. В этом случае ключи для распечатывания сохраняются на машине с установщиком в файле /home/deployer/workmail/.secStoreKeys.yaml. Если установщику не удалось распечатать хранилище, установка будет заблокирована.
Чтобы распечатать хранилище вручную:
- Перейдите на страницу
http://server-ip-address:8888/service/vault. - В блоке Распаковка Хранилища секретов введите ключи, полученные при инициализации.
- Нажмите кнопку Распаковать (unseal).
В кластерной установке инициализация выполняется только на одном инстансе vault — остальные инстансы подключатся к нему и инициализируются самостоятельно. Распечатка выполняется на каждом инстансе.
Проверка состояния хранилища
На странице http://server-ip-address:8888/service/vault отображается состояние каждого инстанса vault: запущен ли он, инициализирован, запечатан или распечатан, готов ли к работе. Также отображаются «Количество ключей для распечатывания», «Количество необходимых секретов» и «Количество доступных секретов» — последние два значения должны совпадать.
Инстанс готов к работе, когда он запущен, инициализирован и распечатан, а количество доступных секретов совпадает с количеством необходимых.
Установщик автоматически проверяет актуальность секретов при каждом перезапуске и распечатке хранилища и при необходимости мигрирует или добавляет их.
Кликните по значку
и перейдите в раздел Описание сервисов, чтобы посмотреть развернутую информацию о назначении ролей, их дублируемости и зависимостях. В этом же выпадающем меню вы найдете дополнительную документацию, сможете включить или выключить продукты (внутри раздела Продукты) и обновить лицензионный ключ.
По завершении установки всех гипервизоров можно приступать к распределению и генерации подов.
В нижней части экрана выберите Добавить → Несколько подов.
Откроется окно выбора ролей.

При распределении ролей нужно соблюдать такой порядок:
- Хранилища + raft
- xtaz
- Базы данных
- Мониторинг
- Почтовый транспорт
- API
- Все, что осталось (опционально)
Для выбора ролей используйте поле Теги в качестве фильтра.
Первыми должны быть выбраны роли для хранилищ:
-
В колонке Тег нажмите на значок
и в выпадающем меню выберите Хранилище. -
В колонке Установлено нажмите на значок
и в строке Не более установите значение 0. -
В колонке Тип нажмите на значок
и в выпадающем меню выберите StatefulSet. -
Отметьте все доступные для установки роли с помощью чекбокса в таблице.

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

-
Нажмите на кнопку Добавить. Всплывающее окно, в котором выполнялись предыдущие действия, закроется.
-
Аналогично добавьте роли с типом Deployment. В поле Кластер K8s выберите кластер для сервисов Диска. Название кластера указывалось на Шаге 5.
На гипервизоры-хранилища необходимо добавить кластер raft.
- В колонке Тег нажмите на значок
и в выпадающем меню выберите raft. - В колонке Установлено нажмите на значок
и в строке Не более установите значение 0. Если пропустить этот фильтр, кластер не соберется. - Отметьте все доступные для установки роли с помощью чекбокса в таблице.
- Ниже в списке гипервизоров отметьте те, которые были отведены под хранилища.
- Нажмите на кнопку Добавить. Всплывающее окно, в котором выполнялись предыдущие действия, закроется.
На каждом из гипервизоров-хранилищ нужно дополнительно сгенерировать еще по одному контейнеру xtaz.
-
В колонке Роль нажмите на значок
и введите xtaz. -
Очистите значение фильтра в колонке Установлено.
-
Выберите контейнер xtaz с помощью чекбоксов.
-
В списке гипервизоров отметьте те, которые были отведены под хранилища.
-
Нажмите на кнопку Добавить.

Следующий шаг — распределение ролей для баз данных.
- В колонке Тег нажмите на значок
и в выпадающем меню выберите База данных. - В колонке Установлено нажмите на значок
и в строке Не более установите значение 0. - В колонке Тип нажмите на значок
и в выпадающем меню выберите StatefulSet. - Отметьте Все доступные для установки роли.
- Ниже выберите гипервизоры, отведенные под базы данных.
- Нажмите на кнопку Добавить.
- Аналогично добавьте роли с типом Deployment. В поле Кластер K8s выберите кластер для сервисов Диска. Название кластера указывалось на Шаге 5.
Чтобы добавить роли для мониторинга, повторно откройте окно выбора ролей.
- В колонке Тег нажмите на значок
и в выпадающем меню выберите Мониторинг. - В колонке Установлено нажмите на значок
и в строке Не более установите значение 0. - Отметьте Все доступные для установки роли.
- Выберите гипервизор-мониторинг.
- Нажмите на кнопку Добавить.
- Аналогично добавьте роли с типом Deployment. В поле Кластер K8s выберите кластер для сервисов Диска. Название кластера указывалось на Шаге 5.
Далее нужно распределить роли для почтового транспорта. Перейдите в окно выбора ролей, нажав Добавить → Несколько подов.
- В колонке Тег нажмите на значок
и в выпадающем меню выберите Почтовый транспорт. - В колонке Установлено нажмите на значок
и в строке Не более установите значение 0. - Отметьте Все доступные для установки роли.
- Выберите гипервизоры, отведенные под фронты.
- Нажмите на кнопку Добавить.
- Аналогично добавьте роли с типом Deployment. В поле Кластер K8s выберите кластер для сервисов Диска. Название кластера указывалось на Шаге 5.
Завершающий этап — распределить роли для API.
- В колонке Тег нажмите на значок
и в выпадающем меню выберите API. - В колонке Установлено нажмите на значок
и в строке Не более установите значение 0. - Отметьте Все доступные для установки роли.
- Выберите гипервизоры, отведенные под фронты.
- Нажмите на кнопку Добавить.
- Аналогично добавьте роли с типом Deployment. В поле Кластер K8s выберите кластер для сервисов Диска. Название кластера указывалось на Шаге 5.
- Откройте окно добавления выбора ролей, нажав на Добавить → Несколько подов.
- В колонке Установлено нажмите на значок
и в строке Не более установите значение 0. - Список ролей, доступных для добавления, должен быть пустым. Если это не так, распределите оставшиеся роли по гипевизорам в соответствии с тегами.
После того как все контейнеры сгенерированы, нажмите на зеленую кнопку Далее в правом верхнем углу.
В разделе формируются дисковые пары для гипервизоров-хранилищ. Разделение на дисковые пары происходит автоматически, если вы не подключали дополнительные диски. В таком случае можно переходить в настройке Mescalito, описанной в следующем шаге.
Под дисковой парой подразумеваются связанные разделы дисков, которые размещены на двух разных гипервизорах. Для повышения отказоустойчивости на дисковую пару записываются одни и те же данные.
Ниже описана процедура ручного распределения дисковых пар. Дисковые пары нужно распределять вручную, если вы подключали дополнителные диски.
Минимальная отказоустойчивая конфигурация состоит из трех машин, на каждой из которых по 2 дисковых раздела:
- Диск хранилища 1 разделен на 2 части.
- Диск хранилища 2 разделен на 2 части.
- Диск хранилища 3 разделен на 2 части.
Всего 6 разделов дисков (2 на одном гипервизоре, 2 — на втором, еще 2 — на третьем).
При такой конфигурации:
- Всегда есть пара на запись.
- Остальные пары доступны для чтения.
При сборке хранилищ дисковые пары объединяются в «логические треугольники». Объединение происходит по принципу: 1-2, 2-3, 3-1.
В списке слева доступные хранилища будут отмечены восклицательными знаками. Нужно перейти на вкладку каждого хранилища и сформировать дисковые пары.

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

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

-
Обработчики писем (mescalito) — специальные процессы внутри контейнеров stm. Задача обработчика — собрать письмо из частей, находящихся в разных хранилищах.
-
Хранилища индексов (tarantool xtaz) — хранилища «горячих» данных почтовых ящиков.
Существует 2 типа ящиков:
- Сервисный — admin@admin.qdit (администраторы Диска).
- Корпоративный — все остальные ящики системы, которые администрируются в
biz.<домен>.
Чтобы обеспечить отказоустойчивость для каждого кластера необходимо назначать по 2-3 обработчика, которые находятся на разных машинах или в разных дата-центрах.
Контейнеры stm устанавливаются на каждый гипервизор, поэтому количество обработчиков равно количеству машин, отведенных под хранилища. При необходимости могут быть сгенерированы дополнительные контейнеры stm вручную.
Раздел актуален для ситуаций, когда были подключены дополнительные диски.
Необходимый набор томов для контейнеров хранилища выдается в виде набора записей для /etc/fstab.
Отредактировать fstab и смонтировать разделы нужно самостоятельно в консоли. Монтировать рекомендуется по UUID.
Ниже для примера приведен скриншот с одного из наших тестовых стендов.

Пример команд для монтирования разделов:
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
Настройка в этом разделе актуальна только для очень крупных инсталляций. В большинстве случаев достаточно настроек по умолчанию, и можно перейти к следующему шагу с помощью кнопки Далее.
Чтобы добавить более одного кластера, потребуется сгенерировать дополнительные контейнеры.

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

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

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

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

Административные домены — с помощью кнопки Добавить по одному введите домены (до знака @), которым нужно выдать максимальные права.
Количество дней перед удалением пользователя — количество дней, через которое пользователь будет удален из Диска. Изменение настройки по умолчанию актуально при одновременном использовании Диска c Active directory. По умолчанию выставлен срок 5 дней, то есть пользователь будет удален из Диска через 5 дней после его удаления из AD.
Размер облака пользователя по умолчанию (Мб) — при необходимости ограничьте максимальный размер облака для каждого пользователя.
Не проверять актуальность включенного функционала (фич) — при включенном флаге установщик будет пропускать шаг bizf → addBizFeatures.
Общие переменные окружения для всех сервисов панели администрирования — с помощью кнопки Добавить вы можете ввести имя и значение переменных, которые применятся к ролям bizf, biz-celery-worker-* и biz-celery-beat. Вам не нужно будет каждый раз отдельно для всех ролей прописывать переменные, достаточно добавить их в общие переменные окружения.
В разделе настраиваются служебные почтовые рассылки для внутренних пользователей. Чтобы перейти к настройкам, нажмите на кнопку редактирования. Есть возможность создать рассылки для VK WorkDisk, административной панели и уведомлений об отзыве письма.

- Введите email и имя отправителя.
- Введите адрес и порт сервера рассылки.
- Сохраните изменения.
- Перейдите к списку ролей и запустите автоматическую установку, чтобы применить настройки.
Дальнейшая настройка транспортных правил производится в административной панели по завершении установки.
Чтобы изменить время хранения логов, кликните по кнопке редактирования.

Время хранения событий по пользователям (в секундах) — вы можете установить время хранения логов. При установленном значении 0 срок хранения логов не будет ограничен.
Включить статистику по IP — при включенном флаге появится окно для изменения срока хранения логов по IP.
Настройки мониторинга актуальны для случаев, когда необходимо переключиться с внутреннего мониторинга Диска на внешние системы мониторинга (Graphite/Prometheus).
Чтобы включить внешнюю систему мониторинга:
-
Нажмите на
и перейдите в раздел Продукты. -
Включите флаг Система сбора и отправки метрик. При этом флаг Система мониторинга будет автоматически отключен.
-
Сохраните изменения и вернитесь к списку ролей.
-
Внизу страницы нажмите на кнопку Сгенерировать автоматически, чтобы установщик сформировал новые роли.
-
Чтобы предотвратить возможные проблемы, перейдите в консоль и перезапустите установщик с помощью команды:
sudo systemctl restart deployer -
После перезапуска в списке ролей отобразятся роли, которые нужно удалить. Если в интерфейсе не подсветились роли для удаления, перезагрузите страницу.
-
Удаление может занять некоторое время. Когда все неактуальные роли будут удалены, запустите автоматическую установку.
-
Далее перейдите в раздел Настройки компонентов → Мониторинг. Введите необходимые данные для системы мониторинга, которую вы используете.

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

Список IP прокси-серверов — введите в поле список IP-адресов, с которых Диск будет принимать заголовки с оригинальными IP клиента и оригинальным протоколом подключения.
HTTP-заголовок прокси с оригинальным IP клиента — добавьте в поле заголовок прокси, который передает реальный IP-адрес клиента, иначе сервис будет работать некорректно.
HTTP-заголовок прокси с оригинальным протоколом подключения клиента — для корректной работы сервисов введите заголовок оригинального протокола подключения.
Шаг выполняется, только если при выборе продуктов в разделе Администрирование был включен продукт Внешний 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 как хранилище для Диска.
В блоке будут отображаться интеграции, которые вы включили на этапе выбора продуктов и опций (настройки интеграций могут также находиться в верхнем меню).
Интеграция с Keycloak для SSO-авторизации — в документе содержится инструкция по настройке интеграции с сервисом SSO-авторизации.
Настроить дублирование действий пользователей во внешние хранилища
Чтобы получить возможность просматривать статистику использования VK WorkDisk в административной панели (biz.<домен>), в списке продуктов необходимо включить опцию Система BI-аналитики и Kafka внутри инсталяции и нажать на кнопку Сохранить.
Чтобы подключиться к внешнему серверу Kafka, перейдите в раздел Интеграции → Настройки cистемы BI-аналитики и заполните соответствующие поля.

Сохраните изменения.
Перейдите к списку ролей, кликнув по логотипу в левом верхнем углу веб-интерфейса. Внизу страницы необходимо создать дополнительные роли.
- Нажмите на кнопку Добавить → Несколько контейнеров.
- В поле Установлено не более: введите значение 0. Появятся контейнеры для распредления.
- Добавьте контейнеры для Clickhouse на гипервизоры для хранилищ.
- Если вы используете Kafka внутри инсталяции, распределите контейнеры с Kafka на гипервизоры для баз данных тем же способом (с помощью кнопки Добавить).
- По окончании генерации контейнеров запустите автоматическую установку в общей строке состояния.
В разделе производится настройка кастомных переменных Панели администратора.
Чтобы добавить кастомную переменную:
-
Нажмите на иконку
и кнопку Добавить. -
В выпадающем меню выберите название переменной.
-
Введите значение переменной. Значение переменной должно быть введено корректно, иначе установщик не позволит создать переменную.
-
Нажмите на кнопку Сохранить.
-
Нажмите на кнопку Далее для перехода к следующему шагу.
-
В веб-интерфейсе установщика Панели администратора кликните по иконке
рядом c общей строкой состояния в верхней части экрана. -
Подтвердите запуск автоматической установки, нажав на кнопку Запустить.

В зависимости от этапа установки будет меняться цвет индикатора:
- Серый — в ожидании начала генерации.
- Синий — в процессе генерации.
- Желтый — шаг будет повторен (автоматически).
- Красный — ошибка.
-
Ожидайте завершения установки. Пока процесс идет, рядом со строкой состояния будет отображаться красная кнопка Stop.
Если в процессе установки и настройки системы происходят изменения конфигурации, некоторые задачи могут потребовать повторного выполнения.
Для повторного запуска необходимо нажать на иконку
в общей строке состояния в верхней части экрана или рядом с названием конкретного контейнера.
Когда установка Панели администратора будет завершена, соответствующий статус отобразится в строке состояния.
-
Нажмите на кнопку Далее в правом верхнем углу.

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

Домен считается подтвержденным после добавления в Панель администратора.
В адресную строку скопируйте адрес Панели администратора и введите данные:
- Имя пользователя — admin@admin.qdit.
- Пароль находится в файле — bizOwner.pass, для его просмотра введите в консоли команду:
cat <путь до директории с установщиком>/bizOwner.pass.
Если логин и пароль были введены правильно, вы попадете в Панель администратора.
Если вы планируете использовать несколько доменов, добавьте их с помощью кнопки Добавить домен:
-
Перезапуск установщика:
sudo systemctl restart deployer -
Логи установщика:
sudo journalctl -fu deployer -
Список запущенных подов:
kubectl get pods -n <namespace>Добавьте флаг
-o wide, чтобы увидеть, на каких нодах размещены поды. -
Список подов, которые не перешли в состояние
Running:kubectl get pods -n <namespace> --field-selector=status.phase!=Running -
Состояние нод кластера:
kubectl get nodes -o wide -
Логи конкретного пода:
kubectl logs -n <namespace> <имя_пода>Полезные флаги:
-f— следить за логом в реальном времени.--tail=100— вывести только последние 100 строк.--previous— логи предыдущего запуска. Пригодится, если под успел перезапуститься и логи упавшего экземпляра уже не отдаются.-c <имя_контейнера>— выбрать контейнер, если в поде их несколько.
-
Подробная информация о поде — события, причина перезапуска, ограничения по ресурсам:
kubectl describe pod -n <namespace> <имя_пода> -
События в пространстве имен в порядке возникновения:
kubectl get events -n <namespace> --sort-by=.lastTimestamp -
Консоль внутри пода:
kubectl exec -it -n <namespace> <имя_пода> -- bash -
Перезапуск пода:
kubectl delete pod -n <namespace> <имя_пода> -
Перезапуск всех подов сервиса:
kubectl rollout restart -n <namespace> deployment/<имя_сервиса>kubectl rollout restart -n <namespace> statefulset/<имя_сервиса>
Технический писатель: Груздев Никита