OpenStack, VK Cloud, Selectel
Интеграция с OpenStack API.
Назначение
Провайдер OpenStack позволяет разворачивать Kubernetes-кластеры на виртуальных машинах в среде OpenStack (или совместимых облаках).
Для настройки провайдера необходимо, чтобы соответствующий сервис в кластере управления был включён и находился в режиме управления Авто. Подробнее: Провайдер OpenStack (shturval-capos).
Сводная таблица инфраструктурных CR OpenStack в терминах Cluster API: раздел Кастомные ресурсы жизненного цикла узлов — OpenStack.
Предварительные требования
Перед настройкой провайдера убедитесь, что:
- в вашей инфраструктуре есть платформа виртуализации на основе OpenStack или совместимое публичное облако: VK Cloud, Selectel;
- создана сервисная учётная запись с правами не ниже Администратор Kubernetes/Администратор проекта;
- в платформе виртуализации заранее подготовлены образы (images) для нужных версий Kubernetes. Для VK Cloud проверьте тип доступа к образу: платформа может использовать только образы с типом доступа публичный —
public. Образы с типом доступа приватный —privateне будут доступны для выбора при добавлении шаблона ВМ.
Поддерживаемые платформы
- OpenStack
- VK Cloud
- Selectel
Настройки конфигурации провайдера (после проверки подключения) идентичны для всех платформ. Настройки подключения различаются.
Соответствие полей в платформах виртуализации
Поля в форме конфигурации провайдера соответствуют сущностям платформы. Где искать:
| Поле в платформе «Штурвал» | OpenStack | VK Cloud | Selectel |
|---|---|---|---|
| Auth URL | URL Keystone (порт 5000). Панель: Доступ к API | Панель: Настройки проекта → Доступ по API | По умолчанию https://cloud.api.selcloud.ru/identity/v3 |
| Project ID | Идентификация → Проекты → иконка копирования ID | Настройки проекта | Облачная платформа → меню проектов → иконка копирования ID в строке проекта |
| Номер аккаунта Selectel | — | — | Номер аккаунта в правом верхнем углу панели Selectel |
| Project Domain ID | В разделе идентификации | В настройках проекта | — |
| Region name | Например, RegionOne |
Имя региона | Имя пула/зоны (например, ru-9) |
| Учётная запись | Сервисный пользователь или Токен. Токен: Доступ для приложений | Управление доступами — логин и пароль. Токен Keystone не подходит для длительного использования | Только сервисный пользователь (см. примечание ниже) |
| Сервисный пользователь | Идентификация → пользователь с ролями heat_stack_owner, admin |
Управление доступами | Управление доступом → Управление пользователями → вкладка Сервисные пользователи. Роли: Администратор аккаунта, Администратор пользователей |
| RC.sh | Доступ к API → скачать openrc.sh | Управление доступами → RC.sh v3 | Управление доступами → RC.sh v3 |
Обратите внимание! Важно для Selectel: Не используйте аутентификацию по токену — токен в Selectel короткоживущий (не более 1 часа) и непригоден для работы с Cluster API. Необходимо создать сервисную учётную запись с ролями Администратор аккаунта и Администратор пользователей. Подробнее о создании сервисной учётной записи — в документации Selectel, раздел настройки Terraform.
Не используйте для сервисной учётной записи пароли с повторяющимися спецсимволами, например &&: это может привести к ошибке подключения провайдера виртуализации.
Создание экземпляра
Перейдите в Провайдеры → Конфигурация провайдеров. В блоке Сервисы провайдеров проверьте, включён ли Провайдер OpenStack, VK Cloud, Selectel. Если сервис отключён, нажмите на переключатель и дождитесь запуска. Затем нажмите Добавить экземпляр провайдера → «+ OpenStack» (или «VK Cloud», «Selectel»).
Переключатель сервиса переводит связанные SSC провайдера в режим auto: сначала CRD-чарт, затем основной чарт провайдера. Дождитесь, пока сервис перейдёт в состояние готовности.

Данные можно ввести вручную или загрузить файлом RC.sh.
После ввода данных нажмите Проверить подключение. После создания экземпляра провайдера изменить данные подключения можно только после успешной проверки подключения.
Конфигурация подключения (вручную)
Форма подключения OpenStack

