Instance
Scope: Cluster
Version: v1alpha1
Описывает независимый от реализации объект эфемерной машины.
NodeGroup
Scope: Cluster
Описывает runtime-параметры группы узлов.
Пример:
# NodeGroup for cloud nodes in AWS.
apiVersion: deckhouse.io/v1
kind: NodeGroup
metadata:
name: test
spec:
nodeType: CloudEphemeral
cloudInstances:
zones:
- eu-west-1a
- eu-west-1b
minPerZone: 1
maxPerZone: 2
classReference:
kind: AWSInstanceClass
name: test
nodeTemplate:
labels:
tier: test
---
# NodeGroup for static nodes on bare metal servers (or VMs).
apiVersion: deckhouse.io/v1
kind: NodeGroup
metadata:
name: worker
spec:
nodeType: Static
- metadataобъект
- metadata.nameстрока
Шаблон:
^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
Максимальная длина:
42
- metadata.nameстрока
- specобъект
Обязательный параметр
- spec.chaosобъект
Настройки Chaos Monkey.
Пример:
chaos: mode: DrainAndDelete period: 24h
- spec.chaos.modeстрока
Режим работы Chaos Monkey:
DrainAndDelete
— при срабатывании делает узлу drain, затем удаляет его.Disabled
— не трогает данную NodeGroup.
По умолчанию:
"Disabled"
Допустимые значения:
Disabled
,DrainAndDelete
- spec.chaos.periodстрока
Интервал времени срабатывания Chaos Monkey.
Задается в виде строки с указанием часов и минут: 30m, 1h, 2h30m, 24h.
По умолчанию:
"6h"
Шаблон:
^([0-9]+h([0-9]+m)?|[0-9]+m)$
- spec.chaos.modeстрока
- spec.cloudInstancesобъект
Параметры заказа облачных виртуальных машин.
Внимание! Допустимо использовать только совместно с
nodeType: CloudEphemeral
.- spec.cloudInstances.classReferenceобъект
Обязательный параметр
Ссылка на объект
InstanceClass
. Уникален для каждого модуляcloud-provider-*
.- spec.cloudInstances.classReference.kindстрока
Тип объекта (например,
OpenStackInstanceClass
). Тип объекта указан в документации соответствующего модуля облачного провайдера.Допустимые значения:
OpenStackInstanceClass
,GCPInstanceClass
,VsphereInstanceClass
,AWSInstanceClass
,YandexInstanceClass
,AzureInstanceClass
,VCDInstanceClass
- spec.cloudInstances.classReference.nameстрока
Имя нужного
InstanceClass
-объекта (например,finland-medium
).
- spec.cloudInstances.classReference.kindстрока
- spec.cloudInstances.maxPerZoneцелочисленный
Обязательный параметр
Максимальное количество инстансов в зоне. Проставляется как верхняя граница в cluster-autoscaler.
Допустимые значения:
0 <= X
- spec.cloudInstances.maxSurgePerZoneцелочисленный
Количество одновременно создаваемых инстансов при scale-up.
По умолчанию:
1
Допустимые значения:
0 <= X
- целочисленный
Недоступное количество инстансов при RollingUpdate’е.
По умолчанию:
0
Допустимые значения:
0 <= X
- spec.cloudInstances.minPerZoneцелочисленный
Обязательный параметр
Минимальное количество инстансов в зоне.
Проставляется в объект
MachineDeployment
и в качестве нижней границы в cluster autoscaler.Допустимые значения:
0 <= X
- spec.cloudInstances.priorityцелочисленный
Приоритет группы узлов.
При масштабировании кластера cluster autoscaler будет выбирать сначала группы узлов с установленным бОльшим приоритетом. Если существует несколько групп узлов с одинаковым приоритетом, группа будет выбрана из них случайным образом.
Использование приоритетов может быть удобно, например, для предпочтения заказа более дешевых узлов (например, spot-инстансов) перед более дорогими.
- spec.cloudInstances.quickShutdownбулевый
Снижает время drain’а CloudEphemeral-машин до 5 минут.
- spec.cloudInstances.standbyстрока или число
Количество резервных (подогретых) узлов в этой
NodeGroup
во всех зонах.Резервный узел — это узел кластера, на котором резервируются ресурсы, доступные в любой момент для масштабирования. Наличие такого узла позволяет cluster autoscaler’у не ждать инициализации узла (которая может занимать несколько минут), а сразу размещать на нем нагрузку.
Значение может быть абсолютным (например,
2
) или процентом желаемых узлов (например,10%
). Если указан процент, абсолютное значение рассчитывается исходя из процента от максимального количества узлов (параметр maxPerZone), округленного в меньшую сторону, но не менее одного.Шаблон:
^[0-9]+%?$
- spec.cloudInstances.standbyHolderобъект
Объем резервируемых ресурсов.
Используется для определения необходимости заказа резервных узлов.
- spec.cloudInstances.standbyHolder.notHeldResourcesПараметр устарелобъект
Устарело: параметр больше не используется. Используйте параметр overprovisioningRate.
Резервируемые ресурсы.
- spec.cloudInstances.standbyHolder.notHeldResources.cpuстрока или число
Количество CPU.
Значение может быть абсолютным (например,
1
) или в millicore-формате (например,1500m
).Шаблон:
^[0-9]+m?$
- spec.cloudInstances.standbyHolder.notHeldResources.memoryстрока или число
Количество памяти.
Значение может быть абсолютным в байтах (например,
128974848
) или в Kubernetes-формате с суффиксами:G
,Gi
,M
,Mi
(например,750Mi
).Шаблон:
^[0-9]+(\.[0-9]+)?(E|P|T|G|M|K|Ei|Pi|Ti|Gi|Mi|Ki)?$
- spec.cloudInstances.standbyHolder.notHeldResources.cpuстрока или число
- spec.cloudInstances.standbyHolder.overprovisioningRateцелочисленный
Процент резервируемых ресурсов, рассчитываемый от ресурсов узла в
NodeGroup
.По умолчанию:
50
Допустимые значения:
1 <= X <= 80
- spec.cloudInstances.standbyHolder.notHeldResourcesПараметр устарелобъект
- spec.cloudInstances.zonesмассив строк
Переопределение перечня зон, в которых создаются инстансы.
Значение по умолчанию зависит от выбранного облачного провайдера и обычно соответствует всем зонам используемого региона.
Пример:
zones: - Helsinki - Espoo - Tampere
- spec.cloudInstances.classReferenceобъект
- spec.criобъект
Параметры container runtime.
- spec.cri.containerdобъект
Параметры работы containerd.
При настройке этих параметров
cri.type
должен бытьContainerd
.- spec.cri.containerd.maxConcurrentDownloadsцелочисленный
Максимальное количество параллельных потоков загрузки для каждой операции pull.
По умолчанию:
3
- spec.cri.containerd.maxConcurrentDownloadsцелочисленный
- spec.cri.dockerПараметр устарелобъект
Параметры настройки Docker.
- spec.cri.docker.manageбулевый
Автоматическое управление версией и параметрами Docker.
По умолчанию:
true
- spec.cri.docker.maxConcurrentDownloadsцелочисленный
Максимальное количество потоков одновременного скачивания Docker-образов.
По умолчанию:
3
- spec.cri.docker.manageбулевый
- spec.cri.notManagedобъект
Настройки для CRI, установленных на узлах вручную.
- spec.cri.notManaged.criSocketPathстрока
Путь к сокету CRI.
- spec.cri.notManaged.criSocketPathстрока
- spec.cri.typeстрока
Тип container runtime.
Если не указан, используется значение
defaultCRI
из первичной конфигурации кластера (параметрcluster-configuration.yaml
Secret’аd8-cluster-configuration
в пространстве именkube-system
), которая создается при установке.Допустимые значения:
Docker
,Containerd
,NotManaged
- spec.cri.containerdобъект
- spec.disruptionsобъект
Параметры обновлений, приводящих к возможному простою.
Пример:
disruptions: approvalMode: Automatic automatic: drainBeforeApproval: false windows: - from: '06:00' to: '08:00' days: - Tue - Sun
- spec.disruptions.approvalModeстрока
Режим выдачи разрешения на disruptive-обновление (обновление, требующее прерывание работы узла):
Manual
— отключить автоматическую выдачу разрешений на disruptive-обновление. Если потребуется disruptive-обновление, загорится специальный алерт. Внимание! Для группы узловmaster
режим выдачи разрешения всегда должен бытьManual
, чтобы избежать проблем при drain’е узла.Automatic
— автоматически выдавать разрешения на disruptive-обновление.RollingUpdate
— в этом режиме будет создан новый узел с обновленными настройками, а старый узел будет удален. Разрешено только для облачных узлов.
Когда не используется режим
RollingUpdate
, при обновлении узел освобождается от нагрузки (drain), после чего обновляется (перезагружается) и вводится в работу. Обратите внимание, что в этом случае в кластере должно быть место для размещения нагрузки на время, пока обновляемый узел недоступен. В режимеRollingUpdate
узел заменяется на обновленный, то есть на время обновления в кластере появляется дополнительный узел. В облачной инфраструктуре режимRollingUpdate
удобен, например, если в кластере нет ресурсов для временного размещения нагрузки с обновляемого узла.По умолчанию:
"Automatic"
Допустимые значения:
Manual
,Automatic
,RollingUpdate
- spec.disruptions.automaticобъект
Дополнительные параметры для режима
Automatic
.- spec.disruptions.automatic.drainBeforeApprovalбулевый
Выгон (draining) подов с узла перед выдачей разрешения на disruption.
Внимание! Данная настройка игнорируется (узлам будет выдано разрешение без предварительного выгона подов с узлов):
- для nodeGroup
master
с единственным узлом; - для выделенного под запуск Deckhouse узла, если этот узел в группе узлов единственно рабочий (Ready).
По умолчанию:
true
- для nodeGroup
- spec.disruptions.automatic.windowsмассив объектов
Список окон disruption-обновлений узлов.
- spec.disruptions.automatic.windows.daysмассив строк
Дни недели, в которые применяется окно обновлений.
Примеры:
days: Mon
days: Wed
- Элемент массивастрока
День недели.
Допустимые значения:
Mon
,Tue
,Wed
,Thu
,Fri
,Sat
,Sun
- Элемент массивастрока
- spec.disruptions.automatic.windows.fromстрока
Обязательный параметр
Время начала окна обновления (в часовом поясе UTC).
Шаблон:
^(?:\d|[01]\d|2[0-3]):[0-5]\d$
Пример:
from: '13:00'
- spec.disruptions.automatic.windows.toстрока
Обязательный параметр
Время окончания окна обновления (в часовом поясе UTC).
Шаблон:
^(?:\d|[01]\d|2[0-3]):[0-5]\d$
Пример:
to: '18:30'
- spec.disruptions.automatic.windows.daysмассив строк
- spec.disruptions.automatic.drainBeforeApprovalбулевый
- spec.disruptions.rollingUpdateобъект
Дополнительные параметры для режима
RollingUpdate
.- spec.disruptions.rollingUpdate.windowsмассив объектов
Список окон disruption-обновлений узлов.
- spec.disruptions.rollingUpdate.windows.daysмассив строк
Дни недели, в которые применяется окно обновлений.
Примеры:
days: Mon
days: Wed
- Элемент массивастрока
День недели.
Допустимые значения:
Mon
,Tue
,Wed
,Thu
,Fri
,Sat
,Sun
- Элемент массивастрока
- spec.disruptions.rollingUpdate.windows.fromстрока
Обязательный параметр
Время начала окна обновления (в часовом поясе UTC).
Шаблон:
^(?:\d|[01]\d|2[0-3]):[0-5]\d$
Пример:
from: '13:00'
- spec.disruptions.rollingUpdate.windows.toстрока
Обязательный параметр
Время окончания окна обновления (в часовом поясе UTC).
Шаблон:
^(?:\d|[01]\d|2[0-3]):[0-5]\d$
Пример:
to: '18:30'
- spec.disruptions.rollingUpdate.windows.daysмассив строк
- spec.disruptions.rollingUpdate.windowsмассив объектов
- spec.disruptions.approvalModeстрока
- spec.kubeletобъект
Параметры настройки kubelet.
- spec.kubelet.containerLogMaxFilesцелочисленный
Максимальное количество файлов журналов с учетом ротации.
По умолчанию:
4
Допустимые значения:
1 <= X <= 20
- spec.kubelet.containerLogMaxSizeстрока
Максимальный размер файла журнала до того, как он будет ротирован.
По умолчанию:
"50Mi"
Шаблон:
\d+[Ei|Pi|Ti|Gi|Mi|Ki|E|P|T|G|M|k|m]
- spec.kubelet.maxPodsцелочисленный
Максимальное количество подов на узлах данной
NodeGroup
.По умолчанию:
110
- spec.kubelet.resourceReservationобъект
Управление резервированием ресурсов для системных служб на узле.
Больше информации в документации Kubernetes.
- spec.kubelet.resourceReservation.modeстрока
Выбрать режим резервирования системных ресурсов:
Off
— отключить резервирование системных ресурсов.Auto
— автоматически подсчитать резервирование через алгоритм, основанный на размере узла.Static
— указать статические значения через параметрstatic
.
Обратите внимание, что Deckhouse не использует выделенную cgroup для резервирования ресурсов (флаг
-system-reserved-cgroup
не используется).По умолчанию:
"Auto"
- spec.kubelet.resourceReservation.staticобъект
Параметры резервирования ресурсов в режиме
Static
.- spec.kubelet.resourceReservation.static.cpuстрока или число
Шаблон:
\d+[m]
- spec.kubelet.resourceReservation.static.ephemeralStorageстрока или число
Шаблон:
\d+[Ei|Pi|Ti|Gi|Mi|Ki|E|P|T|G|M|k|m]
- spec.kubelet.resourceReservation.static.memoryстрока или число
Шаблон:
\d+[Ei|Pi|Ti|Gi|Mi|Ki|E|P|T|G|M|k|m]
- spec.kubelet.resourceReservation.static.cpuстрока или число
- spec.kubelet.resourceReservation.modeстрока
- spec.kubelet.rootDirстрока
Путь к каталогу для файлов kubelet (volume mounts и т. д.).
По умолчанию:
"/var/lib/kubelet"
- spec.kubelet.containerLogMaxFilesцелочисленный
- spec.nodeTemplateобъект
Настройки
Node
-объектов в Kubernetes, которые будут добавлены после регистрации узла.Пример:
nodeTemplate: labels: environment: production app: warp-drive-ai annotations: ai.fleet.com/discombobulate: 'true' taints: - effect: NoExecute key: ship-class value: frigate
- spec.nodeTemplate.annotationsобъект
Аналогично стандартному полю
metadata.annotations
.Пример:
annotations: ai.fleet.com/discombobulate: 'true'
- spec.nodeTemplate.labelsобъект
Аналогично стандартному полю
metadata.labels
.Пример:
labels: environment: production app: warp-drive-ai
- spec.nodeTemplate.taintsмассив объектов
Аналогично полю
.spec.taints
из объекта Node.Внимание! Доступны только поля
effect
,key
,value
.Пример:
taints: - effect: NoExecute key: ship-class value: frigate
- spec.nodeTemplate.taints.effectстрока
Допустимые значения:
NoSchedule
,PreferNoSchedule
,NoExecute
- spec.nodeTemplate.taints.keyстрока
- spec.nodeTemplate.taints.valueстрока
- spec.nodeTemplate.taints.effectстрока
- spec.nodeTemplate.annotationsобъект
- spec.nodeTypeстрока
Обязательный параметр
Тип узлов, которые представляет эта группа:
CloudEphemeral
— узлы для этой группы будут автоматически создаваться (и удаляться) в настроенном облачном провайдере;CloudPermanent
— узлы этой группы берутся изProviderClusterConfiguration
и создаются/удаляются через dhctl;CloudStatic
— узел, созданный вручную или любыми внешними инструментами, размещенный в том же облаке, с которым настроена интеграция у одного из облачных провайдеров. На таком узле работает CSI и такой узел управляется cloud-controller-manager’ом: объектNode
автоматически обогащается информацией о зоне и регионе по данным, полученным от облака; при удалении узла из облака, соответствующий ему объектNode
будет удален в Kubernetes;Static
— статический узел, размещенный на физическом сервере или виртуальной машине. Узел не управляется cloud-controller-manager’ом, даже если включен один из облачных провайдеров.
Допустимые значения:
CloudEphemeral
,CloudPermanent
,CloudStatic
,Static
- spec.operatingSystemобъект
Параметры операционной системы.
- spec.operatingSystem.manageKernelПараметр устарелбулевый
Этот параметр не используется. Раньше он включaл автоматическое управление ядром операционной системы.
По умолчанию:
true
- spec.operatingSystem.manageKernelПараметр устарелбулевый
- spec.staticInstancesобъект
Параметры настройки машин статических узлов кластера.
- spec.staticInstances.countцелочисленный
Количество виртуальных машин, которые нужно создать.
По умолчанию:
0
Допустимые значения:
0 <= X
- spec.staticInstances.labelSelectorобъект
Настройка фильтра меток (label) по ресурсам.
Если указаны одновременно
matchExpressions
иmatchLabels
, учитываются оба фильтра (операцияИ
).Пустое значение
labelSelector
соответствует всем объектам. Нулевое — никаким.- spec.staticInstances.labelSelector.matchExpressionsмассив объектов
Список фильтров на основе выражений.
Итоговый результат — результат пересечения множеств, определяемых всеми фильтрами в списке (операция
И
).A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
- spec.staticInstances.labelSelector.matchExpressions.keyстрока
Имя метки.
- spec.staticInstances.labelSelector.matchExpressions.operatorстрока
Оператор сравнения.
- spec.staticInstances.labelSelector.matchExpressions.valuesмассив строк
Значение метки.
- Элемент массивастрока
Шаблон:
[a-z0-9]([-a-z0-9]*[a-z0-9])?
Длина:
1..63
- Элемент массивастрока
- spec.staticInstances.labelSelector.matchExpressions.keyстрока
- spec.staticInstances.labelSelector.matchLabelsобъект
Фильтр на основе совпадения/несовпадения меток.
- spec.staticInstances.labelSelector.matchExpressionsмассив объектов
- spec.staticInstances.countцелочисленный
- spec.updateобъект
- spec.update.maxConcurrentстрока или число
Максимальное количество одновременно обновляемых узлов.
Можно указать число узлов или процент от общего количества узлов в данной группе.
По умолчанию:
1
Шаблон:
^[1-9][0-9]*%?$
- spec.update.maxConcurrentстрока или число
- spec.chaosобъект
Описывает runtime-параметры группы узлов.
- metadataобъект
- metadata.nameстрока
Шаблон:
^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
Максимальная длина:
42
- metadata.nameстрока
- specобъект
Обязательный параметр
- spec.chaosобъект
Настройки Chaos Monkey.
Пример:
chaos: mode: DrainAndDelete period: 24h
- spec.chaos.modeстрока
Режим работы Chaos Monkey:
DrainAndDelete
— при срабатывании делает узлу drain, затем удаляет его.Disabled
— не трогает данную NodeGroup.
По умолчанию:
"Disabled"
Допустимые значения:
Disabled
,DrainAndDelete
- spec.chaos.periodстрока
Интервал времени срабатывания Chaos Monkey.
Задается в виде строки с указанием часов и минут: 30m, 1h, 2h30m, 24h.
По умолчанию:
"6h"
Шаблон:
^[0-9]+[mh]{1}$
- spec.chaos.modeстрока
- spec.cloudInstancesобъект
Параметры заказа облачных виртуальных машин.
Внимание! Допустимо использовать только совместно с
nodeType: CloudEphemeral
.- spec.cloudInstances.classReferenceобъект
Обязательный параметр
Ссылка на объект
InstanceClass
. Уникален для каждого модуляcloud-provider-*
.- spec.cloudInstances.classReference.kindстрока
Тип объекта (например,
OpenStackInstanceClass
). Тип объекта указан в документации соответствующего модуля облачного провайдера.Допустимые значения:
OpenStackInstanceClass
,GCPInstanceClass
,VsphereInstanceClass
,AWSInstanceClass
,YandexInstanceClass
,AzureInstanceClass
,VCDInstanceClass
- spec.cloudInstances.classReference.nameстрока
Имя нужного
InstanceClass
-объекта (например,finland-medium
).
- spec.cloudInstances.classReference.kindстрока
- spec.cloudInstances.maxPerZoneцелочисленный
Обязательный параметр
Максимальное количество инстансов в зоне.
Проставляется как верхняя граница в cluster-autoscaler.
Допустимые значения:
0 <= X
- spec.cloudInstances.maxSurgePerZoneцелочисленный
Количество одновременно создаваемых инстансов при scale-up.
По умолчанию:
1
Допустимые значения:
0 <= X
- целочисленный
Недоступное количество инстансов при RollingUpdate’е.
По умолчанию:
0
Допустимые значения:
0 <= X
- spec.cloudInstances.minPerZoneцелочисленный
Обязательный параметр
Минимальное количество инстансов в зоне.
Проставляется в объект
MachineDeployment
и в качестве нижней границы в cluster autoscaler.При значении 0 для некоторых
InstanceClass
нужно задавать capacity. Более подробно можно узнать в описании нужныхInstanceClass
.Допустимые значения:
0 <= X
- spec.cloudInstances.standbyстрока или число
Количество резервных (подогретых) узлов в этой
NodeGroup
во всех зонах.Резервный узел — это узел кластера, на котором резервируются ресурсы, доступные в любой момент для масштабирования. Наличие такого узла позволяет cluster autoscaler’у не ждать инициализации узла (которая может занимать несколько минут), а сразу размещать на нем нагрузку.
Значение может быть абсолютным (например,
2
) или процентом желаемых узлов (например,10%
). Если указан процент, абсолютное значение рассчитывается исходя из процента от максимального количества узлов (параметр maxPerZone), округленного в меньшую сторону, но не менее одного.Шаблон:
^[0-9]+%?$
- spec.cloudInstances.standbyHolderобъект
Объем резервируемых ресурсов.
Используется для определения необходимости заказа резервных узлов.
- spec.cloudInstances.standbyHolder.notHeldResourcesобъект
Резервируемые ресурсы.
- spec.cloudInstances.standbyHolder.notHeldResources.cpuстрока или число
Количество CPU.
Значение может быть абсолютным (например,
1
) или в millicore-формате (например,1500m
).Шаблон:
^[0-9]+m?$
- spec.cloudInstances.standbyHolder.notHeldResources.memoryстрока или число
Количество памяти.
Значение может быть абсолютным в байтах (например,
128974848
) или в Kubernetes-формате с суффиксами:G
,Gi
,M
,Mi
(например,750Mi
).Шаблон:
^[0-9]+(\.[0-9]+)?(E|P|T|G|M|K|Ei|Pi|Ti|Gi|Mi|Ki)?$
- spec.cloudInstances.standbyHolder.notHeldResources.cpuстрока или число
- spec.cloudInstances.standbyHolder.notHeldResourcesобъект
- spec.cloudInstances.zonesмассив строк
Переопределение перечня зон, в которых создаются инстансы.
Значение по умолчанию зависит от выбранного облачного провайдера и обычно соответствует всем зонам используемого региона.
Пример:
zones: - Helsinki - Espoo - Tampere
- spec.cloudInstances.classReferenceобъект
- spec.criобъект
Параметры container runtime.
- spec.cri.containerdобъект
Параметры работы containerd.
При настройке этих параметров
cri.type
должен бытьContainerd
.- spec.cri.containerd.maxConcurrentDownloadsцелочисленный
Максимальное количество параллельных потоков загрузки для каждой операции pull.
По умолчанию:
3
- spec.cri.containerd.maxConcurrentDownloadsцелочисленный
- spec.cri.dockerобъект
Параметры настройки Docker.
Внимание!
Docker
считается устаревшим, не используйте его.- spec.cri.docker.manageбулевый
Автоматическое управление версией и параметрами Docker.
По умолчанию:
true
- spec.cri.docker.maxConcurrentDownloadsцелочисленный
Максимальное количество потоков одновременного скачивания Docker-образов.
По умолчанию:
3
- spec.cri.docker.manageбулевый
- spec.cri.notManagedобъект
Настройки для CRI, установленных на узлах вручную.
- spec.cri.notManaged.criSocketPathстрока
Путь к сокету CRI.
- spec.cri.notManaged.criSocketPathстрока
- spec.cri.typeстрока
Тип container runtime.
Если не указан, используется значение
defaultCRI
из первичной конфигурации кластера (параметрcluster-configuration.yaml
Secret’аd8-cluster-configuration
в пространстве именkube-system
), которая создается при установке.Допустимые значения:
Docker
,Containerd
,NotManaged
- spec.cri.containerdобъект
- spec.disruptionsобъект
Параметры обновлений, приводящих к возможному простою.
Пример:
disruptions: approvalMode: Automatic automatic: drainBeforeApproval: false windows: - from: '06:00' to: '08:00' days: - Tue - Sun
- spec.disruptions.approvalModeстрока
Режим выдачи разрешения на disruptive-обновление (обновление, требующее прерывание работы узла):
Manual
— отключить автоматическую выдачу разрешений на disruptive-обновление. Если потребуется disruptive-обновление, загорится специальный алерт. Внимание! Для группы узловmaster
режим выдачи разрешения всегда должен бытьManual
, чтобы избежать проблем при drain’е узла.Automatic
— автоматически выдавать разрешения на disruptive-обновление.RollingUpdate
— в этом режиме будет создан новый узел с обновленными настройками, а старый узел будет удален. Разрешено только для облачных узлов.
Когда не используется режим
RollingUpdate
, при обновлении узел освобождается от нагрузки (drain), после чего обновляется (перезагружается) и вводится в работу. Обратите внимание, что в этом случае в кластере должно быть место для размещения нагрузки на время, пока обновляемый узел недоступен. В режимеRollingUpdate
узел заменяется на обновленный, то есть на время обновления в кластере появляется дополнительный узел. В облачной инфраструктуре режимRollingUpdate
удобен, например, если в кластере нет ресурсов для временного размещения нагрузки с обновляемого узла.По умолчанию:
"Automatic"
Допустимые значения:
Manual
,Automatic
,RollingUpdate
- spec.disruptions.automaticобъект
Дополнительные параметры для режима
Automatic
.- spec.disruptions.automatic.drainBeforeApprovalбулевый
Выгон (draining) подов с узла перед выдачей разрешения на disruption.
Внимание! Данная настройка игнорируется (узлам будет выдано разрешение без предварительного выгона подов с узлов):
- для nodeGroup
master
с единственным узлом; - для выделенного под запуск Deckhouse узла, если этот узел в группе узлов единственно рабочий (Ready).
По умолчанию:
true
- для nodeGroup
- spec.disruptions.automatic.windowsмассив объектов
Список окон disruption-обновлений узлов.
- spec.disruptions.automatic.windows.daysмассив строк
Дни недели, в которые применяется окно обновлений.
Примеры:
days: Mon
days: Wed
- Элемент массивастрока
День недели.
Допустимые значения:
Mon
,Tue
,Wed
,Thu
,Fri
,Sat
,Sun
- Элемент массивастрока
- spec.disruptions.automatic.windows.fromстрока
Обязательный параметр
Время начала окна обновления (в часовом поясе UTC).
Шаблон:
^(?:\d|[01]\d|2[0-3]):[0-5]\d$
Пример:
from: '13:00'
- spec.disruptions.automatic.windows.toстрока
Обязательный параметр
Время окончания окна обновления (в часовом поясе UTC).
Шаблон:
^(?:\d|[01]\d|2[0-3]):[0-5]\d$
Пример:
to: '18:30'
- spec.disruptions.automatic.windows.daysмассив строк
- spec.disruptions.automatic.drainBeforeApprovalбулевый
- spec.disruptions.rollingUpdateобъект
Additional parameters for the
RollingUpdate
mode.- spec.disruptions.rollingUpdate.windowsмассив объектов
Time windows for node disruptive updates.
- spec.disruptions.rollingUpdate.windows.daysмассив строк
Days of the week when node could be updated.
Примеры:
days: Mon
days: Wed
- Элемент массивастрока
Day of the week.
Допустимые значения:
Mon
,Tue
,Wed
,Thu
,Fri
,Sat
,Sun
- Элемент массивастрока
- spec.disruptions.rollingUpdate.windows.fromстрока
Обязательный параметр
Start time of disruptive update window (UTC timezone).
Шаблон:
^(?:\d|[01]\d|2[0-3]):[0-5]\d$
Пример:
from: '13:00'
- spec.disruptions.rollingUpdate.windows.toстрока
Обязательный параметр
End time of disruptive update window (UTC timezone).
Шаблон:
^(?:\d|[01]\d|2[0-3]):[0-5]\d$
Пример:
to: '18:30'
- spec.disruptions.rollingUpdate.windows.daysмассив строк
- spec.disruptions.rollingUpdate.windowsмассив объектов
- spec.disruptions.approvalModeстрока
- spec.kubeletобъект
Параметры настройки kubelet.
- spec.kubelet.containerLogMaxFilesцелочисленный
Максимальное количество файлов журналов с учетом ротации.
Внимание! Параметр не влияет на работу, если тип CRI —
Docker
.Внимание!
Docker
считается устаревшим, не используйте его.По умолчанию:
4
Допустимые значения:
1 <= X <= 20
- spec.kubelet.containerLogMaxSizeстрока
Максимальный размер файла журнала до того, как он будет ротирован.
Внимание! Параметр не влияет на работу, если тип CRI —
Docker
.Внимание!
Docker
считается устаревшим, не используйте его.По умолчанию:
"50Mi"
Шаблон:
\d+[Ei|Pi|Ti|Gi|Mi|Ki|E|P|T|G|M|k|m]
- spec.kubelet.maxPodsцелочисленный
Максимальное количество подов на узлах данной
NodeGroup
.По умолчанию:
110
- spec.kubelet.rootDirстрока
Путь к каталогу для файлов kubelet (volume mounts и т. д.).
По умолчанию:
"/var/lib/kubelet"
- spec.kubelet.containerLogMaxFilesцелочисленный
- spec.nodeTemplateобъект
Настройки
Node
-объектов в Kubernetes, которые будут добавлены после регистрации узла.Пример:
nodeTemplate: labels: environment: production app: warp-drive-ai annotations: ai.fleet.com/discombobulate: 'true' taints: - effect: NoExecute key: ship-class value: frigate
- spec.nodeTemplate.annotationsобъект
Аналогично стандартному полю
metadata.annotations
.Пример:
annotations: ai.fleet.com/discombobulate: 'true'
- spec.nodeTemplate.labelsобъект
Аналогично стандартному полю
metadata.labels
.Пример:
labels: environment: production app: warp-drive-ai
- spec.nodeTemplate.taintsмассив объектов
Аналогично полю
.spec.taints
из объекта Node.Внимание! Доступны только поля
effect
,key
,value
.Пример:
taints: - effect: NoExecute key: ship-class value: frigate
- spec.nodeTemplate.taints.effectстрока
Допустимые значения:
NoSchedule
,PreferNoSchedule
,NoExecute
- spec.nodeTemplate.taints.keyстрока
- spec.nodeTemplate.taints.valueстрока
- spec.nodeTemplate.taints.effectстрока
- spec.nodeTemplate.annotationsобъект
- spec.nodeTypeстрока
Обязательный параметр
Тип узлов, которые представляет эта группа:
Cloud
— узлы для этой группы будут автоматически создаваться (и удаляться) в настроенном облачном провайдере;Static
— статический узел, размещенный на железном сервере или виртуальной машине. Узел не управляется cloud-controller-manager’ом, даже если включен один из облачных провайдеров;Hybrid
— статический узел (созданный вручную или любыми внешними инструментами), размещенный в том же облаке, с которым настроена интеграция у одного из облачных провайдеров. На таком узле работает CSI и такой узел управляется cloud-controller-manager’ом: объектNode
автоматически обогащается информацией о зоне и регионе по данным, полученным от облака; при удалении узла из облака соответствующий ему объектNode
будет удален в Kubernetes.
Допустимые значения:
Cloud
,Static
,Hybrid
- spec.operatingSystemобъект
Параметры операционной системы.
- spec.operatingSystem.manageKernelбулевый
Этот параметр не используется. Раньше он включaл автоматическое управление ядром операционной системы.
По умолчанию:
true
- spec.operatingSystem.manageKernelбулевый
- spec.chaosобъект
Описывает runtime-параметры группы узлов.
- metadataобъект
- metadata.nameстрока
Шаблон:
^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
Максимальная длина:
42
- metadata.nameстрока
- specобъект
Обязательный параметр
- spec.chaosобъект
Настройки Chaos Monkey.
Пример:
chaos: mode: DrainAndDelete period: 24h
- spec.chaos.modeстрока
Режим работы Chaos Monkey:
DrainAndDelete
— при срабатывании делает узлу drain, затем удаляет его.Disabled
— не трогает данную NodeGroup.
По умолчанию:
"Disabled"
Допустимые значения:
Disabled
,DrainAndDelete
- spec.chaos.periodстрока
Интервал времени срабатывания Chaos Monkey.
Задается в виде строки с указанием часов и минут: 30m, 1h, 2h30m, 24h.
По умолчанию:
"6h"
Шаблон:
^[0-9]+[mh]{1}$
- spec.chaos.modeстрока
- spec.cloudInstancesобъект
Параметры заказа облачных виртуальных машин.
Внимание! Допустимо использовать только совместно с
nodeType: CloudEphemeral
.- spec.cloudInstances.classReferenceобъект
Обязательный параметр
Ссылка на объект
InstanceClass
. Уникален для каждого модуляcloud-provider-*
.- spec.cloudInstances.classReference.kindстрока
Тип объекта (например,
OpenStackInstanceClass
). Тип объекта указан в документации соответствующего модуля облачного провайдера.Допустимые значения:
OpenStackInstanceClass
,GCPInstanceClass
,VsphereInstanceClass
,AWSInstanceClass
,YandexInstanceClass
,AzureInstanceClass
,VCDInstanceClass
- spec.cloudInstances.classReference.nameстрока
Имя нужного
InstanceClass
-объекта (например,finland-medium
).
- spec.cloudInstances.classReference.kindстрока
- spec.cloudInstances.maxPerZoneцелочисленный
Обязательный параметр
Максимальное количество инстансов в зоне.
Проставляется как верхняя граница в
cluster-autoscaler
.Допустимые значения:
0 <= X
- spec.cloudInstances.maxSurgePerZoneцелочисленный
Количество одновременно создаваемых инстансов при scale-up.
По умолчанию:
1
Допустимые значения:
0 <= X
- целочисленный
Недоступное количество инстансов при RollingUpdate’е.
По умолчанию:
0
Допустимые значения:
0 <= X
- spec.cloudInstances.minPerZoneцелочисленный
Обязательный параметр
Минимальное количество инстансов в зоне.
Проставляется в объект
MachineDeployment
и в качестве нижней границы в cluster autoscaler.При значении 0 для некоторых
InstanceClass
нужно задавать capacity. Более подробно можно узнать в описании нужныхInstanceClass
.Допустимые значения:
0 <= X
- spec.cloudInstances.standbyстрока или число
Количество резервных (подогретых) узлов в этой
NodeGroup
во всех зонах.Резервный узел — это узел кластера, на котором резервируются ресурсы, доступные в любой момент для масштабирования. Наличие такого узла позволяет cluster autoscaler’у не ждать инициализации узла (которая может занимать несколько минут), а сразу размещать на нем нагрузку.
Значение может быть абсолютным (например,
2
) или процентом желаемых узлов (например,10%
). Если указан процент, абсолютное значение рассчитывается исходя из процента от максимального количества узлов (параметрmaxPerZone
), округленного в меньшую сторону, но не менее одного.Шаблон:
^[0-9]+%?$
- spec.cloudInstances.standbyHolderобъект
Объем резервируемых ресурсов.
Используется для определения необходимости заказа резервных узлов.
- spec.cloudInstances.standbyHolder.notHeldResourcesобъект
Резервируемые ресурсы.
- spec.cloudInstances.standbyHolder.notHeldResources.cpuстрока или число
Количество CPU.
Значение может быть абсолютным (например,
1
) или в millicore-формате (например,1500m
).Шаблон:
^[0-9]+m?$
- spec.cloudInstances.standbyHolder.notHeldResources.memoryстрока или число
Количество памяти.
Значение может быть абсолютным в байтах (например,
128974848
) или в Kubernetes-формате с суффиксами:G
,Gi
,M
,Mi
(например,750Mi
).Шаблон:
^[0-9]+(\.[0-9]+)?(E|P|T|G|M|K|Ei|Pi|Ti|Gi|Mi|Ki)?$
- spec.cloudInstances.standbyHolder.notHeldResources.cpuстрока или число
- spec.cloudInstances.standbyHolder.notHeldResourcesобъект
- spec.cloudInstances.zonesмассив строк
Переопределение перечня зон, в которых создаются инстансы.
Значение по умолчанию зависит от выбранного облачного провайдера и обычно соответствует всем зонам используемого региона.
Пример:
zones: - Helsinki - Espoo - Tampere
- spec.cloudInstances.classReferenceобъект
- spec.criобъект
Параметры container runtime.
- spec.cri.containerdобъект
Параметры работы containerd.
При настройке этих параметров
cri.type
должен бытьContainerd
.- spec.cri.containerd.maxConcurrentDownloadsцелочисленный
Максимальное количество параллельных потоков загрузки для каждой операции pull.
По умолчанию:
3
- spec.cri.containerd.maxConcurrentDownloadsцелочисленный
- spec.cri.typeстрока
Container runtime type.
Value
defaultCRI
from the initial cluster configration (cluster-configuration.yaml
parameter from thed8-cluster-configuration
secret in thekube-system
namespace) is used if not specified.Note! the
Docker
is deprecated.Допустимые значения:
Docker
,Containerd
,NotManaged
- spec.cri.containerdобъект
- spec.disruptionsобъект
Параметры обновлений, приводящих к возможному простою.
Пример:
disruptions: approvalMode: Automatic automatic: drainBeforeApproval: false windows: - from: '06:00' to: '08:00' days: - Tue - Sun
- spec.disruptions.approvalModeстрока
Режим выдачи разрешения на disruptive-обновление (обновление, требующее прерывания работы узла):
Manual
— отключить автоматическую выдачу разрешений на disruptive-обновление. Если потребуется disruptive-обновление, загорится специальный алерт. Внимание! Для группы узловmaster
режим выдачи разрешения всегда должен бытьManual
, чтобы избежать проблем при drain’е узла.Automatic
— автоматически выдавать разрешения на disruptive-обновление.RollingUpdate
— в этом режиме будет создан новый узел с обновленными настройками, а старый узел будет удален. Разрешено только для облачных узлов.
Когда не используется режим
RollingUpdate
, при обновлении узел освобождается от нагрузки (drain), после чего обновляется (перезагружается) и вводится в работу. Обратите внимание, что в этом случае в кластере должно быть место для размещения нагрузки на время, пока обновляемый узел недоступен. В режимеRollingUpdate
узел заменяется на обновленный, то есть на время обновления в кластере появляется дополнительный узел. В облачной инфраструктуре режимRollingUpdate
удобен, например, если в кластере нет ресурсов для временного размещения нагрузки с обновляемого узла.По умолчанию:
"Automatic"
Допустимые значения:
Manual
,Automatic
,RollingUpdate
- spec.disruptions.automaticобъект
Дополнительные параметры для режима
Automatic
.- spec.disruptions.automatic.drainBeforeApprovalбулевый
Выгон (draining) подов с узла перед выдачей разрешения на disruption.
Внимание! Данная настройка игнорируется (узлам будет выдано разрешение без предварительного выгона подов с узлов):
- для nodeGroup
master
с единственным узлом; - для выделенного под запуск Deckhouse узла, если этот узел в группе узлов единственно рабочий (Ready).
По умолчанию:
true
- для nodeGroup
- spec.disruptions.automatic.windowsмассив объектов
Список окон disruption-обновлений узлов.
- spec.disruptions.automatic.windows.daysмассив строк
Дни недели, в которые применяется окно обновлений.
Примеры:
days: Mon
days: Wed
- Элемент массивастрока
День недели.
Допустимые значения:
Mon
,Tue
,Wed
,Thu
,Fri
,Sat
,Sun
- Элемент массивастрока
- spec.disruptions.automatic.windows.fromстрока
Обязательный параметр
Время начала окна обновления (в часовом поясе UTC).
Шаблон:
^(?:\d|[01]\d|2[0-3]):[0-5]\d$
Пример:
from: '13:00'
- spec.disruptions.automatic.windows.toстрока
Обязательный параметр
Время окончания окна обновления (в часовом поясе UTC).
Шаблон:
^(?:\d|[01]\d|2[0-3]):[0-5]\d$
Пример:
to: '18:30'
- spec.disruptions.automatic.windows.daysмассив строк
- spec.disruptions.automatic.drainBeforeApprovalбулевый
- spec.disruptions.rollingUpdateобъект
Additional parameters for the
RollingUpdate
mode.- spec.disruptions.rollingUpdate.windowsмассив объектов
Time windows for node disruptive updates.
- spec.disruptions.rollingUpdate.windows.daysмассив строк
Days of the week when node could be updated.
Примеры:
days: Mon
days: Wed
- Элемент массивастрока
Day of the week.
Допустимые значения:
Mon
,Tue
,Wed
,Thu
,Fri
,Sat
,Sun
- Элемент массивастрока
- spec.disruptions.rollingUpdate.windows.fromстрока
Обязательный параметр
Start time of disruptive update window (UTC timezone).
Шаблон:
^(?:\d|[01]\d|2[0-3]):[0-5]\d$
Пример:
from: '13:00'
- spec.disruptions.rollingUpdate.windows.toстрока
Обязательный параметр
End time of disruptive update window (UTC timezone).
Шаблон:
^(?:\d|[01]\d|2[0-3]):[0-5]\d$
Пример:
to: '18:30'
- spec.disruptions.rollingUpdate.windows.daysмассив строк
- spec.disruptions.rollingUpdate.windowsмассив объектов
- spec.disruptions.approvalModeстрока
- spec.dockerобъект
Параметры настройки Docker.
При настройке этих параметров
cri.type
должен бытьDocker
.Внимание!
Docker
считается устаревшим, не используйте его.- spec.docker.manageбулевый
Автоматическое управление версией и параметрами Docker.
По умолчанию:
true
- spec.docker.maxConcurrentDownloadsцелочисленный
Максимальное количество потоков одновременного скачивания Docker-образов.
По умолчанию:
3
- spec.docker.manageбулевый
- spec.kubeletобъект
Параметры настройки kubelet.
- spec.kubelet.containerLogMaxFilesцелочисленный
Максимальное количество файлов журналов с учетом ротации.
Внимание! Параметр не влияет на работу, если тип CRI —
Docker
.Внимание!
Docker
считается устаревшим, не используйте его.По умолчанию:
4
Допустимые значения:
1 <= X <= 20
- spec.kubelet.containerLogMaxSizeстрока
Максимальный размер файла журнала до того, как он будет ротирован.
Внимание! Параметр не влияет на работу, если тип CRI —
Docker
.Внимание!
Docker
считается устаревшим, не используйте его.По умолчанию:
"50Mi"
Шаблон:
\d+[Ei|Pi|Ti|Gi|Mi|Ki|E|P|T|G|M|k|m]
- spec.kubelet.maxPodsцелочисленный
Максимальное количество подов на узлах данной
NodeGroup
.По умолчанию:
110
- spec.kubelet.rootDirстрока
Путь к каталогу для файлов kubelet (volume mounts и т. д.).
По умолчанию:
"/var/lib/kubelet"
- spec.kubelet.containerLogMaxFilesцелочисленный
- spec.kubernetesVersionстрока
Желаемая минорная версия Kubernetes.
По умолчанию соответствует глобально выбранной для кластера версии (см. документацию по установке) или, если таковая не определена, текущей версии
control plane
.Допустимые значения:
1.25
,1.26
,1.27
,1.28
,1.29
Пример:
kubernetesVersion: '1.27'
- spec.nodeTemplateобъект
Настройки
Node
-объектов в Kubernetes, которые будут добавлены после регистрации узла.Пример:
nodeTemplate: labels: environment: production app: warp-drive-ai annotations: ai.fleet.com/discombobulate: 'true' taints: - effect: NoExecute key: ship-class value: frigate
- spec.nodeTemplate.annotationsобъект
Аналогично стандартному полю
metadata.annotations
.Пример:
annotations: ai.fleet.com/discombobulate: 'true'
- spec.nodeTemplate.labelsобъект
Аналогично стандартному полю
metadata.labels
.Пример:
labels: environment: production app: warp-drive-ai
- spec.nodeTemplate.taintsмассив объектов
Аналогично полю
.spec.taints
из объекта Node.Внимание! Доступны только поля
effect
,key
,value
.Пример:
taints: - effect: NoExecute key: ship-class value: frigate
- spec.nodeTemplate.taints.effectстрока
Допустимые значения:
NoSchedule
,PreferNoSchedule
,NoExecute
- spec.nodeTemplate.taints.keyстрока
- spec.nodeTemplate.taints.valueстрока
- spec.nodeTemplate.taints.effectстрока
- spec.nodeTemplate.annotationsобъект
- spec.nodeTypeстрока
Обязательный параметр
Тип узлов, которые представляет эта группа:
Cloud
— узлы для этой группы будут автоматически создаваться (и удаляться) в настроенном облачном провайдере;Static
— статический узел, размещенный на железном сервере или виртуальной машине. Узел не управляется cloud-controller-manager’ом, даже если включен один из облачных провайдеров;Hybrid
— статический узел (созданный вручную или любыми внешними инструментами), размещенный в том же облаке, с которым настроена интеграция у одного из облачных провайдеров. На таком узле работает CSI и такой узел управляется cloud-controller-manager’ом: объектNode
автоматически обогащается информацией о зоне и регионе по данным, полученным от облака; при удалении узла из облака соответствующий ему объектNode
будет удален в Kubernetes.
Допустимые значения:
Cloud
,Static
,Hybrid
- spec.operatingSystemПараметр устарелобъект
Параметры операционной системы.
- spec.operatingSystem.manageKernelПараметр устарелбулевый
Этот параметр не используется. Раньше он включaл автоматическое управление ядром операционной системы.
По умолчанию:
true
- spec.operatingSystem.manageKernelПараметр устарелбулевый
- spec.staticобъект
Параметры статического узла.
- spec.static.internalNetworkCIDRsмассив строк
CIDR подсети.
- spec.static.internalNetworkCIDRsмассив строк
- spec.chaosобъект
NodeGroupConfiguration
Scope: Cluster
Version: v1alpha1
Ресурс для выполнения bash-скриптов на узлах.
Подробнее в документации модуля.
- specобъект
Обязательный параметр
- spec.bundlesмассив строк
Обязательный параметр
Список bundle’ов, для которых будет выполняться скрипт. Для выбора всех bundle’ов нужно указать
'*'
.Список возможных bundle’ов такой же, как у параметра allowedBundles модуля.
Примеры:
bundles: - ubuntu-lts - centos-7
bundles: - ubuntu-lts
bundles: - "*"
- spec.contentстрока
Обязательный параметр
Содержимое шага конфигурации в виде bash-скрипта.
Для генерации скрипта возможно использовать Go Template.
Получить список параметров, доступных для использования в шаблонах, можно из секрета
bashible-apiserver-context
:kubectl -n d8-cloud-instance-manager get secrets bashible-apiserver-context -o jsonpath='{.data.input\.yaml}'| base64 -d
Пример:
{{- range .nodeUsers }} echo 'Tuning environment for user {{ .name }}' # Some code for tuning user environment {{- end }}
Также в скрипте допустимо использовать подготовленные команды bashbooster. Например:
bb-event-on 'bb-package-installed' 'post-install' post-install() { bb-log-info "Setting reboot flag due to kernel was updated" bb-flag-set reboot }
- spec.nodeGroupsмассив строк
Обязательный параметр
Список NodeGroup, к которым нужно применять шаг конфигурации. Для выбора всех NodeGroups нужно указать ‘*’.
Примеры:
nodeGroups: - master - worker
nodeGroups: - worker
nodeGroups: - "*"
- spec.weightцелочисленный
Очередность выполнения шага конфигурации.
По умолчанию:
100
- spec.bundlesмассив строк
NodeUser
Scope: Cluster
Описывает Linux-пользователей, которые будут созданы на всех узлах.
Домашний каталог пользователя создается в директории /home/deckhouse/
.
- specобъект
Обязательный параметр
- spec.extraGroupsмассив строк
Список дополнительных групп, в которые должен быть включен пользователь.
Примеры:
extraGroups: - docker
extraGroups: - docker - ftp
- spec.isSudoerбулевый
Определяет, будет ли пользователю разрешено sudo.
По умолчанию:
false
Пример:
isSudoer: 'true'
- spec.nodeGroupsмассив строк
Список NodeGroup, к которым будет применяться настройка пользователя.
По умолчанию:
["*"]
Примеры:
nodeGroups: - master - worker
nodeGroups: - worker
nodeGroups: - "*"
- spec.passwordHashстрока
Обязательный параметр
Хэш пароля пользователя.
Формат соответствует хэшам паролей, содержащихся в
/etc/shadow
. Его можно получить с помощью командыopenssl passwd -6
.Пример:
passwordHash: "$2a$10$F9ey7zW.sVliT224RFxpWeMsgzO.D9YRG54a8T36/K2MCiT41nzmC"
- spec.sshPublicKeyПараметр устарелстрока
Публичный SSH-ключ пользователя.
Обязательно должен быть указан либо
sshPublicKey
, либоsshPublicKeys
.Пример:
sshPublicKey: ssh-rsa AAABBB
- spec.sshPublicKeysмассив строк
Массив публичных SSH-ключей пользователя.
Обязательно должен быть указан либо
sshPublicKey
, либоsshPublicKeys
.Пример:
sshPublicKeys: - ssh-rsa AAABBB - cert-authority,principals="name" ssh-rsa BBBCCC
- spec.uidчисло
Обязательный параметр
User ID пользователя на узлах.
Рекомендуем использовать значения
>= 1100
во избежание возможных конфликтов с пользователями, созданными вручную.Неизменяемый в течение жизни ресурса параметр.
Допустимые значения:
1001 <= X
Пример:
uid: 1100
- spec.extraGroupsмассив строк
Описывает Linux-пользователей, которые будут созданы на всех узлах.
Домашний каталог пользователя создается в директории /home/deckhouse/
.
- specобъект
Обязательный параметр
- spec.extraGroupsмассив строк
Список дополнительных групп, в которые должен быть включен пользователь.
Примеры:
extraGroups: - docker
extraGroups: - docker - ftp
- spec.isSudoerбулевый
Определяет, будет ли пользователю разрешено sudo.
По умолчанию:
false
Пример:
isSudoer: 'true'
- spec.nodeGroupsмассив строк
Список NodeGroup, к которым будет применяться настройка пользователя.
По умолчанию:
["*"]
Примеры:
nodeGroups: - master - worker
nodeGroups: - worker
nodeGroups: - "*"
- spec.passwordHashстрока
Обязательный параметр
Хэш пароля пользователя.
Формат соответствует хэшам паролей, содержащихся в
/etc/shadow
. Его можно получить с помощью командыopenssl passwd -6
.Пример:
passwordHash: "$2a$10$F9ey7zW.sVliT224RFxpWeMsgzO.D9YRG54a8T36/K2MCiT41nzmC"
- spec.sshPublicKeyПараметр устарелстрока
Публичный SSH-ключ пользователя.
Обязательно должен быть указан либо
sshPublicKey
, либоsshPublicKeys
.Пример:
sshPublicKey: ssh-rsa AAABBB
- spec.sshPublicKeysмассив строк
Массив публичных SSH-ключей пользователя.
Обязательно должен быть указан либо
sshPublicKey
, либоsshPublicKeys
.Пример:
sshPublicKeys: - ssh-rsa AAABBB - cert-authority,principals="name" ssh-rsa BBBCCC
- spec.uidчисло
Обязательный параметр
User ID пользователя на узлах.
Рекомендуем использовать значения
>= 1100
во избежание возможных конфликтов с пользователями, созданными вручную.Неизменяемый в течение жизни ресурса параметр.
Допустимые значения:
1001 <= X
Пример:
uid: 1100
- spec.extraGroupsмассив строк
SSHCredentials
Scope: Cluster
Version: v1alpha1
Содержит данные, необходимые Cluster API Provider Static (CAPS) для подключения по протоколу SSH. CAPS подключается к серверу (виртуальной машине), описанному в ресурсе StaticInstance для управления его состоянием.
Ссылка на этот ресурс указывается в параметре credentialsRef ресурса StaticInstance
.
- apiVersionстрока
Версия API объекта.
- kindстрока
Тип объекта.
- metadataобъект
- specобъект
Желаемое состояние объекта SSHCredentials.
- spec.privateSSHKeyстрока
Обязательный параметр
Закрытый ключ SSH в формате PEM, закодированный в Base64.
- spec.sshExtraArgsстрока
Список дополнительных параметров для SSH-клиента (
openssh
).Примеры:
sshExtraArgs: "-vvv"
sshExtraArgs: "-c chacha20-poly1305@openssh.com"
sshExtraArgs: "-c aes256-gcm@openssh.com"
sshExtraArgs: "-m umac-64-etm@openssh.com"
sshExtraArgs: "-m hmac-sha2-512-etm@openssh.com"
- spec.sshPortцелочисленный
Порт для подключения по SSH.
По умолчанию:
22
Допустимые значения:
1 <= X <= 65535
- spec.sudoPasswordстрока
Пароль пользователя для использования
sudo
. - spec.userстрока
Обязательный параметр
Имя пользователя для подключения по SSH.
- spec.privateSSHKeyстрока
StaticInstance
Scope: Cluster
Version: v1alpha1
Описывает объект машины для Cluster API Provider Static.
- apiVersionстрока
Версия API объекта.
- kindстрока
Тип объекта.
- metadataобъект
- specобъект
Желаемое состояние объекта StaticInstance.
- spec.addressстрока
Обязательный параметр
IP-адрес сервера (виртуальной машины) для подключения.
Шаблон:
^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$
- spec.credentialsRefобъект
Обязательный параметр
Ссылка на ресурс SSHCredentials.
- spec.credentialsRef.apiVersionстрока
Версия API ресурса.
- spec.credentialsRef.kindстрока
Kind ресурса.
- spec.credentialsRef.nameстрока
Имя ресурса.
- spec.credentialsRef.apiVersionстрока
- spec.addressстрока