Провайдеры инфраструктуры

Nova Container Platform поддерживает различные провайдеры инфраструктуры. Для взаимодействия с ними установщик платформы nova-ctl использует Terraform и его плагины (инфраструктурные провайдеры).

В плагине Terraform реализованы механизмы управления инфраструктурными объектами через API. Утилита nova-ctl имеет в составе все поддерживаемые инраструктурные провайдеры, а для их работы не требуется иметь доступ в Интернет. Все операции с инфраструктурными провайдерами выполняются прозрачно для пользователя.

Провайдеры инфраструктуры Terraform разрабатываются сообществом и ОРИОН для совместимости с Nova Container Platform.

1. Поддерживаемые интеграции

Вы можете получить актуальный перечень поддерживаемых провайдеров инфраструктуры в разделе Перечень матриц совместимости и протестированных интеграций.

2. Использование в Nova Container Platform

Перед установкой платформы пользователь может получить предзаполненные установочные манифесты (шаблоны конфигураций) с помощью nova-ctl init. Далее nova-ctl в интерактивном режиме запрашивает у пользователя тип инфраструктуры, в которой планируется установка, и предоставляет шаблон с блоком конфигурации необходимого провайдера инфраструктуры.

Заполнение установочного манифеста выполняется строго в соответствии с параметрами объекта Infrastructure в API-группе config.nova-platform.io. nova-ctl обрабатывает полученные из манифеста данные и автоматически подготавливает конфигурационные файлы Terraform. Пользователь также дополнительно уведомляется об изменениях, которые будут внесены в инфраструктуру, например, создание необходимого количества ВМ, дисков, сетевых интерфейсов и т.п.

Процесс использования провайдеров инфраструктуры в Nova Container Platform на этапе развертывания представлен на схеме ниже.

Процесс использования провайдеров инфраструктуры в Nova Container Platform
Рисунок 1. Процесс использования провайдеров инфраструктуры в Nova Container Platform

До инициализации кластера Kubernetes nova-ctl хранит состояние объектов Terraform локально, а после его инициализации сохраняет состояние в кластер Kubernetes в объект ConfigMap. При масштабировании кластера Kubernetes nova-ctl также работает с блокировками Terraform, которые управляются автоматически объектом TerraformLock в API-группе config.nova-platform.io в Kubernetes.

Схема, представленная ниже, демонстрирует процесс масштабирования кластера в контексте взаимодействия nova-ctl и пользователя с кластером Kubernetes.

Процесс масштабирования кластера Nova Container Platform
Рисунок 2. Процесс масштабирования кластера Nova Container Platform