Перейти к основному содержанию
`Ctrl`+`K`

# Экспорт конфигурации. Восстановление кластера

Скрипт `configmgr.sh` в составе nscli предоставляет возможность экспорта и импорта конфигурации в yaml-файл на jump-хосте, что может быть полезно, если по какой-либо причине кластер потребовалось установить заново.

Такой файл содержит лишь значения, указанные пользователем при помощи nsctl, например, объемы вычислительных мощностей, настройки мониторинга и базы данных. Секреты, комплект приложений, постоянные тома не копируются, однако названия используемых секретов и постоянных томов экспортируются.

## Экспорт

Экспорт конфигурации осуществляется при помощи команды:

    ./configmgr.sh export
      --namespace NAMESPACE # пространство имен, в котором развернут GlobalServer
      --resgroup GROUP         # группа ресурсов, которую необходимо экспортировать
      --file FILE           # путь к файлу, в который будет записана конфигурация кластера

## Импорт

Импорт конфигурации осуществляется при помощи команды:

    ./configmgr.sh import
      --namespace NAMESPACE # пространство имен, в котором (будет) развернут GlobalServer
      --file FILE           # путь к YAML-файлу, из которого будет загружена конфигурация кластера
      --keep-appkit         # исключает комплект приложений из переносимых значений, если производится перезапись группы ресурсов (комплект остается тот, что был изначально на кластере)

## Пример восстановления кластера

Предположим, что у нас был кластер GlobalServer, развернутый в группе ресурсов `gs-cluster` пространства имен `gs-k8s`, который более недоступен. Однако, есть YAML-описания ресурсов Kubernetes (секреты, постоянные тома, сервисные пользователи и роли - все, что было создано на этапе установки), а также есть конфигурация сервера, заранее экспортированная при помощи команды:

    cd ~/nscli
    ./configmgr.sh export \
      --namespace gs-k8s \
      --resgroup gs-cluster \
      --file config.yaml

Тогда процесс восстановления на чистый K8s с подготовленного jump-хоста (следуйте инструкции по установке кластера до раздела «Установка утилиты Nscli» включительно) выглядит следующим образом:

1. Воссоздаем пространство имен при помощи команд:

       ./namespace.sh create_install_scripts
       chmod +x ~/nscli/workspace/install_scripts/gs-k8s/install.sh
       ~/nscli/workspace/install_scripts/gs-k8s/install.sh

   Подробнее читайте в разделе «Настройка рабочего пространства в kubernetes» инструкции по установке.

2. Если в NFS-хранилище не осталось комплекта приложений, то загружаем его в соответствии с «Подготовка комплекта приложений appkit».

3. Устанавливаем ресурсы K8s, например, при помощи команды:

       cd k8s-resources # директория с ресурсами k8s
       kubectl apply -f *

4. Импортируем конфигурацию:

       cd ~/nscli
       ./configmgr.sh import \
         --namespace gs-k8s \
         --file config.yaml

   Скрипт сообщит об успешном завершении:

       Конфигурация импортирована

5. Запускаем кластер:

       cd ~/nscli
       ./invoker.sh run --namespace gs-k8s --app nsctl --cmd "./resgroup.sh start_appkit --name gs-cluster"
       ./invoker.sh run --namespace gs-k8s --app nsctl --cmd "./resbook.sh enable_all --group gs-cluster"
       ./invoker.sh run --namespace gs-k8s --app nsctl --cmd "./resgroup.sh enable --name gs-cluster"