Создание шаблонов виртуальных машин

Что такое шаблон ВМ

Создание кластеров с провайдерами VMware vSphere, oVirt , OpenStack , Basis Dynamix , Yandex Cloud происходит с использованием образов виртуальных машин. В Платформе “Штурвал” они называются шаблонами провайдеров. Шаблон содержит в себе основную информацию, на основании которой провайдеры Штурвала будут разворачивать виртуальные машины в платформе виртуализации, а именно:

  • операционная система и её версия. Список поддерживаемых операционных систем в платформе “Штурвал” здесь;
  • ограничение по размеру диска (т.к. созданные виртуальные машины не могут быть меньшего объема диска, чем указано в исходной ВМ).

Шаблон не хранит информацию о ресурсах (CPU, RAM) исходной ВМ.

При необходимости вы можете создать несколько шаблонов ВМ на разных операционных системах. Шаблоны ВМ являются основой для InfraMachineTemplates, из которых создаются узлы в группах. На основе одного шаблона ВМ можно конфигурировать различные InfraMachineTemplates.

Шаблоны ВМ, добавленные в экземпляр провайдера, доступны на вкладке “InfraMachineTemplates” на странице просмотра конфигурации группы узлов кластера.

Как создать шаблон ВМ

Создание шаблона происходит в несколько этапов:

  • создание ВМ в платформе виртуализации;
  • создание шаблона ВМ с помощью утилиты stc;
  • отключение ВМ в платформе виртуализации;
  • загрузка образа ВМ в платформу виртуализации.

При создании ВМ из шаблона Штурвал будет самостоятельно готовить ВМ: устанавливать Kubernetes выбранной версии и необходимые конфигурации.

Обратите внимание!:

  • При подготовке шаблона ВМ необходимо учитывать требования к синхронизации времени.
  • На виртуальной машине, с которой формируется шаблон:
    • должен резолвиться хост с зеркалом по действующему FQDN;
    • отключен selinux (permissive или disabled);
    • недоступные репозитории должны быть отключены или удалены (например, родные репозитории дистрибутива);
    • в системе должны быть установлены пакеты iptables и gnupg.

Как выделить диск для ВМ

Рекомендуем использовать LVM диски и реализовать хранение в корневом разделе. При создании ВМ с увеличенным диском, увеличивается корневой раздел. Минимальный объем - 60 Гб. При необходимости вы можете вынести /var/log, выделите на него 20 Гб при этом:

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

Обратите внимание! Если вы используете НЕ LVM диски и за корневым разделом есть swap, то увеличение диска не будет работать.

Верхнеуровнево использование разделов помимо корневого в минимальной конфигурации следующее:

Раздел Директории Назначение Объем
/var/ /var/csi/rawfile/ Размещение локального хранилища (встроенное хранилище + пользовательские PV) 5 ГБ + пользовательские PV
/var/log Хранение логов 20 ГБ
/var/lib/kubelet/ Kubelet (emptydir) 10 ГБ
/var/lib/containerd/ Хранение образов контейнеров (containerd) 10 ГБ
/home Домашние каталоги пользователей 500 МБ
/boot Загрузочный раздел 1 ГБ
/ Корневой раздел (остальное пространство) 20 ГБ

Процесс создания ВМ

Создайте виртуальную машину для формирования шаблона.

Обратите внимание! Запуск STC необходимо выполнять на рабочей машине (не на хосте кластера) с ОС Linux. В случае использования зеркала, имя зеркала (registry) необходимо указывать так же, как указывали при развертывании платформы.

Запустите команду для скачивания бинарного файла:

Команда
wget URL -O stc

Где вместо URL подставьте соответствующую необходимой версии ссылку:

  • https://public.shturval.tech/stc-2.11.0

Проставьте флаг исполнения для загруженного файла. Для этого запустите на выполнение команду:

Команда
chmod +x ./stc

Запустите команду для создания шаблона stc template, в которой проставьте свои значения параметров.

Все доступные параметры команды создания шаблона
Параметр Обязательный Описание
--license да Лицензионный ключ для загрузки пакетов
--registry нет Адрес реестра образов и репозиториев пакетов. Значение по умолчанию – r.shturval.tech. Должен быть указан registry, который использован для инсталляции платформы Штурвал
--platform-version нет Версия платформы “Штурвал”. Соответствие версии Штурвала и Kubernetes здесь
--keep-cloud-init нет Оставить установленный cloud-init. Необходимо включать при создании шаблона провайдера Yandex Cloud. По умолчанию - false

Примеры создания шаблона:

1. Пример команды создания шаблона с использованием публичного репозитория Штурвал
./stc-2.10.0 template --license="ВВЕДИТЕ-ВАШУ-ЛИЦЕНЗИЮ"
2. Пример команды создания шаблона с использованием зеркала
./stc-2.10.0 template --license="ВВЕДИТЕ-ВАШУ-ЛИЦЕНЗИЮ" --registry="ВВЕДИТЕ-АДРЕС-ВАШЕГО-РЕДЖЕСТРИ"

В параметре --registry укажите реджестри, который был использован при инсталляции платформы Штурвал.

3. Пример команды создания шаблона с сохранением установленного cloud-init
./stc-2.10.0 template --license="ВВЕДИТЕ-ВАШУ-ЛИЦЕНЗИЮ" --keep-cloud-init

На платформе виртуализации завершите работу виртуальной машины. После того, как статус ВМ перейдет в состояние “выключена”, сформируйте из нее шаблон.

Загрузка образа (шаблона) ВМ в платформу виртуализации

В появившемся окне “Новый шаблон” заполните следующие поля:

  • Название: Введите уникальное имя для нового шаблона.
  • Описание: Введите краткое описание шаблона, чтобы упростить его идентификацию.
  • Кластер: Выберите кластер, в котором будет доступен данный шаблон.

Дождитесь, пока созданный шаблон станет доступным в вашей среде виртуализации. С этого момента шаблон будет доступен для добавления в конфигурации провайдеров.

Загрузка шаблона ВМ в платформу “Штурвал”

Созданные шаблоны ВМ необходимо загрузить в экземпляр провайдера соответствующего типа. К одному экземпляру провайдера можно добавить несколько шаблонов ВМ. Для каждого шаблона ВМ можно указать только 1 версию Kubernetes, на которой планируется развертывания кластеров. В списке версий Kubernetes доступны версии, совместимые с установленной версией платформы.

Прежде чем выбрать версию Kubernetes, ознакомьтесь с соответствием версий Kubernetes и версий платформы “Штурвал”. Обратите внимание! Указанная версия Kubernetes в шаблоне ВМ определяет доступные для выбора версии платформы при создании клиентских кластеров.

Скриншот выбора шаблонов ВМ при создании провайдера инфраструктуры в платформе "Штурвал"

templates

Пример выбора версии Kubernetes

При добавлении шаблона виртуальной машины в экземпляр провайдера были доступны версии Kubernetes: v1.28.3, v1.29.1, v1.29.6, v1.30.5, v1.31.3.

Скриншот выбора версии kubernetes для добавляемого шаблона ВМ

templateskubeversions

×