Если control plane кластера размещен на виртуальных машинах или bare-metal-серверах, cloud-провайдер использует настройки модуля
cloud-provider-vcd
в конфигурации Deckhouse. Иначе, если control plane кластера размещен в облаке, cloud-провайдер использует структуру VCDClusterConfiguration для настройки.
VCDClusterConfiguration
Version: deckhouse.io/v1
Describes the configuration of a cloud cluster in VCD.
Used by the cloud provider if a cluster’s control plane is hosted in the cloud.
Run the following command to change the configuration in a running cluster:
kubectl -n d8-system exec -ti deploy/deckhouse -- deckhouse-controller edit provider-cluster-configuration
Пример:
apiVersion: deckhouse.io/v1
kind: VCDClusterConfiguration
sshPublicKey: "<SSH_PUBLIC_KEY>"
organization: My_Org
virtualDataCenter: My_Org
virtualApplicationName: Cloud
mainNetwork: internal
layout: Standard
internalNetworkCIDR: 172.16.2.0/24
masterNodeGroup:
replicas: 1
instanceClass:
template: Templates/ubuntu-focal-20.04
sizingPolicy: 4cpu8ram
rootDiskSizeGb: 20
etcdDiskSizeGb: 20
storageProfile: nvme
nodeGroups:
- name: worker
replicas: 1
instanceClass:
template: Templates/ubuntu-focal-20.04
sizingPolicy: 16cpu32ram
storageProfile: ssd
provider:
server: "<SERVER>"
username: "<USERNAME>"
password: "<PASSWORD>"
insecure: true
- apiVersionстрока
Обязательный параметр
Допустимые значения:
deckhouse.io/v1
- internalNetworkCIDRстрока
Subnet for master nodes in the internal network.
Addresses are allocated starting with the tenth address. E.g., if you have the
192.168.199.0/24
subnet, addresses will be allocated starting with192.168.199.10
.Шаблон:
^(([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]))$
- kindстрока
Обязательный параметр
Допустимые значения:
VCDClusterConfiguration
- layoutстрока
Обязательный параметр
The way resources are located in the cloud.
Read more about possible provider layouts.
- mainNetworkстрока
Обязательный параметр
Path to the network that VirtualMachines’ primary NICs will connect to (default gateway).
Пример:
mainNetwork: internal
- masterNodeGroupобъект
Обязательный параметр
The definition of the master’s NodeGroup.
Caution! After changing the parameters of the section, you need to run
dhctl converge
for the changes to take effect.- masterNodeGroup.instanceClassобъект
Обязательный параметр
Partial contents of the fields of the VCDInstanceClass.
- masterNodeGroup.instanceClass.etcdDiskSizeGbцелочисленный
Etcd disk size in gigabytes.
По умолчанию:
10
Пример:
etcdDiskSizeGb: 10
- masterNodeGroup.instanceClass.mainNetworkIPAddressesмассив строк
A list of static IP addresses (with a CIDR prefix) sequentially allocated to nodes in the
mainNetwork
.By default, the DHCP client is enabled.
Пример:
mainNetworkIPAddresses: - 10.1.14.20 - 10.1.4.21
- Элемент массивастрока
An IP address with a CIDR prefix.
Шаблон:
^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$
- Элемент массивастрока
- masterNodeGroup.instanceClass.placementPolicyстрока
PlacementPolicy is the placement policy to be used on this machine. If no placement policy is specified, default placement policy will be used to create the nodes.
Пример:
placementPolicy: Hypervisor1
- masterNodeGroup.instanceClass.rootDiskSizeGbцелочисленный
root disk size in gigabytes.
По умолчанию:
20
Пример:
rootDiskSizeGb: 20
- masterNodeGroup.instanceClass.sizingPolicyстрока
Обязательный параметр
SizingPolicy is the sizing policy to be used on this machine. If no sizing policy is specified, default sizing policy will be used to create the nodes.
Пример:
sizingPolicy: 4Cpu8Memory
- masterNodeGroup.instanceClass.storageProfileстрока
Обязательный параметр
StorageProfile is the storage profile to be used on this machine.
Пример:
storageProfile: ssd
- masterNodeGroup.instanceClass.templateстрока
Обязательный параметр
Path of the template OVA that is to be used. Consists of catalog and template path.
Пример:
template: Linux/ubuntu2204-cloud-ova
- masterNodeGroup.instanceClass.etcdDiskSizeGbцелочисленный
- masterNodeGroup.replicasцелочисленный
Обязательный параметр
The number of master nodes to create. It is important to have an odd number of masters to ensure a quorum.
Допустимые значения:
1 <= X
- masterNodeGroup.instanceClassобъект
- nodeGroupsмассив объектов
An array of additional NodeGroups for creating static nodes (e.g., for dedicated front nodes or gateways).
- nodeGroups.instanceClassобъект
Обязательный параметр
Partial contents of the fields of the VCDInstanceClass.
- nodeGroups.instanceClass.mainNetworkIPAddressesмассив строк
A list of static IP addresses (with a CIDR prefix) sequentially allocated to nodes in the
mainNetwork
.By default, the DHCP client is enabled.
Пример:
mainNetworkIPAddresses: - 10.1.14.20 - 10.1.4.21
- Элемент массивастрока
An IP address with a CIDR prefix.
Шаблон:
^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$
- Элемент массивастрока
- nodeGroups.instanceClass.placementPolicyстрока
PlacementPolicy is the placement policy to be used on this machine. If no placement policy is specified, default placement policy will be used to create the nodes.
Пример:
placementPolicy: Hypervisor1
- nodeGroups.instanceClass.rootDiskSizeGbцелочисленный
root disk size in gigabytes.
По умолчанию:
20
Пример:
rootDiskSizeGb: 20
- nodeGroups.instanceClass.sizingPolicyстрока
Обязательный параметр
SizingPolicy is the sizing policy to be used on this machine. If no sizing policy is specified, default sizing policy will be used to create the nodes.
Пример:
sizingPolicy: 4Cpu8Memory
- nodeGroups.instanceClass.storageProfileстрока
Обязательный параметр
StorageProfile is the storage profile to be used on this machine.
Пример:
storageProfile: ssd
- nodeGroups.instanceClass.templateстрока
Обязательный параметр
Path of the template OVA that is to be used. Consists of catalog and template path.
Пример:
template: Linux/ubuntu2204-cloud-ova
- nodeGroups.instanceClass.mainNetworkIPAddressesмассив строк
- nodeGroups.nameстрока
Обязательный параметр
The name of the NodeGroup to use for generating node names.
- nodeGroups.nodeTemplate
Parameters of Node objects in Kubernetes to add after registering the node.
- nodeGroups.nodeTemplate.annotationsобъект
The same as the
metadata.annotations
standard field.Пример:
annotations: ai.fleet.com/discombobulate: 'true'
- nodeGroups.nodeTemplate.labelsобъект
A list of labels to attach to cluster resources.
The same as the
metadata.labels
standard field.Пример:
labels: environment: production app: warp-drive-ai
- nodeGroups.nodeTemplate.taintsмассив объектов
The same as the
.spec.taints
field of the Node object.Caution! Only the
effect
,key
,values
fields are available.Пример:
taints: - effect: NoExecute key: ship-class value: frigate
- nodeGroups.nodeTemplate.taints.effectстрока
Допустимые значения:
NoSchedule
,PreferNoSchedule
,NoExecute
- nodeGroups.nodeTemplate.taints.keyстрока
- nodeGroups.nodeTemplate.taints.valueстрока
- nodeGroups.nodeTemplate.taints.effectстрока
- nodeGroups.nodeTemplate.annotationsобъект
- nodeGroups.replicasцелочисленный
Обязательный параметр
The number of nodes to create.
- nodeGroups.instanceClassобъект
- organizationстрока
Обязательный параметр
Vcloud Director Organization name.
- providerобъект
Обязательный параметр
Parameters for connecting to the VCD.
- provider.insecureбулевый
Set to
true
if VCD has a self-signed certificate.По умолчанию:
false
- provider.passwordстрока
Обязательный параметр
The user’s password.
- provider.serverстрока
Обязательный параметр
The host or the IP address of the VCD server.
- provider.usernameстрока
Обязательный параметр
The login ID.
- provider.insecureбулевый
- sshPublicKeyстрока
Обязательный параметр
A public key for accessing nodes.
- virtualApplicationNameстрока
Обязательный параметр
Vcloud Director Virtual Application name (belongs to Virtual Data Center).
Шаблон:
^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
- virtualDataCenterстрока
Обязательный параметр
Vcloud Director Virtual Data Center name (belongs to Organization).