Если control plane кластера размещен на виртуальных машинах или bare-metal-серверах, cloud-провайдер использует настройки модуля
cloud-provider-vsphere
в конфигурации Deckhouse. Иначе, если control plane кластера размещен в облаке, cloud-провайдер использует структуру VsphereClusterConfiguration для настройки.Дополнительная информация о Vsphere Cloud Load Balancers.
VsphereClusterConfiguration
Version: deckhouse.io/v1
Описывает конфигурацию облачного кластера в vSphere.
Используется облачным провайдером, если управляющий слой (control plane) кластера размещен в облаке.
Выполните следующую команду, чтобы изменить конфигурацию в работающем кластере:
1kubectl -n d8-system exec -ti svc/deckhouse-leader -c deckhouse -- deckhouse-controller edit provider-cluster-configuration
После изменения параметров узлов необходимо выполнить команду dhctl converge, чтобы изменения вступили в силу.
Пример:
1apiVersion: deckhouse.io/v1
2kind: VsphereClusterConfiguration
3sshPublicKey: "<SSH_PUBLIC_KEY>"
4layout: Standard
5vmFolderPath: folder/prefix
6regionTagCategory: k8s-region
7zoneTagCategory: k8s-zone
8region: region2
9zones:
10- region2-a
11externalNetworkNames:
12- net3-k8s
13internalNetworkNames:
14- K8S_3
15internalNetworkCIDR: 172.16.2.0/24
16baseResourcePool: kubernetes/cloud
17masterNodeGroup:
18 replicas: 1
19 instanceClass:
20 numCPUs: 4
21 memory: 8192
22 template: Templates/ubuntu-focal-20.04
23 mainNetwork: net3-k8s
24 additionalNetworks:
25 - K8S_3
26 datastore: lun10
27 rootDiskSize: 50
28 runtimeOptions:
29 nestedHardwareVirtualization: false
30nodeGroups:
31- name: worker
32 replicas: 1
33 zones:
34 - ru-central1-a
35 instanceClass:
36 numCPUs: 4
37 memory: 8192
38 template: Templates/ubuntu-focal-20.04
39 datastore: lun10
40 mainNetwork: net3-k8s
41provider:
42 server: "<SERVER>"
43 username: "<USERNAME>"
44 password: "<PASSWORD>"
45 insecure: true
- строка
Подсеть для 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]))$
- строка
Обязательный параметр
Название схемы размещения.
Подробнее о возможных схемах размещения провайдера.
- объект
Обязательный параметр
Спецификация для описания NodeGroup master-узлов.
Внимание! После изменения параметров секции
masterNodeGroup
необходимо выполнить командуdhctl converge
, чтобы изменения вступили в силу.- массив объектов
Cписок статических IP-адресов (с CIDR-префиксом), назначаемых (по очереди) узлам в основной сети (параметр
mainNetwork
).По умолчанию включен DHCP-клиент.
Пример:
1mainNetworkIPAddresses: 2- address: 10.1.14.20/24 3 gateway: 10.1.14.254 4 nameservers: 5 addresses: 6 - 8.8.8.8 7 - 8.8.4.4
- массив строк
Список DNS-серверов.
Пример:
1addresses: 2- 8.8.8.8 3- 8.8.4.4
- объект
Дополнительные (опциональные) параметры виртуальных машин.
- целочисленный
Относительная величина CPU Shares для создаваемых виртуальных машин.
- целочисленный
Относительная величина Memory Shares для создаваемых виртуальных машин.
Допустимые значения:
0 <= X <= 100
- булевый
Включение Hardware Assisted Virtualization на созданных виртуальных машинах.
- массив объектов
Массив дополнительных NodeGroup для создания статических узлов (например, для выделенных frontend-узлов или шлюзов).
- массив объектов
Cписок статических IP-адресов (с CIDR-префиксом), назначаемых (по очереди) узлам в основной сети (параметр
mainNetwork
).По умолчанию включен DHCP-клиент.
Пример:
1mainNetworkIPAddresses: 2- address: 10.1.14.20/24 3 gateway: 10.1.14.254 4 nameservers: 5 addresses: 6 - 8.8.8.8 7 - 8.8.4.4
- массив строк
Список DNS-серверов.
Пример:
1addresses: 2- 8.8.8.8 3- 8.8.4.4
- объект
Дополнительные (опциональные) параметры виртуальных машин.
- целочисленный
Относительная величина CPU Shares для создаваемых виртуальных машин.
- целочисленный
Относительная величина Memory Shares для создаваемых виртуальных машин.
Допустимые значения:
0 <= X <= 100
- булевый
Включение Hardware Assisted Virtualization на созданных виртуальных машинах.
Настройки Node-объектов в Kubernetes, которые будут добавлены после регистрации узлов.
- объект
Аналогично стандартному полю
metadata.annotations
.Пример:
1annotations: 2 ai.fleet.com/discombobulate: 'true'
- объект
Список лейблов, которые будут прикреплены ко всем ресурсам кластера (если они это поддерживают).
Аналогично стандартному полю
metadata.labels
.Пример:
1labels: 2 environment: production 3 app: warp-drive-ai
- массив объектов
Аналогично полю
.spec.taints
из объекта Node.Внимание! Доступны только поля
effect
,key
,values
.Пример:
1taints: 2- effect: NoExecute 3 key: ship-class 4 value: frigate
- объект
Поддержка cloud controller manager’ом балансировщиков (LoadBalancer) в Vsphere через NSX-T.
- массив
Дополнительная секция, определяющая классы балансировщика (LoadBalancer Class) (чтобы использовать класс, установите аннотацию
loadbalancer.vmware.io/class: <ИМЯ КЛАССА>
на SVC).Примеры:
1loadBalancerClass: []
1loadBalancerClass: 2 name: LBC1 3 ipPoolName: pool2
1loadBalancerClass: 2 name: LBC1 3 ipPoolName: pool2 4 tcpAppProfileName: profile2 5 udpAppProfileName: profile3