Провайдеры инфраструктуры
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 на этапе развертывания представлен на схеме ниже.
До инициализации кластера Kubernetes nova-ctl
хранит состояние объектов Terraform локально, а после его инициализации сохраняет состояние в кластер Kubernetes в объект ConfigMap. При масштабировании кластера Kubernetes nova-ctl
также работает с блокировками Terraform, которые управляются автоматически объектом TerraformLock в API-группе config.nova-platform.io в Kubernetes.
Схема, представленная ниже, демонстрирует процесс масштабирования кластера в контексте взаимодействия nova-ctl
и пользователя с кластером Kubernetes.