Для улучшения работы сайта мы используем файлы cookies. Оставаясь на сайте, вы соглашаетесь с политикой обработки персональных данных.

Миграция кластеров

Специализированная консольная утилита предназначена для выполнения следующих задач:

  • Миграция: Перенос кластеров с версии 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. Как проходит процесс миграции

Процесс миграции автоматизирован и состоит из трех ключевых этапов:

  1. Ручной сбор параметров кластеров: необходимо подготовить файлы для работы утилиты и разместить их в структурированном виде в директории import. Это позволяет утилите получить первичный доступ к инфраструктуре.

  2. Экспорт данных: утилита подключается к исходным кластерам, собирает необходимые конфигурации и формирует файл данных clusters.json в директории import.

  3. Импорт данных (Миграция): на основе полученного файла утилита создает задачи на миграцию в целевой среде Nova Universe.

После завершения процесса мигрированный кластер полностью переходит на использование ресурсов (артефактов) новой инсталляции Nova Universe v3.1.x.

2. Инструкция по переносу кластера с помощью консольной утилиты

  1. Скачайте консольную утилиту на локальную машину.

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

    • Выберите файл, соответствующий вашей ОС:

      ОС

      Имя файла

      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 - название файла для нужной ОС

  2. Сохраните данные по кластерам в директорию 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
        }
  3. Выполните команду в консоли на локальной машине:

    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 - запуск миграции в режиме отладки

  4. После успешного выполнения 1 этапа будет сформирован файл cluster.json в корне директории import, который содержит всю информацию о мигрируемом кластере. Этот файл нужен для выполнения следующего этапа работы утилиты - непосредственной миграции кластера.

  5. После успешной миграции будет отображено:

    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

  6. Перейдите в веб-интерфейс Cluster Manager, чтобы отслеживать процесс миграции.

  7. Успешное выполнение задачи означает завершение миграции кластера. Как только все кластеры в составе Universe будут перенесены, удалите исходный Universe.