Создание шаблонов виртуальных машин
Что такое шаблон ВМ
Создание кластеров с провайдерами 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 в шаблоне ВМ определяет доступные для выбора версии платформы при создании клиентских кластеров.
Скриншот выбора шаблонов ВМ при создании провайдера инфраструктуры в платформе "Штурвал"

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