VK WorkSpace On-Premise logo
Помощь
Обновлена 12 ноября 2026 г. в 12:45

Резервное копирование и восстановление конфигурации

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

В документе описано, где хранится конфигурация Мессенджера VK WorkSpace, развернутого через установщик, и как ее резервировать и восстанавливать.

Отдельного механизма хранения конфигурации у Мессенджера нет: она хранится в том же окружении, что и конфигурация установщика, а во время работы сервисов — в кластере etcd.

Хранение конфигурации

Конфигурация Мессенджера хранится в следующих местах.

Место
Путь или имя
Что хранится
Файлы конфигурации установщика
/home/deployer/main.yaml, /home/deployer/computes.yaml и другие файлы в /home/deployer/
Общая конфигурация установки (как у Почты)
Конфигурация проекта Мессенджера
/home/deployer/projects/vkteams/ (в том числе project.yaml)
Параметры проекта vkteams в установщике
Helm values сервисов Мессенджера
/home/deployer/projects/vkteams/helm-releases/<релиз>/custom_values.yaml
Параметры развертывания сервисов, например myteam-config-json, stroma, swapper
Секреты Мессенджера
/home/deployer/secrets/vkteams/secrets.yaml
Пароли, токены и ключи сервисов Мессенджера
Лицензия и сертификаты
/home/deployer/license_basic, /home/deployer/certificate
Лицензия и сертификаты установки
Настройки продукта в интерфейсе установщика
Проекты → vkteams
Настройки продукта, включая Prism Tokens. Применяются автоустановкой, Prism Tokens — через static-prismtokens-init
Кластер etcd
Кластер etcd в namespace im-etcd (поды etcd-0, etcd-1, etcd-2), ключи /vars/services/<сервис>/<installation>/…
Конфигурация сервисов Мессенджера во время работы, например токен и подсети API управления godmod
ConfigMap и Secret Kubernetes
Namespace vkteams, например ConfigMap go-myteam-admin
Конфигурация сервисов в Kubernetes. Генерируется установщиком из файлов выше

Резервное копирование и восстановление конфигурации

Файлы установщика

Файлы установщика, в том числе Helm values и секреты Мессенджера, можно сохранить механизмом слотов на странице Обслуживание → Бэкап (Восстановление системы). Механизм описан в разделах Резервное копирование и восстановление конфигурации Почты и Как восстановить систему через установщик.

Если каталоги Мессенджера не входят в набор файлов слота, сохраните их вручную.

Бэкап

  1. Подключитесь к машине с установщиком.

  2. Создайте архив с файлами конфигурации:

    tar -czf /root/vkteams-config-$(date +%Y%m%d-%H%M%S).tar.gz \  -C /home/deployer \  main.yaml computes.yaml projects/vkteams secrets/vkteams license_basic certificate
  3. Скопируйте архив в отдельное хранилище, вне машины с установщиком.

Восстановление

  1. Скопируйте архив на машину с установщиком.

  2. Распакуйте архив в /home/deployer:

    tar -xzf /root/vkteams-config-<дата>.tar.gz -C /home/deployer
  3. Перезапустите установщик и запустите автоустановку проекта vkteams, чтобы применить конфигурацию.

ConfigMap и Secret в Kubernetes

ConfigMap и Secret в namespace vkteams генерируются установщиком из файлов, перечисленных выше. Основной способ их восстановления — вернуть файлы установщика из резервной копии и запустить автоустановку. Дополнительно можно сохранить их текущее состояние.

Бэкап

  1. Выгрузите ConfigMap и Secret namespace vkteams в файл:

    kubectl -n vkteams get configmap,secret -o yaml > /root/vkteams-k8s-config-$(date +%Y%m%d-%H%M%S).yaml
  2. Скопируйте файл в отдельное хранилище.

Восстановление

  1. Примените сохраненный файл:

    kubectl -n vkteams apply -f /root/vkteams-k8s-config-<дата>.yaml
  2. Перезапустите поды сервисов, конфигурация которых изменилась, чтобы они перечитали ConfigMap и Secret.

Кластер etcd

В кластере etcd в namespace im-etcd хранится конфигурация сервисов Мессенджера во время работы. Проверка результата описана в разделе Восстановление кластера etcd из снапшота.

Бэкап

  1. Создайте снапшот с любой из нод кластера:

    kubectl -n im-etcd exec -it etcd-0 -c etcd -- etcdctl snapshot save /bitnami/etcd/data/etcd.db
  2. Скопируйте снапшот на хост:

    kubectl cp im-etcd/etcd-0:/bitnami/etcd/data/etcd.db -c etcd /mnt/data/etcd-backups/etcd.db

Восстановление

  1. Определите ноды Kubernetes-кластера, на которых запущены поды etcd, и пути, по которым смонтированы их PVC:

    kubectl -n im-etcd get po -owidepvs=$(kubectl get pv | grep etcd | awk '{print $1}') && for pv in $pvs; do kubectl get -oyaml pv $pv | grep -E "k3s/pvc|mk-cluster" ; done
  2. Скопируйте снапшот на каждую из этих нод.

  3. На каждой ноде восстановите снапшот в новый каталог:

    etcdctl snapshot restore <PATH_TO_SNAPSHOT> --name <NAME_OF_ETCD_NODE> --initial-cluster etcd-0=http://etcd-0.etcd-headless.im-etcd.svc.cluster.local:2380,etcd-1=http://etcd-1.etcd-headless.im-etcd.svc.cluster.local:2380,etcd-2=http://etcd-2.etcd-headless.im-etcd.svc.cluster.local:2380 --initial-cluster-token etcd-cluster-k8s --initial-advertise-peer-urls http://<NAME_OF_ETCD_NODE>.etcd-headless.im-etcd.svc.cluster.local:2380 --data-dir=<PVC_PATH>/data_restore

    Здесь:

    • PATH_TO_SNAPSHOT — путь к снапшоту на ноде Kubernetes-кластера;
    • NAME_OF_ETCD_NODE — имя etcd-ноды (etcd-0, etcd-1 или etcd-2), для которой выполняется восстановление;
    • PVC_PATH — путь, по которому на ноде смонтирован PVC этой etcd-ноды.
  4. Уменьшите число реплик кластера etcd до нуля:

    kubectl -n im-etcd scale sts etcd --replicas=0
  5. На каждой ноде замените каталог с данными восстановленным:

    cd <PVC_PATH>chown -R browser data_restoremv data data_oldmv data_restore data
  6. Увеличьте число реплик кластера etcd до трех и дождитесь, когда кластер соберется:

    kubectl -n im-etcd scale sts etcd --replicas=3

STDB

Резервное копирование и восстановление данных STDB описаны в разделе Бэкап и восстановление STDB.

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