Если control plane кластера размещен на виртуальных машинах или серверах bare-metal, то cloud-провайдер использует настройки модуля
cloud-provider-vsphere
в конфигурации Deckhouse. Иначе, если control plane кластера размещен в облаке, то cloud-провайдер использует структуру VsphereClusterConfiguration для настройки.Дополнительная информация о Vsphere Cloud Load Balancers.
VsphereClusterConfiguration
Version: deckhouse.io/v1
Структура, описывающая конфигурацию облачного кластера в vSphere.
Cloud-провайдер использует эту структуру для настройки, если control plane кластера размещен в облаке.
Находится в Secret’е d8-provider-cluster-configuration
пространства имен kube-system
.
- apiVersionстрока
Обязательный параметр
Допустимые значения:
deckhouse.io/v1
,deckhouse.io/v1alpha1
- baseResourcePoolстрока
Относительный (от vSphere Cluster) путь до существующего родительского
resourcePool
для всех создаваемых (в каждой зоне)resourcePool
‘ов. - disableTimesyncбулевый
Отключение синхронизации времени со стороны vSphere.
Внимание! Отключение этого параметра не отключает NTP-демоны в гостевой ОС, а лишь отключает корректировки времени со стороны ESXi.
- externalNetworkNamesмассив строк
Имена сетей (не полный путь, а просто имя), подключённые к VirtualMachines и используемые vsphere-cloud-controller-manager для проставления ExternalIP в
.status.addresses
в Node API объект.Пример:
externalNetworkNames: - MAIN-1 - public
- internalNetworkCIDRстрока
Подсеть для master-узлов во внутренней сети.
Адреса выделяются с десятого адреса. Например, для подсети
192.168.199.0/24
будут использованы адреса начиная с192.168.199.10
.Будет использоваться при использовании
additionalNetworks
вmasterInstanceClass
.Шаблон:
^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(3[0-2]|[1-2][0-9]|[0-9]))$
- internalNetworkNamesмассив строк
Имена сетей (не полный путь, а просто имя), подключённые к VirtualMachines, и используемые vsphere-cloud-controller-manager для проставления InternalIP в
.status.addresses
в Node API объект.Пример:
internalNetworkNames: - KUBE-3 - devops-internal
- kindстрока
Обязательный параметр
Допустимые значения:
VsphereClusterConfiguration
- layoutстрока
Обязательный параметр
Название схемы размещения.
Подробнее о возможных схемах размещения провайдера.
- masterNodeGroupобъект
Обязательный параметр
Спецификация для описания NodeGroup master-узлов.
- instanceClassобъект
Обязательный параметр
Частичное содержимое полей VsphereInstanceClass.
- additionalNetworksмассив строк
Список путей до сетей, которые будут подключены к виртуальной машине.
Указывается относительно vSphere datacenter.
Пример:
additionalNetworks: - DEVOPS_32 - DEVOPS_50
- datastoreстрока
Обязательный параметр
Путь до Datastore, на котором будут созданы склонированные виртуальные машины.
Указывается относительно vSphere datacenter.
Пример:
datastore: lun-1201
- mainNetworkстрока
Обязательный параметр
Путь до сети, которая будет подключена к виртуальной машине как основная (шлюз по умолчанию).
Указывается относительно vSphere datacenter.
Пример:
mainNetwork: k8s-msk-178
- mainNetworkIPAddressesмассив объектов
Cписок статических IP-адресов (с CIDR префиксом), назначаемых (по-очереди) master-узлам в основной сети (параметр
mainNetwork
).По умолчанию включен DHCP-клиент.
Пример:
mainNetworkIPAddresses: - address: 10.1.14.20/24 gateway: 10.1.14.254 nameservers: addresses: - 8.8.8.8 - 8.8.4.4
- addressстрока
Обязательный параметр
IP-адрес с CIDR префиксом.
Шаблон:
^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(3[0-2]|[1-2][0-9]|[0-9]))$
- gatewayстрока
Обязательный параметр
IP-адрес шлюза по умолчанию.
Должен находится в подсети, указанной в параметре
address
.Шаблон:
^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$
- nameserversобъект
Обязательный параметр
- addressesмассив строк
Список DNS-серверов.
Пример:
addresses: - 8.8.8.8 - 8.8.4.4
Шаблон:
^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$
- searchмассив строк
Список доменов для поиска на указанных DNS-серверах.
Пример:
search: - tech.lan
- addressesмассив строк
- addressстрока
- memoryцелочисленный
Обязательный параметр
Количество памяти (в мегабайтах), выделенных VirtualMachine.
Пример:
memory: 8192
- numCPUsцелочисленный
Обязательный параметр
Количество виртуальных процессорных ядер, выделяемых VirtualMachine.
Пример:
numCPUs: 2
- resourcePoolстрока
Путь до Resource Pool, в котором будут созданные склонированные виртуальные машины.
Указывается относительно зоны (vSphere Cluster).
Пример:
resourcePool: rp-2012
- rootDiskSizeцелочисленный
Размер (в гигабайтах) корневого диска в VirtualMachine.
Если в template указан диск меньшего размера, то автоматически произойдёт его расширение.
Пример:
rootDiskSize: 20
- runtimeOptionsобъект
Дополнительные (опциональные) параметры виртуальных машин.
- cpuLimitцелочисленный
Верхний лимит (в MHz) потребляемой частоты процессоров для создаваемых виртуальных машин.
- cpuReservationцелочисленный
Величина зарезервированной для виртуальной машины частоты CPU (в MHz).
- целочисленный
Относительная величина CPU Shares для создаваемых виртуальных машин.
- memoryLimitцелочисленный
Верхний лимит (в мегабайтах) потребляемой памяти для создаваемых виртуальных машин.
- memoryReservationцелочисленный
Процент зарезервированной для виртуальной машины памяти в кластере. В процентах относительно
.spec.memory
.Допустимые значения:
0 <= X <= 100
- целочисленный
Относительная величина Memory Shares для создаваемых виртуальных машин.
Допустимые значения:
0 <= X <= 100
- nestedHardwareVirtualizationбулевый
Включение Hardware Assisted Virtualization на созданных виртуальных машинах.
- cpuLimitцелочисленный
- templateстрока
Обязательный параметр
Путь до VirtualMachine Template, который будет склонирован для создания новой VirtualMachine.
Пример:
template: dev/golden_image
- additionalNetworksмассив строк
- replicasцелочисленный
Обязательный параметр
Количество создаваемых master-узлов.
Допустимые значения:
1 <= X
- zonesмассив строк
Список зон, в которых допустимо создавать узлы.
- instanceClassобъект
- nodeGroupsмассив объектов
Массив дополнительных NodeGroup для создания статичных узлов (например, для выделенных frontend-узлов или шлюзов).
- instanceClassобъект
Обязательный параметр
Частичное содержимое полей VsphereInstanceClass.
- additionalNetworksмассив строк
Список путей до сетей, которые будут подключены к виртуальной машине.
Указывается относительно vSphere datacenter.
Пример:
additionalNetworks: - DEVOPS_32 - DEVOPS_50
- datastoreстрока
Обязательный параметр
Путь до Datastore, на котором будут созданы склонированные виртуальные машины.
Указывается относительно vSphere datacenter.
Пример:
datastore: lun-1201
- mainNetworkстрока
Обязательный параметр
Путь до сети, которая будет подключена к виртуальной машине как основная (шлюз по умолчанию).
Указывается относительно vSphere datacenter.
Пример:
mainNetwork: k8s-msk-178
- mainNetworkIPAddressesмассив объектов
Cписок статических IP-адресов (с CIDR префиксом), назначаемых (по-очереди) master-узлам в основной сети (параметр
mainNetwork
).По умолчанию включен DHCP-клиент.
Пример:
mainNetworkIPAddresses: - address: 10.1.14.20/24 gateway: 10.1.14.254 nameservers: addresses: - 8.8.8.8 - 8.8.4.4
- addressстрока
Обязательный параметр
IP-адрес с CIDR префиксом.
Шаблон:
^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(3[0-2]|[1-2][0-9]|[0-9]))$
- gatewayстрока
Обязательный параметр
IP-адрес шлюза по умолчанию.
Должен находится в подсети, указанной в параметре
address
.Шаблон:
^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$
- nameserversобъект
Обязательный параметр
- addressesмассив строк
Список DNS-серверов.
Пример:
addresses: - 8.8.8.8 - 8.8.4.4
Шаблон:
^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$
- searchмассив строк
Список доменов для поиска на указанных DNS-серверах.
Пример:
search: - tech.lan
- addressesмассив строк
- addressстрока
- memoryцелочисленный
Обязательный параметр
Количество памяти (в мегабайтах), выделенных VirtualMachine.
Пример:
memory: 8192
- numCPUsцелочисленный
Обязательный параметр
Количество виртуальных процессорных ядер, выделяемых VirtualMachine.
Пример:
numCPUs: 2
- resourcePoolстрока
Путь до Resource Pool, в котором будут созданные склонированные виртуальные машины.
Указывается относительно зоны (vSphere Cluster).
Пример:
resourcePool: rp-2012
- rootDiskSizeцелочисленный
Размер (в гигабайтах) корневого диска в VirtualMachine.
Если в template указан диск меньшего размера, то автоматически произойдёт его расширение.
Пример:
rootDiskSize: 20
- runtimeOptionsобъект
Дополнительные (опциональные) параметры виртуальных машин.
- cpuLimitцелочисленный
Верхний лимит (в MHz) потребляемой частоты процессоров для создаваемых виртуальных машин.
- cpuReservationцелочисленный
Величина зарезервированной для виртуальной машины частоты CPU (в MHz).
- целочисленный
Относительная величина CPU Shares для создаваемых виртуальных машин.
- memoryLimitцелочисленный
Верхний лимит (в мегабайтах) потребляемой памяти для создаваемых виртуальных машин.
- memoryReservationцелочисленный
Процент зарезервированной для виртуальной машины памяти в кластере. В процентах относительно
.spec.memory
.Допустимые значения:
0 <= X <= 100
- целочисленный
Относительная величина Memory Shares для создаваемых виртуальных машин.
Допустимые значения:
0 <= X <= 100
- nestedHardwareVirtualizationбулевый
Включение Hardware Assisted Virtualization на созданных виртуальных машинах.
- cpuLimitцелочисленный
- templateстрока
Обязательный параметр
Путь до VirtualMachine Template, который будет склонирован для создания новой VirtualMachine.
Пример:
template: dev/golden_image
- additionalNetworksмассив строк
- nameстрока
Обязательный параметр
Имя NodeGroup, будет использоваться для генерации имен узлов.
- nodeTemplate
Настройки Node-объектов в Kubernetes, которые будут добавлены после регистрации узлов.
- annotationsобъект
Аналогично стандартному полю
metadata.annotations
.Пример:
annotations: ai.fleet.com/discombobulate: 'true'
- labelsобъект
Список лейблов, которые будут прикреплены ко всем ресурсам кластера (если они это поддерживают).
Аналогично стандартному полю
metadata.labels
.Пример:
labels: environment: production app: warp-drive-ai
- taintsмассив объектов
Аналогично полю
.spec.taints
из объекта Node.Внимание! Доступны только поля
effect
,key
,values
.Пример:
taints: - effect: NoExecute key: ship-class value: frigate
- effectстрока
Допустимые значения:
NoSchedule
,PreferNoSchedule
,NoExecute
- keyстрока
- valueстрока
- effectстрока
- annotationsобъект
- replicasцелочисленный
Обязательный параметр
Количество узлов.
- zonesмассив строк
Список зон, в которых допустимо создавать узлы.
- instanceClassобъект
- nsxtобъект
Поддержка cloud controller manager’ом Load Balancer’ов в Vsphere через NSX-T.
- defaultIpPoolNameстрока
Обязательный параметр
Имя пула IP-адресов по умолчанию, который используется, если в SVC не установлена аннотация
loadbalancer.vmware.io/class
.Пример:
defaultIpPoolName: pool1
- defaultTcpAppProfileNameстрока
Имя профиля по умолчанию, используемого для TCP соединений в NSX-T.
По умолчанию:
"default-tcp-lb-app-profile"
Примеры:
defaultTcpAppProfileName: default-tcp-lb-app-profile
defaultTcpAppProfileName: tcp-profile1
- defaultUdpAppProfileNameстрока
Имя профиля по умолчанию, используемого для UDP соединений в NSX-T.
По умолчанию:
"default-udp-lb-app-profile"
Примеры:
defaultUdpAppProfileName: default-udp-lb-app-profile
defaultUdpAppProfileName: udp-profile1
- hostстрока
Обязательный параметр
Адрес NSX-T.
Пример:
host: 1.2.3.4
- insecureFlagбулевый
Должен быть установлен в
true
если NSX-T использует самоподписанный сертификат.Примеры:
insecureFlag: true
insecureFlag: false
- loadBalancerClassмассив
Дополнительная секция, определяющая Load Balancer Classes (чтобы использовать Class, установите аннотацию
loadbalancer.vmware.io/class: <class name>
на SVC).Примеры:
loadBalancerClass: []
loadBalancerClass: name: LBC1 ipPoolName: pool2
loadBalancerClass: name: LBC1 ipPoolName: pool2 tcpAppProfileName: profile2 udpAppProfileName: profile3
- ipPoolNameстрока
Обязательный параметр
Имя пула IP-адресов.
- nameстрока
Обязательный параметр
Имя Load Balancer Class для установки аннотации
loadbalancer.vmware.io/class: <class name>
в SVC. - tcpAppProfileNameстрока
Имя профиля по умолчанию, используемого для TCP соединений.
По умолчанию:
"defaultTcpAppProfileName"
- udpAppProfileNameстрока
Имя профиля по умолчанию, используемого для UDP соединений.
По умолчанию:
"defaultUdpAppProfileName"
- ipPoolNameстрока
- passwordстрока
Обязательный параметр
Пароль пользователя NSX-T.
Пример:
password: password
- sizeстрока
Размер сервиса LoadBalancer.
По умолчанию:
"MEDIUM"
Допустимые значения:
SMALL
,MEDIUM
,LARGE
,XLARGE
Пример:
size: SMALL
- tier1GatewayPathстрока
Обязательный параметр
Путь к политике NSX-T tier1 gateway.
Пример:
tier1GatewayPath: "/path/tier1"
- userстрока
Обязательный параметр
Имя пользователя NSX-T.
Пример:
user: user
- defaultIpPoolNameстрока
- providerобъект
Обязательный параметр
Параметры подключения к vCenter.
- insecureбулевый
Установите
true
, если vCenter использует самоподписанный сертификат.По умолчанию:
false
- passwordстрока
Обязательный параметр
Пароль.
- serverстрока
Обязательный параметр
Хост или IP-адрес vCenter сервера.
- usernameстрока
Обязательный параметр
Login ID.
- insecureбулевый
- regionстрока
Обязательный параметр
Тег, прикреплённый к vSphere Datacenter, в котором будут происходить все операции: заказ VirtualMachines, размещение их дисков на datastore, подключение к network.
- regionTagCategoryстрока
Обязательный параметр
Имя категории тегов, использующихся для идентификации региона (vSphere Datacenter).
По умолчанию:
"k8s-region"
- sshPublicKeyстрока
Обязательный параметр
Публичный ключ для доступа на узлы.
- useNestedResourcePoolбулевый
Создание вложенного пула (
true
) или использование основного пула (false
).По умолчанию:
true
- vmFolderPathстрока
Обязательный параметр
Путь до VirtualMachine Folder, в котором будут создаваться склонированные виртуальные машины.
Пример:
vmFolderPath: dev/test
- zoneTagCategoryстрока
Обязательный параметр
Имя категории тегов, использующихся для идентификации зоны (vSphere Cluster).
По умолчанию:
"k8s-zone"
- zonesмассив строк
Обязательный параметр
Глобальное ограничение набора зон, с которыми работает данный cloud-провайдер.