| Поле | Обязательность | Описание |
|---|---|---|
| Auth URL (Identity endpoint) | Да | URL службы авторизации Keystone. Пример: http://10.11.111.111:5000/v3. |
| Project ID | Да | Идентификатор проекта. В панели OpenStack: Идентификация → Проекты. |
| Номер аккаунта Selectel | Для Selectel | Номер аккаунта Selectel. В панели он доступен в правом верхнем углу. |
| Project Domain ID | Да | Идентификатор домена проекта. |
| Region name | Да | Имя региона (например, RegionOne). |
| Interface | Да | Интерфейс доступа (обычно public). |
| Identity API Version | Нет | Версия API (по умолчанию 3). |
| Сертификат (cacert) | Нет | Корневой сертификат при использовании самоподписного CA. |
| Проверять сертификат | Нет | Включить проверку TLS (по умолчанию — нет). |
| Тип учётной записи | Да | Сервисный пользователь — логин и пароль; Токен — только токен (в панели: Доступ для приложений). Для Selectel используйте только сервисного пользователя — токен короткоживущий и непригоден для Cluster API. |
| Name (username) | При сервисном пользователе | Имя пользователя с ролями heat_stack_owner, admin. |
| Пароль | При сервисном пользователе | Пароль учётной записи. |
| User Domain Name | Нет | Имя домена пользователя. |
| Токен | При выборе «Токен» | Токен из панели OpenStack. |
Конфигурация подключения (RC.sh)
Загрузка RC.sh

Загрузите файл RC.sh из панели OpenStack (раздел Доступ к API) и укажите пароль сервисного пользователя.
Конфигурация провайдера (после проверки подключения)
| Поле | Обязательность | Описание |
|---|---|---|
| Имя провайдера | Да | Уникальное имя экземпляра. |
| CloudName | Да | Имя облака (например, vk, selectel). |
| Сетевой интерфейс ВМ | Да | Имя интерфейса на ВМ (например, eth0). |
| sshKeyName | Да | SSH-ключ для доступа к ВМ. Выберите из списка ключей OpenStack. |
| Подсеть узлов | Да | Подсеть для узлов кластера. Не должна пересекаться с подсетями подов и сервисов. Создаётся платформой. |
| externalNetworkID | Да | Идентификатор внешней сети. |
| Типы ВМ (flavours) | Да | Типы виртуальных машин для узлов. |
| Типы дисков (volume types) | Да | Типы томов для дисков ВМ. |
| Зоны доступности | Нет | Availability zones при необходимости. |
| Управление Security Groups | Нет | Включить управление группами безопасности (по умолчанию — Да). |
| Разрешить CSI | Нет | Включить для использования OpenStack Cinder CSI. Если CSI разрешён в экземпляре провайдера, при создании кластера с этим экземпляром будет доступна интеграция CSI. |
Шаблоны образов
Добавьте образы (images) для нужных версий Kubernetes. Образы должны быть заранее подготовлены в платформе виртуализации по единой инструкции.
В блоке Шаблоны виртуальных машин нажмите + для добавления шаблона. В боковом окне выберите имя (как в виртуализации) и версию Kubernetes. Версия Штурвала заполнится автоматически и будет доступна только для просмотра. Для одной версии Kubernetes можно добавить только один шаблон.
После создания провайдера в настройках отображаются только выбранные типы ВМ, типы дисков и зоны доступности.
Чтобы обновить версию Kubernetes на узлах кластера, используйте инструкцию Узлы и шаблоны ВМ.
Если в VK Cloud создан образ и на странице конфигурации экземпляра провайдера VK Cloud в списке шаблонов виртуальных машин он отсутствует, проверьте в платформе виртуализации тип доступа образа. Он должен быть публичный — public, см. раздел Изменить тип доступа образа в VK Cloud.
Особенности
- Используются образы (images), подготовленные по единой инструкции для всех провайдеров;
- Требуется настройка сети и security groups для доступа к KubeAPI и Ingress.
Изменить тип доступа образа
Если образ в VK Cloud с типом доступа приватный — private, измените его. В интерфейсе Портал администратора VK Cloud:
- В панели VK Cloud откройте меню проекта и выберите Настройки проекта.
- На вкладке Доступ по API скопируйте значение Project ID.
- Перейдите в раздел Образы.
- В строке нужного образа нажмите … и выберите Поделиться образом.
- В окне Управление доступом выберите вкладку Другие проекты.
- В поле ID проекта в OpenStack вставьте скопированный Project ID и нажмите Разрешить доступ.
После выдачи доступа образ будет доступен в списке шаблонов ВМ в экземпляре провайдера VK Cloud.