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

Конфигурация подключения 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

Загрузите файл 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.

Особенности

Изменить тип доступа образа

Если образ в VK Cloud с типом доступа приватный — private, измените его. В интерфейсе Портал администратора VK Cloud:

  1. В панели VK Cloud откройте меню проекта и выберите Настройки проекта.
  2. На вкладке Доступ по API скопируйте значение Project ID.
  3. Перейдите в раздел Образы.
  4. В строке нужного образа нажмите и выберите Поделиться образом.
  5. В окне Управление доступом выберите вкладку Другие проекты.
  6. В поле ID проекта в OpenStack вставьте скопированный Project ID и нажмите Разрешить доступ.

После выдачи доступа образ будет доступен в списке шаблонов ВМ в экземпляре провайдера VK Cloud.