Доступно в редакциях: EE, SE+
Модуль автоматически включается для всех облачных кластеров, развернутых в vSphere.
Конверсии
Модуль настраивается с помощью ресурса ModuleConfig, схема которого содержит номер версии. При применении в кластере старой версии схемы ModuleConfig выполняются автоматические преобразования. Чтобы обновить версию схемы ModuleConfig вручную, необходимо последовательно для каждой версии выполнить следующие действия :
- Обновление из версии 1 в 2:
Если поле
.storageClass.compatibilityFlagсуществует, перепишите значение с заглавной буквы.
Если control plane кластера размещен на виртуальных машинах или bare-metal-серверах, cloud-провайдер использует настройки модуля cloud-provider-vsphere в конфигурации Deckhouse (см. ниже). Иначе, если control plane кластера размещен в облаке, cloud-провайдер использует структуру VsphereClusterConfiguration для настройки.
Количество и параметры процесса заказа машин в облаке настраиваются в custom resource NodeGroup модуля node-manager, в котором также указывается название используемого для этой группы узлов инстанс-класса (параметр cloudInstances.classReference NodeGroup). Инстанс-класс для cloud-провайдера vSphere — это custom resource VsphereInstanceClass, в котором указываются конкретные параметры самих машин.
Storage
Модуль автоматически создает StorageClass для каждого Datastore и DatastoreCluster из зон (зоны).
Также он позволяет настроить имя StorageClass’а, который будет использоваться в кластере по умолчанию (параметр default) и отфильтровать ненужные StorageClass’ы (параметр exclude).
CSI
Подсистема хранения по умолчанию использует CNS-диски с возможностью изменения их размера на лету. Но также поддерживается работа и в legacy-режиме с использованием FCD-дисков. Поведение настраивается параметром compatibilityFlag.
Важная информация об увеличении размера PVC
Из-за особенностей работы volume-resizer CSI и vSphere API после увеличения размера PVC нужно сделать следующее:
- На узле, где находится под, выполнить команду
d8 k cordon <имя_узла>. - Удалить под.
- Убедиться, что изменение размера прошло успешно. В объекте PVC не будет condition
Resizing.Состояние
FileSystemResizePendingне является проблемой. - На узле, где находится под, выполнить команду
d8 k uncordon <имя_узла>.
Настройки
Чтобы настроить модуль, используйте ресурс ModuleConfig с именем cloud-provider-vsphere (подробнее о настройке Deckhouse…).
Пример ресурса ModuleConfig/cloud-provider-vsphere для настройки модуля:
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: cloud-provider-vsphere
spec:
version: 2
enabled: true
settings: # <-- Параметры модуля из раздела "Параметры" ниже.
Параметры
Версия схемы: 2
- объектsettings
- булевыйsettings.disableTimesync
Отключение синхронизации времени со стороны vSphere.
Внимание! Отключение этого параметра не отключает NTP-демоны в гостевой ОС, а лишь отключает корректировки времени со стороны ESXi.
- массив строкsettings.externalNetworkNames
Имена сетей (не полный путь, а просто имя), подключенных к виртуальным машинам и используемых
vsphere-cloud-controller-managerдля проставления ExternalIP в.status.addressesв Node API объект. - строкаsettings.host
Доменное имя сервера vCenter.
- булевыйsettings.insecure
Установите
true, если vCenter использует самоподписанный сертификат. - массив строкsettings.internalNetworkNames
Имена сетей (не полный путь, а просто имя), подключенных к виртуальным машинам и используемых
vsphere-cloud-controller-managerдля проставления InternalIP в.status.addressesв Node API объект. - объектsettings.nsxt
Поддержка cloud controller manager’ом балансировщиков (LoadBalancer) в Vsphere через NSX-T.
- строкаsettings.nsxt.defaultIpPoolName
Обязательный параметр
Имя пула IP-адресов по умолчанию, который используется, если в SVC не установлена аннотация
loadbalancer.vmware.io/class.Пример:
defaultIpPoolName: pool1 - строкаsettings.nsxt.defaultTcpAppProfileName
Имя профиля по умолчанию, используемого для TCP-соединений в NSX-T.
По умолчанию:
default-tcp-lb-app-profileПримеры:
defaultTcpAppProfileName: default-tcp-lb-app-profiledefaultTcpAppProfileName: tcp-profile1 - строкаsettings.nsxt.defaultUdpAppProfileName
Имя профиля по умолчанию, используемого для UDP-соединений в NSX-T.
По умолчанию:
default-udp-lb-app-profileПримеры:
defaultUdpAppProfileName: default-udp-lb-app-profiledefaultUdpAppProfileName: udp-profile1 - строкаsettings.nsxt.host
Обязательный параметр
Адрес NSX-T.
Пример:
host: 1.2.3.4 - булевыйsettings.nsxt.insecureFlag
Должен быть установлен в
true, если NSX-T использует самоподписанный сертификат.Примеры:
insecureFlag: trueinsecureFlag: false - массивsettings.nsxt.loadBalancerClass
Дополнительная секция, определяющая классы балансировщика (LoadBalancer Class) (чтобы использовать класс, установите аннотацию
loadbalancer.vmware.io/class: <ИМЯ КЛАССА>на SVC).Примеры:
loadBalancerClass: []loadBalancerClass: name: LBC1 ipPoolName: pool2loadBalancerClass: name: LBC1 ipPoolName: pool2 tcpAppProfileName: profile2 udpAppProfileName: profile3- строкаsettings.nsxt.loadBalancerClass.ipPoolName
Обязательный параметр
Имя пула IP-адресов.
- строкаsettings.nsxt.loadBalancerClass.name
Обязательный параметр
Имя класса балансировщика (LoadBalancer Class) для установки аннотации
loadbalancer.vmware.io/class: <ИМЯ КЛАССА>в SVC. - строкаsettings.nsxt.loadBalancerClass.tcpAppProfileName
Имя профиля по умолчанию, используемого для TCP-соединений.
По умолчанию:
defaultTcpAppProfileName - строкаsettings.nsxt.loadBalancerClass.udpAppProfileName
Имя профиля по умолчанию, используемого для UDP-соединений.
По умолчанию:
defaultUdpAppProfileName
- строкаsettings.nsxt.password
Обязательный параметр
Пароль пользователя NSX-T.
Пример:
password: password - строкаsettings.nsxt.size
Размер сервиса балансировщика (LoadBalancer).
По умолчанию:
MEDIUMДопустимые значения:
SMALL,MEDIUM,LARGE,XLARGEПример:
size: SMALL - строкаsettings.nsxt.tier1GatewayPath
Обязательный параметр
Путь к политике NSX-T tier1 gateway.
Пример:
tier1GatewayPath: "/path/tier1" - строкаsettings.nsxt.user
Обязательный параметр
Имя пользователя NSX-T.
Пример:
user: user
- строкаsettings.password
Пароль.
- строкаsettings.region
Тег, прикрепленный к vSphere Datacenter, в котором будут происходить все операции: заказ виртуальных машин, размещение их дисков на datastore, подключение к сети.
- строкаsettings.regionTagCategory
Имя категории тегов, использующихся для идентификации региона (vSphere Datacenter).
- массив строкsettings.sshKeys
Список публичных SSH-ключей в формате plain-text.
- объектsettings.storageClass
- строкаsettings.storageClass.compatibilityFlag
Флаг, разрешающий использование старой версии CSI:
Legacy— используется старая версия драйвера — только диски FCD, без онлайн-изменения размера;Migration— в этом случае оба драйвера будут доступны в кластере одновременно. Этот режим используется для миграции со старого драйвера.
Допустимые значения:
Legacy,Migration - строкаsettings.storageClass.defaultПараметр устарел
Имя StorageClass’а, который будет использоваться по умолчанию в кластере.
Если значение не указано, фактический StorageClass по умолчанию будет определен следующим образом:
- произвольный StorageClass в кластере, имеющий default-аннотацию;
- первый (по алфавиту) StorageClass из тех, что создаются модулем.
Параметр устарел. Вместо этого параметра используйте глобальный параметр global.defaultClusterStorageClass.
Пример:
default: fast-lun102-7d0bf578 - массив строкsettings.storageClass.exclude
Полные имена (или regex выражения имен) StorageClass’ов, которые не будут созданы в кластере.
Пример:
exclude: - ".*-lun101-.*" - slow-lun103-1c280603
- строкаsettings.username
Login ID.
- строкаsettings.vmFolderPath
Путь до VirtualMachine Folder, в котором будут создаваться склонированные виртуальные машины.
- строкаsettings.zoneTagCategory
Имя категории тегов, использующихся для идентификации зоны (vSphere Cluster).
- массив строкsettings.zones
Глобальное ограничение набора зон, с которыми работает данный cloud-провайдер.