Модуль автоматически включается для всех облачных кластеров, развёрнутых в OpenStack.
Количество и параметры процесса заказа машин в облаке настраиваются в custom resource NodeGroup
модуля node-manager, в котором также указывается название используемого для этой группы узлов инстанс-класса (параметр cloudInstances.classReference
NodeGroup). Инстанс-класс для cloud-провайдера OpenStack — это custom resource OpenStackInstanceClass
, в котором указываются конкретные параметры самих машин.
Параметры
Настройки модуля устанавливаются автоматически на основании выбранной схемы размещения. В большинстве случаев нет необходимости в ручной конфигурации модуля.
Если вам необходимо настроить модуль, потому что, например, у вас bare metal кластер, для которого нужно включить возможность добавлять дополнительные инстансы из OpenStack, то смотрите раздел как настроить Hybrid кластер в OpenStack.
Внимание! При изменении конфигурационных параметров, приведенных в этой секции (параметров, указываемых в ConfigMap deckhouse), пересоздание существующих Machines НЕ производится (новые Machines будут создаваться с новыми параметрами). Пересоздание происходит только при изменении параметров
NodeGroup
иOpenStackInstanceClass
. См. подробнее в документации модуля node-manager. Для настройки аутентификации с помощью модуляuser-authn
необходимо в Crowd’е проекта создать новоеGeneric
приложение.
- additionalExternalNetworkNamesмассив строк
Имена дополнительных сетей, которые могут быть подключены к виртуальной машине и использованы в
cloud-controller-manager
для проставленияExternalIP
в.status.addresses
в Node API объект.Если в кластере есть инстансы, для которых будут использоваться External Networks, отличные от указанных в схеме размещения, то их следует передавать в параметре
additionalExternalNetworkNames
.Пример:
additionalExternalNetworkNames: - some-bgp-network
- connectionобъект
Параметры подключения к API cloud-провайдера.
- authURLстрока
OpenStack Identity API URL.
- caCertстрока
CA x509 сертификат в PEM формате, использовавшийся для подписи (можно указать, если OpenStack API имеет self-signed сертификат).
- domainNameстрока
Имя домена.
- passwordстрока
Пароль пользователя.
- regionстрока
Регион OpenStack, где будет развёрнут кластер.
- tenantIDстрока
ID проекта.
Не может использоваться вместе с
tenantName
. - tenantNameстрока
Имя проекта.
Не может использоваться вместе с
tenantID
. - usernameстрока
Имя пользователя с полными правами на проект.
- authURLстрока
- externalNetworkNamesмассив строк
Имена сетей, подключённые к виртуальной машине и используемые cloud-controller-manager для проставления ExternalIP в
.status.addresses
в Node API объект.Пример:
externalNetworkNames: - KUBE-3 - devops-internal
- instancesобъект
Параметры инстансов, которые используются при создании виртуальных машин.
- additionalNetworksмассив строк
Список сетей, которые будут подключены к инстансу.
- imageNameстрока
Имя образа.
- mainNetworkстрока
Путь до network, которая будет подключена к виртуальной машине как основная сеть (шлюз по умолчанию).
- securityGroupsмассив строк
Список securityGroups, которые нужно прикрепить к заказанным инстансам. Используется для задания firewall правил по отношению к заказываемым инстансам.
- sshKeyPairNameстрока
Имя OpenStack ресурса
keypair
, который будет использоваться при заказе инстансов.
- additionalNetworksмассив строк
- internalNetworkNamesмассив строк
Имена сетей, подключённые к виртуальной машине и используемые cloud-controller-manager для проставления InternalIP в
.status.addresses
в Node API объект.Пример:
internalNetworkNames: - KUBE-3 - devops-internal
- loadBalancerобъект
Параметры Load Balancer’а.
- floatingNetworkIDстрока
ID external network, который будет использоваться для заказа floating ip.
- subnetIDстрока
ID Neutron subnet, в котором создать load balancer virtual IP.
- floatingNetworkIDстрока
- podNetworkModeстрока
Способ организации трафика в той сети, которая используется для коммуникации между Pod’ами (обычно это internal сеть, но бывают исключения):
DirectRouting
– между узлами работает прямая маршрутизация.DirectRoutingWithPortSecurityEnabled
— между узлами работает прямая маршрутизация, но только если в OpenStack явно разрешить на Port’ах диапазон адресов, используемых во внутренней сети:- Внимание! Убедитесь, что у
username
есть доступ на редактирование AllowedAddressPairs на Port’ах, подключенных в сетьinternalNetworkName
. Обычно в OpenStack такого доступа нет, если сеть имеет флагshared
.
- Внимание! Убедитесь, что у
VXLAN
– между узлами НЕ работает прямая маршрутизация, необходимо использовать VXLAN.
Допустимые значения:
DirectRouting
,DirectRoutingWithPortSecurityEnabled
,VXLAN
- storageClassобъект
Автоматически создание StorageClass’ов, которые есть в OpenStack.
- defaultстрока
Имя StorageClass’а, который будет использоваться в кластере по умолчанию.
Если параметр не задан, фактическим StorageClass’ом по умолчанию будет либо:
- Присутствующий в кластере произвольный StorageClass с default аннотацией.
- Первый StorageClass из создаваемых модулем (в порядке из OpenStack).
Пример:
default: ceph-ssd
- excludeмассив строк
Полные имена (или regex выражения имён) StorageClass’ов, которые не будут созданы в кластере.
Пример:
exclude: - ".*-hdd" - iscsi-fast
- topologyEnabledбулевый
Этот параметр управляет функционалом драйвера, который определяет необходимость учёта ограничения топологии облака при заказе дисков. Это учитывается только при создании дисков, существующие PersistentVolume’ы не будут изменены;
Внимание! Если установлено значение
false
то все новые PersistentVolume’ы создаются без учёта ограничений топологии.По умолчанию:
true
- defaultстрока
- объект
Словарь тегов, которые будут на всех заказываемых инстансах.
- zonesмассив строк
Список зон, в которых по умолчанию заказывать инстансы. Может быть переопределён индивидуально для каждой NodeGroup.