Миграция кластеров
Специализированная консольная утилита предназначена для выполнения следующих задач:
-
Миграция: Перенос кластеров с версии Nova Universe v2.1.x на v3.1.x, а также между различными инсталляциями Nova Universe v3.1.x.
-
Синхронизация: Отображение в интерфейсе Cluster Manager тех кластеров, которые были созданы вручную через nova-ctl в Nova Universe v3.1.x.
Перед началом работы убедитесь, что соблюдены следующие требования:
-
Перенос поддерживается только для инсталляций, развернутых в оффлайн-режиме.
-
Версия мигрируемого кластера должна быть 7.4.0 или выше.
-
Утилита миграции включена в состав Nova Universe, начиная с версии 3.1.0
-
Проверьте сетевые правила для целевой инсталляции Nova Universe v3.1.x
-
Выполните дополнительную настройку сетевых правил для АРМ (Автоматического Рабочего Места) пользователя.
Сетевые правила для АРМ пользователя при выполнении миграции:
Источник
Адресат
Тип трафика
Порт/Протокол
Описание
АРМ пользователя платформы
Nova Universe
Входящий
443/tcp
Nova-management-api
1. Как проходит процесс миграции
Процесс миграции автоматизирован и состоит из трех ключевых этапов:
-
Ручной сбор параметров кластеров: необходимо подготовить файлы для работы утилиты и разместить их в структурированном виде в директории import. Это позволяет утилите получить первичный доступ к инфраструктуре.
-
Экспорт данных: утилита подключается к исходным кластерам, собирает необходимые конфигурации и формирует файл данных
clusters.jsonв директорииimport. -
Импорт данных (Миграция): на основе полученного файла утилита создает задачи на миграцию в целевой среде Nova Universe.
|
После завершения процесса мигрированный кластер полностью переходит на использование ресурсов (артефактов) новой инсталляции Nova Universe v3.1.x. |
2. Инструкция по переносу кластера с помощью консольной утилиты
-
Скачайте консольную утилиту на локальную машину.
Перед запуском убедитесь, что с данной локальной машины имеется прямой сетевой доступ до всех мигрируемых кластеров.
-
Выберите файл, соответствующий вашей ОС:
ОС
Имя файла
Linux
nova-backup-amd64-linux-v1.0.0
Windows
nova-backup-amd64-win-v1.0.0
macOS
nova-backup-arm64-macos-v1.0.0
macOS
nova-backup-amd64-macos-v1.0.0
-
Выполните команду для скачивания утилиты:
$ wget https://repo.universe.mycompany.local/packages/universe/utils/nova-backup/nova-backup-amd64-linux-v1.0.0 -O nova-backupГде:
-
universe.mycompany.local- DNS домен установленного Nova Universe v3 -
nova-backup-amd64-linux-v1.0.0- название файла для нужной ОС
-
-
-
Сохраните данные по кластерам в директорию
import, которые необходимо мигрировать в новый Nova Universe. Структура директорииimportимеет вид:import/ clusters/ {cluster_name}/ // Произвольное имя или идентификатор кластера, который необходимо мигрировать. Для каждого мигрируемого кластера используйте отдельную директорию. cluster.json // Дополнительные данные о кластере kubeadmin.conf // Параметры для подключения к кластеру, полученные из nova-ctl при создании кластера. ssh.json // Опционально. Задает параметры подключения по SSH для узлов кластера. Если не указан, будут использованы данные из ssh/ssh.json ... ssh/ {Имя приватного ключа} // Приватный ключ без кодирования. Может быть несколько файлов, если для конкретных кластеров будут указаны уникальные данные SSH. ssh.json // Параметры SSH для подключения по умолчанию.Структура файлов:
-
cluster.json - файл, содержащий дополнительные данные о кластере: токены Starvault, учетные данные для подключения к кластеру, параметры для подключения к K2Cloud (если используется данный провайдер). Структура имеет следующий вид:
{ "vaultRootToken": "s.RqB1ccBoahllhe9NbvAZnVwe", // Корневой токен Starvault, содержится в файле starvault-tokens.txt, полученном при установке кластера "vaultUnsealToken":[ "NnvySyTB2E2kFtlPIlty8+hY7wstgEAn11CgHLpgRlKE", // Токены для расшифровки хранилища StarVault, содержатся в файле starvault-tokens.txt, полученном при установке кластера "PJBn7s2SCw5vhNNpqBwLnnNkJwZUlRm4MNkl5OKOeViB", "UmIVGouri4cklCKW18YVld+X42w0uQ76BxJ5q2BJ3zFe", "/bd/v829eCeyC+Uwtv/sGP5OOJkZ0uRPlM0g4ieHBCv8", "EjZDrB2EQcZhO+OFsSTB6TR57l563hlKj/tvbPF4pRHF" ], "clusterAdminCredentials": { // Данные учетной записи администратора кластера для авторизации, содержится в файле oauth-credentials.txt, полученном при // установке кластера "username": "kubeadmin", "password": "1NjTv2WH1@RcQ1@g" }, "k2CloudCredentials": { // Параметры для подключения к K2Cloud "awsRegion": "en-us", "awsAccessKeyId": "ID", "awsSecretAccessKey": "accesskey" } } -
kubeadmin.conf - файл, содержащий параметры для подключения к кластеру, полученные из nova-ctl при создании кластера из одноименного файла.
-
ssh.json - файл, в котором указаны параметры SSH для подключения:
-
в import/ssh/ssh.json - параметры SSH по умолчанию.
-
в import/clusters/{cluster_name}/ssh.json - опциональный файл для указания параметров подключения конкретно к указанному кластеру. Если файл не указан, будут использованы параметры из import/ssh/ssh.json. Структура имеет следующий вид:
{ "privateSshKey": "nova-key", // Имя файла приватного ключа. Файл с самим ключом должен лежать в папке import ssh с тем же именем. "privateSshKeyPassword": null, // Пароль приватного ключа. null - не задан "sshUser": "nova-user" // Имя пользователя для подключения по ssh }
-
-
-
Выполните команду в консоли на локальной машине:
nova-backup --basedomain universe.mycompany.local -d ./import --password password --username admin -v --debugГде:
-
--basedomain- домен Nova Universe, в который необходимо перенести кластер -
--password- пароль Cluster Manager (по умолчанию - password) -
--username- имя пользователя Cluster Manager (admin) -
-d- путь к папке, в которую были сохранены данные о кластерах (import/) -
-v- подробный режим вывода -
--debug- запуск миграции в режиме отладки
-
-
После успешного выполнения 1 этапа будет сформирован файл
cluster.jsonв корне директории import, который содержит всю информацию о мигрируемом кластере. Этот файл нужен для выполнения следующего этапа работы утилиты - непосредственной миграции кластера. -
После успешной миграции будет отображено:
Importing clusters db471c35-5810-4534-bf1b-eb8cef3e27f4 => task 1 https://cluster-manager.universe.mycompany.local/tasks/1 ac3dce39-e3b3-44a8-a2f4-607456916504 => task 2 https://cluster-manager.universe.mycompany.local/tasks/2Где:
-
db471c35-5810-4534-bf1b-eb8cef3e27f4- идентификатор мигрируемого кластера -
task 1- номер задачи в Cluster Manager, в рамках которого происходит миграция -
https://cluster-manager.universe.mycompany.local/tasks/1- HTTP URL для просмотра статуса задачи в Cluster Manager
-
-
Перейдите в веб-интерфейс Cluster Manager, чтобы отслеживать процесс миграции.
-
Успешное выполнение задачи означает завершение миграции кластера. Как только все кластеры в составе Universe будут перенесены, удалите исходный Universe.