Доступно в редакциях: EE
Модуль автоматически включается для всех облачных кластеров, развернутых в OpenStack.
Количество и параметры процесса заказа машин в облаке настраиваются в custom resource NodeGroup
модуля node-manager
, в котором также указывается название используемого для этой группы узлов инстанс-класса (параметр cloudInstances.classReference
NodeGroup). Инстанс-класс для cloud-провайдера OpenStack — это custom resource OpenStackInstanceClass
, в котором указываются конкретные параметры самих машин.
Настройки модуля устанавливаются автоматически на основании выбранной схемы размещения. В большинстве случаев нет необходимости в ручной конфигурации модуля.
Если вам необходимо настроить модуль, потому что, например, у вас bare-metal-кластер, для которого нужно включить возможность добавлять дополнительные инстансы из OpenStack, смотрите раздел Как настроить Hybrid-кластер в OpenStack.
Внимание! При изменении настроек модуля пересоздания существующих объектов
Machines
в кластере НЕ происходит (новые объектыMachine
будут создаваться с новыми параметрами). Пересоздание происходит только при изменении параметровNodeGroup
иOpenStackInstanceClass
. См. подробнее в документации модуля node-manager. Для настройки аутентификации с помощью модуляuser-authn
необходимо в Crowd’е проекта создать новоеGeneric
приложение.
Список необходимых сервисов OpenStack
Список сервисов OpenStack, необходимых для работы Deckhouse Kubernetes Platform в OpenStack:
Сервис | Версия API |
---|---|
Identity (Keystone) | v3 |
Compute (Nova) | v2 |
Network (Neutron) | v2 |
Block Storage (Cinder) | v3 |
Load Balancing (Octavia) ⃰ | v2 |
⃰ Если нужно заказывать Load Balancer.
В случае использования публичных облаков, адреса и порты API можно узнать в официальной документации сервиса:
Чтобы настроить модуль, используйте ресурс ModuleConfig
с именем cloud-provider-openstack
(подробнее о настройке Deckhouse…).
Пример ресурса ModuleConfig/cloud-provider-openstack
для настройки модуля:
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: cloud-provider-openstack
spec:
version: 1
enabled: true
settings: # <-- Параметры модуля из раздела "Параметры" ниже.
Параметры
Версия схемы: 1
- массив строк
Имена дополнительных сетей, которые могут быть подключены к виртуальной машине и использованы в
cloud-controller-manager
для проставленияExternalIP
в.status.addresses
в Node API объект.Если в кластере есть инстансы, для которых будут использоваться External Networks, отличные от указанных в схеме размещения, их следует передавать в параметре
additionalExternalNetworkNames
.Пример:
additionalExternalNetworkNames: - some-bgp-network
- булевый
Настройка для обратной совместимости. Включите, если версия OpenStack в облаке меньше 3.34 и вы получаете ошибку «Version 3.34 is not supported by the API. Minimum is 3.0 and maximum is 3.x» при заказе PV. Это отключит изменения размеров томов «на лету», но вернет возможность заказа новых PV. (оригинальный PR https://github.com/kubernetes/cloud-provider-openstack/pull/1986/)
По умолчанию:
false
- строка
Способ организации трафика в той сети, которая используется для коммуникации между подами (обычно это internal-сеть, но бывают исключения):
DirectRouting
– между узлами работает прямая маршрутизация.DirectRoutingWithPortSecurityEnabled
— между узлами работает прямая маршрутизация, но только если в OpenStack явно разрешить на портах диапазон адресов, используемых во внутренней сети:- Внимание! Убедитесь, что у
username
есть доступ на редактирование AllowedAddressPairs на портах, подключенных в сетьinternalNetworkName
. Обычно в OpenStack такого доступа нет, если сеть имеет флагshared
.
- Внимание! Убедитесь, что у
VXLAN
– между узлами НЕ работает прямая маршрутизация, необходимо использовать VXLAN.
Допустимые значения:
DirectRouting
,DirectRoutingWithPortSecurityEnabled
,VXLAN
- строка
Имя StorageClass, который будет использоваться по умолчанию в кластере.
Если значение не указано, фактический StorageClass по умолчанию будет определен следующим образом:
- произвольный StorageClass в кластере, имеющий default-аннотацию;
- первый (по алфавиту) StorageClass из тех, что создаются модулем (в порядке из OpenStack).
Параметр устарел. Вместо этого параметра используйте глобальный параметр global.defaultClusterStorageClass.
Пример:
default: ceph-ssd
- булевый
Этот параметр управляет функционалом драйвера, который определяет необходимость учета ограничения топологии облака при заказе дисков. Это учитывается только при создании дисков, существующие PersistentVolume’ы не будут изменены.
Внимание. Если установлено значение
false
, все новые PersistentVolume’ы создаются без учета ограничений топологии.По умолчанию:
true
- объект
Словарь тегов, которые будут на всех заказываемых инстансах.