Эти возможности доступны только в Enterprise Edition.

Модуль автоматически включается для всех облачных кластеров развёрнутых в OpenStack.

Количество и параметры процесса заказа машин в облаке настраиваются в custom resource NodeGroup модуля node-manager, в котором также указывается название используемого для этой группы узлов instance-класса (параметр cloudInstances.classReference NodeGroup). Instance-класс для cloud-провайдера OpenStack — это custom resource OpenStackInstanceClass, в котором указываются конкретные параметры самих машин.

Параметры

Настройки модуля устанавливаются автоматически на основании выбранной схемы размещения. В большинстве случаев нет необходимости в ручной конфигурации модуля.

Если вам необходимо настроить модуль, потому что, например, у вас bare metal кластер, для которого нужно включить возможность добавлять дополнительные инстансы из OpenStack, то смотрите раздел как настроить Hybrid кластер в OpenStack.

Внимание! При изменении конфигурационных параметров приведенных в этой секции (параметров, указываемых в ConfigMap deckhouse) перекат существующих Machines НЕ производится (новые Machines будут создаваться с новыми параметрами). Перекат происходит только при изменении параметров NodeGroup и OpenStackInstanceClass. См. подробнее в документации модуля node-manager. Для настройки аутентификации с помощью модуля user-authn необходимо в Crowd’е проекта создать новое Generic приложение.

  • connection - Параметры подключения к api cloud provider’a
    • authURL — OpenStack Identity API URL.
    • caCert — если OpenStack API имеет self-signed сертификат, можно указать CA x509 сертификат, использовавшийся для подписи.
      • Формат — строка. Сертификат в PEM формате.
      • Опциональный параметр.
    • domainName — имя домена.
    • tenantName — имя проекта.
      • Не может использоваться вместе с tenantID.
    • tenantID — id проекта.
      • Не может использоваться вместе с tenantName.
    • username — имя пользователя с полными правами на проект.
    • password — пароль к пользователю.
    • region — регион OpenStack, где будет развёрнут кластер.
  • internalNetworkNames — имена сетей, подключённые к виртуальной машине, и используемые cloud-controller-manager для проставления InternalIP в .status.addresses в Node API объект.
    • Формат — массив строк.

    Пример:

    internalNetworkNames:
    - KUBE-3
    - devops-internal
    
  • externalNetworkNames — имена сетей, подключённые к виртуальной машине, и используемые cloud-controller-manager для проставления ExternalIP в .status.addresses в Node API объект.
    • Формат — массив строк.

    Пример:

    externalNetworkNames:
    - KUBE-3
    - devops-internal
    
  • additionalExternalNetworkNames — имена дополнительных сетей, которые могут быть подключены к виртуальной машине, и используемые cloud-controller-manager для проставления ExternalIP в .status.addresses в Node API объект.
    • Формат — массив строк.

    Пример:

    cloudProviderOpenstack: |
      additionalExternalNetworkNames:
      - some-bgp-network
    
  • podNetworkMode - определяет способ организации трафика в той сети, которая используется для коммуникации между подами (обычно это internal сеть, но бывают исключения).
    • Допустимые значение:
      • DirectRouting – между узлами работает прямая маршрутизация.
      • DirectRoutingWithPortSecurityEnabled - между узлами работает прямая маршрутизация, но только если в OpenStack явно разрешить на Port’ах диапазон адресов используемых во внутренней сети.
        • Внимание! Убедитесь, что у username есть доступ на редактирование AllowedAddressPairs на Port’ах, подключенных в сеть internalNetworkName. Обычно в OpenStack такого доступа нет, если сеть имеет флаг shared.
      • VXLAN – между узлами НЕ работает прямая маршрутизация, необходимо использовать VXLAN.
    • Опциональный параметр. По умолчанию DirectRoutingWithPortSecurityEnabled.
  • instances — параметры instances, которые используются при создании виртуальных машин:
    • sshKeyPairName — имя OpenStack ресурса keypair, который будет использоваться при заказе instances.
      • Обязательный парамер.
      • Формат — строкa.
    • securityGroups — Список securityGroups, которые нужно прикрепить к заказанным instances. Используется для задания firewall правил по отношению к заказываемым instances.
      • Опциональный параметр.
      • Формат — массив строк.
    • imageName - имя образа.
      • Опциональный параметр.
      • Формат — строкa.
    • mainNetwork - путь до network, которая будет подключена к виртуальной машине, как основная сеть (шлюз по умолчанию).
      • Опциональный параметр.
      • Формат — строкa.
    • additionalNetworks - список сетей, которые будут подключены к инстансу.
      • Опциональный параметр.
      • Формат — массив строк.
  • loadBalancer - параметры Load Balancer
    • subnetID - ID Neutron subnet, в котором создать load balancer virtual IP.
      • Формат — строка.
      • Опциональный параметр.
    • floatingNetworkID - ID external network, который будет использоваться для заказа floating ip
      • Формат — строка.
      • Опциональный параметр.
  • zones - список зон, в котором по умолчанию заказывать инстансы. Может быть переопределён индивидуально для каждой NodeGroup’ы
    • Формат — массив строк.
  • tags - словарь тегов, которые будут на всех заказываемых инстансах
    • Опциональный параметр.
    • Формат — ключ-значение.

Если у вас в кластере есть инстансы, для которых будут использоваться External Networks, кроме указанных в схеме размещения, то их следует передавать в параметре additionalExternalNetworkNames.

Storage

Модуль автоматически создаёт StorageClasses, которые есть в OpenStack. А также позволяет отфильтровать ненужные, указанием их в параметре exclude.

  • exclude — полные имена (или regex выражения имён) StorageClass, которые не будут созданы в кластере.
    • Формат — массив строк.
    • Опциональный параметр.
  • default — имя StorageClass, который будет использоваться в кластере по умолчанию.
    • Формат — строка.
    • Опциональный параметр.
    • Если параметр не задан, фактическим StorageClass по умолчанию будет либо:
      • Присутствующий в кластере произвольный StorageClass с default аннотацией.
      • Первый StorageClass из создаваемых модулем (в порядке из OpenStack).
  • topologyEnabled - этот параметр управляет функционалом драйвера, который определяет необходимость учитывать ограничения топологии облака при заказе дисков. Это учитывается только при создании дисков, существующие PersistentVolumes не будут изменены;
    • Внимание! Если установлено значение false то все новые PersistentVolumes создаются без учёта ограничений топологии.
    • Формат — bool. Опциональный параметр;
    • По умолчанию true.
cloudProviderOpenstack: |
  storageClass:
    exclude:
    - .*-hdd
    - iscsi-fast
    default: ceph-ssd