Deckhouse Kubernetes Platform устанавливает CRD, но не удаляет их при отключении модуля. Если вам больше не нужны созданные CRD, удалите их.
Стадия жизненного цикла модуля: General Availability
Instance
Scope: Cluster
Version: v1alpha1
Описывает независимый от реализации объект эфемерной машины.
- объектstatus
- объектstatus.bootstrapStatus
Информация о процессе начальной настройки узла.
- строкаstatus.bootstrapStatus.description
Описание процесса получения логов начальной настройки узла.
- строкаstatus.bootstrapStatus.logsEndpoint
http эндпоинт для получения логов начальной настройки узла.
- объектstatus.classReference
Ссылка на объект
InstanceClass. Уникален для каждого модуляcloud-provider-*.- строкаstatus.classReference.kind
Тип объекта (например,
OpenStackInstanceClass). Тип объекта указан в документации соответствующего модуля облачного провайдера.Допустимые значения:
OpenStackInstanceClass,GCPInstanceClass,VsphereInstanceClass,AWSInstanceClass,YandexInstanceClass,AzureInstanceClass,VCDInstanceClass,ZvirtInstanceClass,DynamixInstanceClass,HuaweiCloudInstanceClass,DVPInstanceClass - строкаstatus.classReference.name
Имя нужного
InstanceClass-объекта (например,finland-medium).
- объектstatus.currentStatus
Текущий статус объекта.
- строкаstatus.currentStatus.lastUpdateTime
Время последнего обновления ствтуса.
- строкаstatus.currentStatus.phase
Лейбл состояния машин в текущий момент времени.
- объектstatus.lastOperation
Последняя выполненная операция.
- строкаstatus.lastOperation.description
Описание текущей операции.
- строкаstatus.lastOperation.lastUpdateTime
Время последней операции.
- строкаstatus.lastOperation.state
Состояние операции.
- строкаstatus.lastOperation.type
Тип операции.
- объектstatus.machineRef
Ссылка на объект узла облачного провайдера.
- строкаstatus.machineRef.apiVersion
Используемая версия API Kubernetes.
- строкаstatus.machineRef.kind
Тип объекта.
- строкаstatus.machineRef.name
Имя объекта.
- строкаstatus.machineRef.namespace
Пространство имен, в котором находится объект.
- объектstatus.nodeRef
Ссылка на объект узла kubernetes.
- строкаstatus.nodeRef.name
Имя узла
InstanceTypesCatalog
Scope: Cluster
Version: v1alpha1
Содержит информацию о данных, обнаруженных в облаке.
- массив объектовinstanceTypes
Обязательный параметр
Список доступных типов виртуальных машин.
- строка или числоinstanceTypes.cpu
Обязательный параметр
Количество vCPU для данного типа виртуальной машины.
Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - строка или числоinstanceTypes.memory
Обязательный параметр
Объем оперативной памяти для данного типа виртуальной машины.
Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - строкаinstanceTypes.name
Имя типа виртуальной машины.
- строка или числоinstanceTypes.rootDisk
Размер корневого диска.
Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
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
- объектstatus
- объектstatus.conditionSummary
- строкаstatus.conditionSummary.ready
Status of the condition summary.
Допустимые значения:
True,False - строкаstatus.conditionSummary.statusMessage
Status message about group handling.
- массив объектовstatus.conditions
- строкаstatus.conditions.lastTransitionTime
Last time the condition transit from one status to another.
- строкаstatus.conditions.message
Human readable message indicating details about last transition.
- строкаstatus.conditions.status
Обязательный параметр
Status of the condition, one of True, False.
- строкаstatus.conditions.type
Обязательный параметр
Type of node group condition.
- объектstatus.deckhouse
- объектstatus.deckhouse.observed
Contains last timestamp when the resource change was noted by the operator and its checksum.
- строкаstatus.deckhouse.observed.checkSum
The checksum of the last observed resource.
- строкаstatus.deckhouse.observed.lastTimestamp
Last timestamp when a change of the resource was noted by the operator.
- объектstatus.deckhouse.processed
Contains last timestamp when the resource was applied in the cluster by the operator and its checksum.
- строкаstatus.deckhouse.processed.checkSum
The checksum of the last applied resource.
- строкаstatus.deckhouse.processed.lastTimestamp
Last timestamp when the resource was applied in the cluster.
- строкаstatus.deckhouse.synced
True if last observed version of the resource was successfully applied in the cluster.
- целочисленныйstatus.desired
Number of desired machines in the group.
- строкаstatus.error
Error message about possible problems with the group handling.
- целочисленныйstatus.instances
Number of instances (in any state) in the group.
- строкаstatus.kubernetesVersion
The current version of kubernetes on the nodes, or the version to which the nodes will be upgraded.
- массив объектовstatus.lastMachineFailures
- объектstatus.lastMachineFailures.lastOperation
- строкаstatus.lastMachineFailures.lastOperation.description
Last operation’s description.
- строкаstatus.lastMachineFailures.lastOperation.lastUpdateTime
Timestamp of last status update for operation.
- строкаstatus.lastMachineFailures.lastOperation.state
Machine’s operation state.
- строкаstatus.lastMachineFailures.lastOperation.type
Type of operation.
- строкаstatus.lastMachineFailures.name
Machine’s name.
- строкаstatus.lastMachineFailures.ownerRef
Machine owner’s name.
- строкаstatus.lastMachineFailures.providerID
Machine’s ProviderID.
- целочисленныйstatus.max
Maximum amount of instances in the group.
- целочисленныйstatus.min
Minimal amount of instances in the group.
- целочисленныйstatus.nodes
Number of Kubernetes nodes (in any state) in the group.
- целочисленныйstatus.ready
Number of ready Kubernetes nodes in the group.
- целочисленныйstatus.standby
Number of overprovisioned instances in the group.
- целочисленныйstatus.upToDate
Number of up-to-date nodes in the group.
- объект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.cloudInstances
Параметры заказа облачных виртуальных машин.
Внимание. Допустимо использовать только совместно с
nodeType: CloudEphemeral.- объектspec.cloudInstances.classReference
Обязательный параметр
Ссылка на объект
InstanceClass. Уникален для каждого модуляcloud-provider-*.- строкаspec.cloudInstances.classReference.kind
Тип объекта (например,
OpenStackInstanceClass). Тип объекта указан в документации соответствующего модуля облачного провайдера.Допустимые значения:
OpenStackInstanceClass,GCPInstanceClass,VsphereInstanceClass,AWSInstanceClass,YandexInstanceClass,AzureInstanceClass,VCDInstanceClass,ZvirtInstanceClass,DynamixInstanceClass,HuaweiCloudInstanceClass,DVPInstanceClass - строкаspec.cloudInstances.classReference.name
Имя нужного
InstanceClass-объекта (например,finland-medium).
- целочисленный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 будет выбирать сначала группы узлов с установленным бОльшим приоритетом. Если существует несколько групп узлов с одинаковым приоритетом, группа будет выбрана из них случайным образом. Скоростью переключения на заказ узлов из групп с меньшим приоритетом можно управлять (подробнее — в разделе «FAQ»).
Использование приоритетов может быть удобно, например, для предпочтения заказа более дешевых узлов (например, 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.overprovisioningRate
Процент резервируемых ресурсов, рассчитываемый от ресурсов узла в
NodeGroup.По умолчанию:
50Допустимые значения:
1 <= X <= 80
- массив строкspec.cloudInstances.zones
Переопределение перечня зон, в которых создаются инстансы.
Значение по умолчанию зависит от выбранного облачного провайдера и обычно соответствует всем зонам используемого региона.
Пример:
zones: - Helsinki - Espoo - Tampere
- объектspec.cri
Параметры container runtime.
- объектspec.cri.containerd
Параметры работы containerd.
При настройке этих параметров
cri.typeдолжен бытьContainerd.- целочисленныйspec.cri.containerd.maxConcurrentDownloads
Максимальное количество параллельных потоков загрузки для каждой операции pull.
По умолчанию:
3
- объектspec.cri.containerdV2
Параметры работы containerd V2.
При настройке этих параметров
cri.typeдолжен бытьContainerdV2.При использовании
ContainerdV2будет использоватьсяCgroupsV2(обеспечивает улучшенную безопасность и управление ресурсами).Для использования
ContainerdV2в качестве container runtime узлы в группе должны соответствовать следующим требованиям:- поддержка
CgroupsV2; - ядро Linux версии
5.8и новее; - systemd версии
244и новее; - поддержка модуля ядра
erofs.
- целочисленныйspec.cri.containerdV2.maxConcurrentDownloads
Максимальное количество параллельных потоков загрузки для каждой операции pull.
По умолчанию:
3
- поддержка
- объектspec.cri.dockerПараметр устарел
Параметры настройки Docker.
- булевыйspec.cri.docker.manage
Автоматическое управление версией и параметрами Docker.
По умолчанию:
true - целочисленныйspec.cri.docker.maxConcurrentDownloads
Максимальное количество потоков одновременного скачивания Docker-образов.
По умолчанию:
3
- объектspec.cri.notManaged
Настройки для CRI, установленных на узлах вручную.
- строкаspec.cri.notManaged.criSocketPath
Путь к сокету CRI.
- строкаspec.cri.type
Тип container runtime.
Если не указан, используется значение параметра
defaultCRIClusterConfiguration.Внимание. Поддержка Docker считается устаревшей.
Допустимые значения:
Docker,Containerd,ContainerdV2,NotManaged
- объект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-обновление, появится специальный алерт. При выборе этого режима не происходит автоматический drain узла. Если требуется drain узла, сделайте это вручную перед установкой аннотацииupdate.node.deckhouse.io/disruption-approved=на ресурсnode. Внимание! Для группы узловmasterрежим выдачи разрешения всегда должен бытьManual, чтобы избежать проблем при drain’е узла.Automatic— автоматически выдавать разрешения на disruptive-обновление. При этом возможен автоматический drain узла, управляющийся настройкой drainBeforeApproval.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: Mondays: 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.rollingUpdate
Дополнительные параметры для режима
RollingUpdate.- массив объектовspec.disruptions.rollingUpdate.windows
Список окон disruption-обновлений узлов.
- массив строкspec.disruptions.rollingUpdate.windows.days
Дни недели, в которые применяется окно обновлений.
Примеры:
days: Mondays: 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.fencing
Включает fencing-controller для группы узлов.
- строкаspec.fencing.mode
Обязательный параметр
Устанавливает режим работы fencing-controller.
Поддерживаемые режимы работы:
Watchdog— использует модуль ядра watchdog для автоматической перезагрузки узлов, потерявших связь с кластером. Также в этом режиме fencing-agent отслеживает доступность узлов в кластере.
При включении
fencingскрипт NodeGroupConfiguration загружает модуль ядраsoftdogс параметромsoft_margin, равным значениюspec.fencing.watchdog.timeout(по умолчанию 60 секунд), и параметромsoft_panic=1.Как работает fencing-agent:
- Агент открывает устройство
/dev/watchdogи устанавливает на узле лейблnode-manager.deckhouse.io/fencing-enabled, а также лейблnode-manager.deckhouse.io/fencing-modeсо значениемWatchdog. - Fencing-agent объединяется с агентами той же группы узлов в gossip-кластер (
memberlist). - Агент регулярно проверяет кворум (доступность большинства узлов группы):
- если кворума нет (
quorum=false), агент выполняет дополнительную проверку доступности Kubernetes API; - если кворум есть или Kubernetes API доступен, агент сбрасывает таймер watchdog;
- если ни кворума, ни доступа к Kubernetes API нет, watchdog перестает сбрасываться, таймер истекает, что приводит к kernel panic.
- Агент учитывает аннотации обслуживания
node-manager.deckhouse.io/fencing-disable,update.node.deckhouse.io/approvedиupdate.node.deckhouse.io/disruption-approved, чтобы временно отключать watchdog на время плановых операций.
При включённом
fencingавтоматическая перезагрузка узла после kernel panic отключается на уровне ОС. Это исключает возврат узла с неопределённым состоянием до его корректной обработки (для статических узлов — вручную, для облачных узлов — через cloud-provider-controller).Fencing-controller учитывает тип узла (
node.deckhouse.io/type) при реакции на сбойный узел:- для облачных узлов (
CloudEphemeral,CloudPermanent) контроллер удаляет объект Node, после чего cloud-provider-controller пересоздаёт соответствующую виртуальную машину; - для статических узлов (
Static,CloudStatic) контроллер только вытесняет нагрузку, оставляя объект Node в кластере.
Подробнее о том, как механизм fencing обрабатывает разные типы узлов, можно почитать в разделе «FAQ».
Допустимые значения:
Watchdog - объектspec.fencing.watchdog
- строкаspec.fencing.watchdog.timeout
Обязательный параметр
Длительность таймаута watchdog. Указывается в секундах, минутах или часах.
По умолчанию:
60sШаблон:
^[0-9]+[smh]{1}$
- объектspec.gpu
Доступно в редакциях: EE
Параметры GPU.
- объектspec.gpu.exclusive
Режим без разделения GPU.
- объектspec.gpu.mig
Параметры для стратегии
MIG.- массив объектовspec.gpu.mig.customConfigs
Кастомное разбиение MIG по индексам GPU.
Используется только при значении
partedConfig: custom.Представляет собой массив устройств (map по
index), где каждый элемент указывает на GPU по его индексу и описывает создаваемые срезы.Примеры:
customConfigs: profile: 3g.40gb count: 2customConfigs: profile: 1g.10gb.me count: 1- целочисленныйspec.gpu.mig.customConfigs.index
Обязательный параметр
Индекс GPU на узле.
Допустимые значения:
0 <= X - массив объектовspec.gpu.mig.customConfigs.slices
Обязательный параметр
Список создаваемых MIG-срезов.
- целочисленныйspec.gpu.mig.customConfigs.slices.count
Обязательный параметр
Количество срезов выбранного профиля.
По умолчанию:
1Допустимые значения:
1 <= X <= 7 - строкаspec.gpu.mig.customConfigs.slices.profile
Обязательный параметр
Имя MIG-профиля.
Шаблон:
^[0-9]+g\.[0-9]+gb(\.me)?$Примеры:
profile: 3g.40gbprofile: 1g.10gbprofile: 1g.10gb.me
- строкаspec.gpu.mig.partedConfig
Имя используемой конфигурации MIG.
Поддерживаются стандартные профили вида
all-*(одинаковое разбиение для всех GPU) или значениеcustom, позволяющее задать разбиение отдельно для каждой видеокарты.По умолчанию:
all-1g.5gb
- строкаspec.gpu.sharing
Стратегия разделения GPU:
Exclusive— без разделения (каждый GPU полностью выделяется одному поду).TimeSlicing— разделение GPU по времени (несколько подов могут одновременно использовать один GPU, поочередно получая доступ к его вычислительным ресурсам).MIG— разделение одного GPU на несколько экземпляров (технология NVIDIA MIG, при наличии поддержки).
Допустимые значения:
TimeSlicing,MIG,Exclusive - объектspec.gpu.timeSlicing
Параметры для стратегии
TimeSlicing.- числоspec.gpu.timeSlicing.partitionCount
Количество разделов (виртуальных GPU) на один физический GPU.
По умолчанию:
4Допустимые значения:
1 <= X <= 100
- объект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. Если явно не задан, по умолчанию задается в зависимости от значения параметра podSubnetNodeCIDRPrefix ClusterConfiguration:120подов дляpodSubnetNodeCIDRPrefix≥24;250подов дляpodSubnetNodeCIDRPrefix=23;500подов дляpodSubnetNodeCIDRPrefix=22;1000подов дляpodSubnetNodeCIDRPrefix≤21.
- объектspec.kubelet.memorySwap
Конфигурация использования swap-памяти для kubelet.
- объектspec.kubelet.memorySwap.limitedSwap
Настройки режима ограниченного использования swap. Требуются, если для
swapBehaviorуказано значениеLimitedSwap.- строкаspec.kubelet.memorySwap.limitedSwap.size
Обязательный параметр
Размер создаваемого swap-файла в ГБ (например, “2G”, “4G”).
Шаблон:
^\d+G$Пример:
size: 1G
- строкаspec.kubelet.memorySwap.swapBehavior
Определяет, как используется swap-память на узле:
NoSwap— swap отключен. Это традиционное поведение Kubernetes.LimitedSwap— kubelet может использовать swap-память в пределах, заданных вlimitedSwap.size.
Подробнее об использовании swap-памяти на узлах можно прочитать в документации Kubernetes.
Допустимые значения:
NoSwap,LimitedSwap - целочисленныйspec.kubelet.memorySwap.swappiness
Определяет склонность ядра к использованию swap.
0— минимальное использование (только для предотвращения OOM).60— сбалансированное поведение по умолчанию.100— агрессивное использование.
Значение устанавливается через параметр sysctl
vm.swappiness.По умолчанию:
60Допустимые значения:
0 <= X <= 100
- объект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.rootDir
Путь к каталогу для файлов kubelet (volume mounts и т. д.).
По умолчанию:
/var/lib/kubelet - объектspec.kubelet.topologyManager
Управление менеджером топологии.
Менеджер топологии позволяет планировщику Kubernetes учитывать данные о топологии ресурсов при планировании подов.
В кластере с NUMA-узлами менеджер топологии может повысить производительность приложения, размещая контейнеры пода на том NUMA-узле, который эффективней работает с ресурсами.
Дополнительная информация в документации Kubernetes.
- булевыйspec.kubelet.topologyManager.enabled
Включение использования менеджера топологий.
По умолчанию:
false - строкаspec.kubelet.topologyManager.policy
Определение политики выравнивания ресурсов с учетом топологии узлов при планировании пода.
Поддерживаются четыре политики:
None— выравнивание ресурсов не выполняется (используется по умолчанию).BestEffort— для каждого контейнера определяется предпочтительный NUMA-узел. Если предпочтительные узлы для планирования пода отсутствуют, то новый под будет запланирован на узел без учета данных менеджера топологии, а уже запущенный под продолжит работу.Restricted— для каждого контейнера пода определяется предпочтительный NUMA-узел. Если предпочтительные узлы для планирования пода отсутствуют, то новый под не будет запланирован на узел, а уже запущенный под будет остановлен.SingleNumaNode— для каждого контейнера пода определяется предпочтительный NUMA-узел. Если нет NUMA-узла, предпочтительного для всех контейнеров пода, то новый под не будет запланирован, а уже запущенный под будет остановлен.
Больше информации читайте в документации Kubernetes.
По умолчанию:
NoneДопустимые значения:
None,BestEffort,Restricted,SingleNumaNode - строкаspec.kubelet.topologyManager.scope
Определение гранулярности выравнивания ресурсов:
Container. Вычисление предпочтительных ресурсов выполняется для контейнера. При вычислении не учитывается, что несколько контейнеров относятся к одному поду.Pod. Вычисление предпочтительных ресурсов выполняется для пода. Все контейнеры пода рассматриваются как единое целое при вычислении.
По умолчанию:
ContainerДопустимые значения:
Container,Pod
- целочисленныйspec.nodeDrainTimeoutSecond
Максимальная продолжительность периода (в секундах), в течение которого контроллер будет пытаться переселить поды на новую машину в процессе выполнения drain на узле.
- объект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.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Параметр устарел
Этот параметр не используется. Раньше он включал автоматическое управление ядром операционной системы.
По умолчанию:
true
- объектspec.staticInstances
Параметры настройки машин статических узлов кластера.
- целочисленныйspec.staticInstances.count
Количество узлов
staticInstances, которые нужно автоматически настроить и включить в кластер. В NodeGroup с типами Static и CloudStatic вы можете явно указать количество узлов в этом параметре. Это позволяет задать ожидаемое количество узлов — DKP использует это значение для контроля состояния и автоматизации.По умолчанию:
0Допустимые значения:
0 <= X - объектspec.staticInstances.labelSelector
Настройка фильтра лейблов по ресурсам
staticInstances.Если указаны одновременно
matchExpressionsиmatchLabels, учитываются оба фильтра (операцияИ).Пустое значение
labelSelectorсоответствует всем объектам. Нулевое — никаким.Внимание. Поле
labelSelectorможно добавить, но нельзя изменить после установки. Для измененияlabelSelectorсоздайте новую NodeGroup и переместите статические узлы в неё, изменив их лейблы.- массив объектовspec.staticInstances.labelSelector.matchExpressions
Список фильтров на основе выражений.
Итоговый результат — результат пересечения множеств, определяемых всеми фильтрами в списке (операция
И).Требования к селектору лейблов — он должен содержать значения, ключ и оператор, связывающий ключ и значения.
- строка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.matchLabels
Фильтр на основе совпадения/несовпадения лейблов.
- объектspec.update
- строка или числоspec.update.maxConcurrent
Максимальное количество одновременно обновляемых узлов.
Можно указать число узлов или процент от общего количества узлов в данной группе.
По умолчанию:
1Шаблон:
^[1-9][0-9]*%?$
Описывает runtime-параметры группы узлов.
- объектmetadata
- строкаmetadata.name
Шаблон:
^[a-z0-9]([-a-z0-9]*[a-z0-9])?$Максимальная длина:
42
- объектstatus
- объектstatus.conditionSummary
- строкаstatus.conditionSummary.ready
Status of the condition summary.
Допустимые значения:
True,False - строкаstatus.conditionSummary.statusMessage
Status message about group handling.
- целочисленныйstatus.desired
Number of desired machines in the group.
- строкаstatus.error
Error message about possible problems with the group handling.
- целочисленныйstatus.instances
Number of instances (in any state) in the group.
- строкаstatus.kubernetesVersion
The current version of kubernetes on the nodes, or the version to which the nodes will be upgraded.
- массив объектовstatus.lastMachineFailures
- объектstatus.lastMachineFailures.lastOperation
- строкаstatus.lastMachineFailures.lastOperation.description
Last operation’s description.
- строкаstatus.lastMachineFailures.lastOperation.lastUpdateTime
Timestamp of last status update for operation.
- строкаstatus.lastMachineFailures.lastOperation.state
Machine’s operation state.
- строкаstatus.lastMachineFailures.lastOperation.type
Type of operation.
- строкаstatus.lastMachineFailures.name
Machine’s name.
- строкаstatus.lastMachineFailures.ownerRef
Machine owner’s name.
- строкаstatus.lastMachineFailures.providerID
Machine’s ProviderID.
- целочисленныйstatus.max
Maximum amount of instances in the group.
- целочисленныйstatus.min
Minimal amount of instances in the group.
- целочисленныйstatus.nodes
Number of Kubernetes nodes (in any state) in the group.
- целочисленныйstatus.ready
Number of ready Kubernetes nodes in the group.
- целочисленныйstatus.standby
Number of overprovisioned instances in the group.
- целочисленныйstatus.upToDate
Number of up-to-date nodes in the group.
- объект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.cloudInstances
Параметры заказа облачных виртуальных машин.
Внимание. Допустимо использовать только совместно с
nodeType: CloudEphemeral.- объектspec.cloudInstances.classReference
Обязательный параметр
Ссылка на объект
InstanceClass. Уникален для каждого модуляcloud-provider-*.- строкаspec.cloudInstances.classReference.kind
Тип объекта (например,
OpenStackInstanceClass). Тип объекта указан в документации соответствующего модуля облачного провайдера.Допустимые значения:
OpenStackInstanceClass,GCPInstanceClass,VsphereInstanceClass,AWSInstanceClass,YandexInstanceClass,AzureInstanceClass,VCDInstanceClass,ZvirtInstanceClass,DynamixInstanceClass,HuaweiCloudInstanceClass,DVPInstanceClass - строкаspec.cloudInstances.classReference.name
Имя нужного
InstanceClass-объекта (например,finland-medium).
- целочисленный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.zones
Переопределение перечня зон, в которых создаются инстансы.
Значение по умолчанию зависит от выбранного облачного провайдера и обычно соответствует всем зонам используемого региона.
Пример:
zones: - Helsinki - Espoo - Tampere
- объектspec.cri
Параметры container runtime.
- объектspec.cri.containerd
Параметры работы containerd.
При настройке этих параметров
cri.typeдолжен бытьContainerd.- целочисленныйspec.cri.containerd.maxConcurrentDownloads
Максимальное количество параллельных потоков загрузки для каждой операции pull.
По умолчанию:
3
- объектspec.cri.docker
Параметры настройки Docker.
Внимание.
Dockerсчитается устаревшим, не используйте его.- булевыйspec.cri.docker.manage
Автоматическое управление версией и параметрами Docker.
По умолчанию:
true - целочисленныйspec.cri.docker.maxConcurrentDownloads
Максимальное количество потоков одновременного скачивания Docker-образов.
По умолчанию:
3
- объектspec.cri.notManaged
Настройки для CRI, установленных на узлах вручную.
- строкаspec.cri.notManaged.criSocketPath
Путь к сокету CRI.
- строкаspec.cri.type
Тип container runtime.
Если не указан, используется значение параметра
defaultCRIобщих параметров кластера (ClusterConfiguration).Внимание. Поддержка Docker считается устаревшей.
Допустимые значения:
Docker,Containerd,NotManaged
- объект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: Mondays: 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.rollingUpdate
Additional parameters for the
RollingUpdatemode.- массив объектов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: Mondays: 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.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. Если явно не задан, по умолчанию задается в зависимости от значения параметра podSubnetNodeCIDRPrefix ClusterConfiguration:120подов дляpodSubnetNodeCIDRPrefix≥24;250подов дляpodSubnetNodeCIDRPrefix=23;500подов дляpodSubnetNodeCIDRPrefix=22;1000подов дляpodSubnetNodeCIDRPrefix≤21.
- строкаspec.kubelet.rootDir
Путь к каталогу для файлов kubelet (volume mounts и т. д.).
По умолчанию:
/var/lib/kubelet
- объект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.nodeType
Обязательный параметр
Тип узлов, которые представляет эта группа:
Cloud— узлы для этой группы будут автоматически создаваться (и удаляться) в настроенном облачном провайдере;Static— статический узел, размещенный на железном сервере или виртуальной машине. Узел не управляется cloud-controller-manager’ом, даже если включен один из облачных провайдеров;Hybrid— статический узел (созданный вручную или любыми внешними инструментами), размещенный в том же облаке, с которым настроена интеграция у одного из облачных провайдеров. На таком узле работает CSI и такой узел управляется cloud-controller-manager’ом: объектNodeавтоматически обогащается информацией о зоне и регионе по данным, полученным от облака; при удалении узла из облака соответствующий ему объектNodeбудет удален в Kubernetes.
Допустимые значения:
Cloud,Static,Hybrid - объектspec.operatingSystem
Параметры операционной системы.
- булевыйspec.operatingSystem.manageKernel
Этот параметр не используется. Раньше он включал автоматическое управление ядром операционной системы.
По умолчанию:
true
Описывает runtime-параметры группы узлов.
- объектmetadata
- строкаmetadata.name
Шаблон:
^[a-z0-9]([-a-z0-9]*[a-z0-9])?$Максимальная длина:
42
- объектstatus
- объектstatus.conditionSummary
- строкаstatus.conditionSummary.ready
Status of the condition summary.
Допустимые значения:
True,False - строкаstatus.conditionSummary.statusMessage
Status message about group handling.
- целочисленныйstatus.desired
Number of desired machines in the group.
- строкаstatus.error
Error message about possible problems with the group handling.
- целочисленныйstatus.instances
Number of instances (in any state) in the group.
- строкаstatus.kubernetesVersion
The current version of kubernetes on the nodes, or the version to which the nodes will be upgraded.
- массив объектовstatus.lastMachineFailures
- объектstatus.lastMachineFailures.lastOperation
- строкаstatus.lastMachineFailures.lastOperation.description
Last operation’s description.
- строкаstatus.lastMachineFailures.lastOperation.lastUpdateTime
Timestamp of last status update for operation.
- строкаstatus.lastMachineFailures.lastOperation.state
Machine’s operation state.
- строкаstatus.lastMachineFailures.lastOperation.type
Type of operation.
- строкаstatus.lastMachineFailures.name
Machine’s name.
- строкаstatus.lastMachineFailures.ownerRef
Machine owner’s name.
- строкаstatus.lastMachineFailures.providerID
Machine’s ProviderID.
- целочисленныйstatus.max
Maximum amount of instances in the group.
- целочисленныйstatus.min
Minimal amount of instances in the group.
- целочисленныйstatus.nodes
Number of Kubernetes nodes (in any state) in the group.
- целочисленныйstatus.ready
Number of ready Kubernetes nodes in the group.
- целочисленныйstatus.standby
Number of overprovisioned instances in the group.
- целочисленныйstatus.upToDate
Number of up-to-date nodes in the group.
- объект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.cloudInstances
Параметры заказа облачных виртуальных машин.
Внимание. Допустимо использовать только совместно с
nodeType: CloudEphemeral.- объектspec.cloudInstances.classReference
Обязательный параметр
Ссылка на объект
InstanceClass. Уникален для каждого модуляcloud-provider-*.- строкаspec.cloudInstances.classReference.kind
Тип объекта (например,
OpenStackInstanceClass). Тип объекта указан в документации соответствующего модуля облачного провайдера.Допустимые значения:
OpenStackInstanceClass,GCPInstanceClass,VsphereInstanceClass,AWSInstanceClass,YandexInstanceClass,AzureInstanceClass,VCDInstanceClass,ZvirtInstanceClass,DynamixInstanceClass,HuaweiCloudInstanceClass,DVPInstanceClass - строкаspec.cloudInstances.classReference.name
Имя нужного
InstanceClass-объекта (например,finland-medium).
- целочисленный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.zones
Переопределение перечня зон, в которых создаются инстансы.
Значение по умолчанию зависит от выбранного облачного провайдера и обычно соответствует всем зонам используемого региона.
Пример:
zones: - Helsinki - Espoo - Tampere
- объектspec.cri
Параметры container runtime.
- объектspec.cri.containerd
Параметры работы containerd.
При настройке этих параметров
cri.typeдолжен бытьContainerd.- целочисленныйspec.cri.containerd.maxConcurrentDownloads
Максимальное количество параллельных потоков загрузки для каждой операции pull.
По умолчанию:
3
- строкаspec.cri.type
Container runtime type.
If not specified, the
defaultCRIparameter value of ClusterConfiguration is used.Note. Docker support is deprecated.
Допустимые значения:
Docker,Containerd,NotManaged
- объект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: Mondays: 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.rollingUpdate
Additional parameters for the
RollingUpdatemode.- массив объектов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: Mondays: 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.docker
Параметры настройки Docker.
При настройке этих параметров
cri.typeдолжен бытьDocker.Внимание.
Dockerсчитается устаревшим, не используйте его.- булевыйspec.docker.manage
Автоматическое управление версией и параметрами Docker.
По умолчанию:
true - целочисленныйspec.docker.maxConcurrentDownloads
Максимальное количество потоков одновременного скачивания Docker-образов.
По умолчанию:
3
- объект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. Если явно не задан, по умолчанию задается в зависимости от значения параметра podSubnetNodeCIDRPrefix ClusterConfiguration:120подов дляpodSubnetNodeCIDRPrefix≥24;250подов дляpodSubnetNodeCIDRPrefix=23;500подов дляpodSubnetNodeCIDRPrefix=22;1000подов дляpodSubnetNodeCIDRPrefix≤21.
- строкаspec.kubelet.rootDir
Путь к каталогу для файлов kubelet (volume mounts и т. д.).
По умолчанию:
/var/lib/kubelet
- строкаspec.kubernetesVersion
Желаемая минорная версия Kubernetes.
По умолчанию соответствует глобально выбранной для кластера версии (см. документацию по установке) или, если таковая не определена, текущей версии
control plane.Допустимые значения:
1.31,1.32,1.33,1.34,1.35Пример:
kubernetesVersion: '1.32' - объект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.nodeType
Обязательный параметр
Тип узлов, которые представляет эта группа:
Cloud— узлы для этой группы будут автоматически создаваться (и удаляться) в настроенном облачном провайдере;Static— статический узел, размещенный на железном сервере или виртуальной машине. Узел не управляется cloud-controller-manager’ом, даже если включен один из облачных провайдеров;Hybrid— статический узел (созданный вручную или любыми внешними инструментами), размещенный в том же облаке, с которым настроена интеграция у одного из облачных провайдеров. На таком узле работает CSI и такой узел управляется cloud-controller-manager’ом: объектNodeавтоматически обогащается информацией о зоне и регионе по данным, полученным от облака; при удалении узла из облака соответствующий ему объектNodeбудет удален в Kubernetes.
Допустимые значения:
Cloud,Static,Hybrid - объектspec.operatingSystemПараметр устарел
Параметры операционной системы.
- булевыйspec.operatingSystem.manageKernelПараметр устарел
Этот параметр не используется. Раньше он включал автоматическое управление ядром операционной системы.
По умолчанию:
true
- объектspec.static
Параметры статического узла.
- массив строкspec.static.internalNetworkCIDRs
CIDR подсети.
NodeGroupConfiguration
Scope: Cluster
Version: v1alpha1
Ресурс для выполнения bash-скриптов на узлах.
Подробнее в документации модуля.
- объектspec
Обязательный параметр
- массив строкspec.bundles
Обязательный параметр
Список bundle’ов, для которых будет выполняться скрипт. Для выбора всех bundle’ов нужно указать
'*'.Примеры:
bundles: - ubuntu-lts - centos-7bundles: - ubuntu-ltsbundles: - "*"- строкаЭлемент массива
Допустимые значения:
ubuntu-lts,centos,debian,redos,rosa,astra,altlinux,opensuse,*
- строкаspec.content
Обязательный параметр
Содержимое шага конфигурации в виде bash-скрипта.
Для генерации скрипта возможно использовать Go Template.
Получить список параметров, доступных для использования в шаблонах, можно из секрета
bashible-apiserver-context:d8 k -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 }Пример использования параметров proxy, указанных в ресурсе ClusterConfiguration:
bb-set-proxy curl -I https://google.com bb-unset-proxytest-function-with-proxy() { bb-set-proxy trap bb-unset-proxy RETURN curl -I https://google.com } test-function-with-proxy - массив строкspec.nodeGroups
Обязательный параметр
Список NodeGroup, к которым нужно применять шаг конфигурации. Для выбора всех NodeGroups нужно указать ‘*’.
Примеры:
nodeGroups: - master - workernodeGroups: - workernodeGroups: - "*" - целочисленныйspec.weight
Очередность выполнения шага конфигурации.
По умолчанию:
100
NodeUser
Scope: Cluster
Описывает Linux-пользователей, которые будут созданы на всех узлах.
Домашний каталог пользователя создается в директории /home/deckhouse/.
- объектspec
Обязательный параметр
- массив строкspec.extraGroups
Список дополнительных групп, в которые должен быть включен пользователь.
Примеры:
extraGroups: - dockerextraGroups: - docker - ftp - булевыйspec.isSudoer
Определяет, будет ли пользователю разрешено sudo.
По умолчанию:
falseПример:
isSudoer: true - массив строкspec.nodeGroups
Список NodeGroup, к которым будет применяться настройка пользователя.
По умолчанию:
["*"]Примеры:
nodeGroups: - master - workernodeGroups: - workernodeGroups: - "*" - строка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
- объектstatus
Информация о статусе создания пользователя
- объектstatus.errors
Список ошибок создания пользователя на каждом узле
Устаревший ресурс. Поддержка ресурса может быть исключена в следующих версиях.
Описывает Linux-пользователей, которые будут созданы на всех узлах.
Домашний каталог пользователя создается в директории /home/deckhouse/.
- объектspec
Обязательный параметр
- массив строкspec.extraGroups
Список дополнительных групп, в которые должен быть включен пользователь.
Примеры:
extraGroups: - dockerextraGroups: - docker - ftp - булевыйspec.isSudoer
Определяет, будет ли пользователю разрешено sudo.
По умолчанию:
falseПример:
isSudoer: true - массив строкspec.nodeGroups
Список NodeGroup, к которым будет применяться настройка пользователя.
По умолчанию:
["*"]Примеры:
nodeGroups: - master - workernodeGroups: - workernodeGroups: - "*" - строка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
SSHCredentials
Scope: Cluster
Содержит данные, необходимые 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.sudoPasswordEncoded
Пароль пользователя для использования
sudo, закодированный в Base64. - строкаspec.user
Обязательный параметр
Имя пользователя для подключения по SSH.
Содержит данные, необходимые 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.
StaticInstance
Scope: Cluster
Описывает объект машины для 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.apiVersion
Версия API ресурса.
- строкаspec.credentialsRef.fieldPath
Если речь идет о части объекта, а не о целом объекте, эта строка должна содержать действительное выражение для доступа к полю JSON/Go, например
desiredState.manifest.containers[2].Например, если ссылка на объект относится к контейнеру внутри пода, этот параметр будет иметь значение вида:
spec.containers{name}(гдеname— имя контейнера, который вызвал событие) или, если имя контейнера не указано, —spec.containers[2](контейнер с индексом 2 в этом поде). Этот синтаксис выбран только для того, чтобы иметь четко определенный способ ссылки на часть объекта. - строкаspec.credentialsRef.kind
Kind ресурса.
- строкаspec.credentialsRef.name
Имя ресурса.
- строкаspec.credentialsRef.namespace
Неймспейс ресурса.
Подробнее: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
- строкаspec.credentialsRef.resourceVersion
Конкретная версия ресурса, на которую ссылается данная ссылка, если таковая имеется.
- строкаspec.credentialsRef.uid
UID ресурса.
Подробнее: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
- объектstatus
StaticInstanceStatus defines the observed state of StaticInstance.
- массив объектовstatus.conditions
Conditions defines current service state of the StaticInstance.
Condition contains details for one aspect of the current state of this API Resource.
- строкаstatus.conditions.lastTransitionTime
Обязательный параметр
lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
- строкаstatus.conditions.message
Обязательный параметр
message is a human readable message indicating details about the transition. This may be an empty string.
Максимальная длина:
32768 - целочисленныйstatus.conditions.observedGeneration
observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.
Допустимые значения:
0 <= X - строкаstatus.conditions.reason
Обязательный параметр
reason contains a programmatic identifier indicating the reason for the condition’s last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.
Шаблон:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$Длина:
1..1024 - строкаstatus.conditions.status
Обязательный параметр
status of the condition, one of True, False, Unknown.
Допустимые значения:
True,False,Unknown - строкаstatus.conditions.type
Обязательный параметр
type of condition in CamelCase or in foo.example.com/CamelCase.
Шаблон:
^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$Максимальная длина:
316
- объектstatus.currentStatus
- строкаstatus.currentStatus.lastUpdateTime
- строкаstatus.currentStatus.phase
Допустимые значения:
Error,Pending,Bootstrapping,Running,Cleaning
- объектstatus.machineRef
The reference to the
StaticMachineobject.- строкаstatus.machineRef.apiVersion
API version of the referent.
- строкаstatus.machineRef.fieldPath
If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: “spec.containers{name}” (where “name” refers to the name of the container that triggered the event) or if no container name is specified “spec.containers[2]” (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.
- строкаstatus.machineRef.kind
Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
- строкаstatus.machineRef.name
Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
- строкаstatus.machineRef.namespace
Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
- строкаstatus.machineRef.resourceVersion
Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
- строкаstatus.machineRef.uid
UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
- объектstatus.nodeRef
The reference to the
Nodeobject.- строкаstatus.nodeRef.apiVersion
API version of the referent.
- строкаstatus.nodeRef.fieldPath
If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: “spec.containers{name}” (where “name” refers to the name of the container that triggered the event) or if no container name is specified “spec.containers[2]” (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.
- строкаstatus.nodeRef.kind
Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
- строкаstatus.nodeRef.name
Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
- строкаstatus.nodeRef.namespace
Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
- строкаstatus.nodeRef.resourceVersion
Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
- строкаstatus.nodeRef.uid
UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
Описывает объект машины для 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.apiVersion
Версия API ресурса.
- строкаspec.credentialsRef.fieldPath
Если речь идет о части объекта, а не о целом объекте, эта строка должна содержать действительное выражение для доступа к полю JSON/Go, например
desiredState.manifest.containers[2].Например, если ссылка на объект относится к контейнеру внутри пода, этот параметр будет иметь значение вида:
spec.containers{name}(гдеname— имя контейнера, который вызвал событие) или, если имя контейнера не указано, —spec.containers[2](контейнер с индексом 2 в этом поде). Этот синтаксис выбран только для того, чтобы иметь четко определенный способ ссылки на часть объекта. - строкаspec.credentialsRef.kind
Kind ресурса.
- строкаspec.credentialsRef.name
Имя ресурса.
- строкаspec.credentialsRef.namespace
Неймспейс ресурса.
Подробнее: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
- строкаspec.credentialsRef.resourceVersion
Конкретная версия ресурса, на которую ссылается данная ссылка, если таковая имеется.
- строкаspec.credentialsRef.uid
UID ресурса.
Подробнее: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
- объектstatus
StaticInstanceStatus defines the observed state of StaticInstance.
- массив объектовstatus.conditions
Conditions defines current service state of the StaticInstance.
Condition contains details for one aspect of the current state of this API Resource.
- строкаstatus.conditions.lastTransitionTime
Обязательный параметр
lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
- строкаstatus.conditions.message
Обязательный параметр
message is a human readable message indicating details about the transition. This may be an empty string.
Максимальная длина:
32768 - целочисленныйstatus.conditions.observedGeneration
observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.
Допустимые значения:
0 <= X - строкаstatus.conditions.reason
Обязательный параметр
reason contains a programmatic identifier indicating the reason for the condition’s last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.
Шаблон:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$Длина:
1..1024 - строкаstatus.conditions.status
Обязательный параметр
status of the condition, one of True, False, Unknown.
Допустимые значения:
True,False,Unknown - строкаstatus.conditions.type
Обязательный параметр
type of condition in CamelCase or in foo.example.com/CamelCase.
Шаблон:
^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$Максимальная длина:
316
- объектstatus.currentStatus
- строкаstatus.currentStatus.lastUpdateTime
- строкаstatus.currentStatus.phase
Допустимые значения:
Error,Pending,Bootstrapping,Running,Cleaning
- объектstatus.machineRef
The reference to the
StaticMachineobject.- строкаstatus.machineRef.apiVersion
API version of the referent.
- строкаstatus.machineRef.fieldPath
If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: “spec.containers{name}” (where “name” refers to the name of the container that triggered the event) or if no container name is specified “spec.containers[2]” (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.
- строкаstatus.machineRef.kind
Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
- строкаstatus.machineRef.name
Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
- строкаstatus.machineRef.namespace
Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
- строкаstatus.machineRef.resourceVersion
Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
- строкаstatus.machineRef.uid
UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
- объектstatus.nodeRef
The reference to the
Nodeobject.- строкаstatus.nodeRef.apiVersion
API version of the referent.
- строкаstatus.nodeRef.fieldPath
If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: “spec.containers{name}” (where “name” refers to the name of the container that triggered the event) or if no container name is specified “spec.containers[2]” (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.
- строкаstatus.nodeRef.kind
Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
- строкаstatus.nodeRef.name
Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
- строкаstatus.nodeRef.namespace
Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
- строкаstatus.nodeRef.resourceVersion
Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
- строкаstatus.nodeRef.uid
UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids