Доступно только в Enterprise Edition.

Модуль автоматически включается для всех облачных кластеров, развёрнутых в 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строка

      Имя пользователя с полными правами на проект.

  • 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, который будет использоваться при заказе инстансов.

  • 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.

  • 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

  • tagsобъект

    Словарь тегов, которые будут на всех заказываемых инстансах.

  • zonesмассив строк

    Список зон, в которых по умолчанию заказывать инстансы. Может быть переопределён индивидуально для каждой NodeGroup.