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

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

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

Экспорт#

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

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

Импорт#

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

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

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

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

cd ~/nscli
./configmgr.sh export \
  --namespace gs-k8s \
  --group 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"