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

      • spec.cloudInstances.maxUnavailablePerZone
        целочисленный

        Недоступное количество инстансов при 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.

        Если не указан, используется значение параметра defaultCRI ClusterConfiguration.

        Внимание. Поддержка 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.

          Внимание! Данная настройка игнорируется (узлам будет выдано разрешение без предварительного выгона подов с узлов):

          По умолчанию: true

        • 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.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.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: 2
          
          customConfigs:
            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.40gb
              
              profile: 1g.10gb
              
              profile: 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 подов для podSubnetNodeCIDRPrefix24;
        • 250 подов для podSubnetNodeCIDRPrefix = 23;
        • 500 подов для podSubnetNodeCIDRPrefix = 22;
        • 1000 подов для podSubnetNodeCIDRPrefix21.
      • 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

      • spec.cloudInstances.maxUnavailablePerZone
        целочисленный

        Недоступное количество инстансов при 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.

          Внимание! Данная настройка игнорируется (узлам будет выдано разрешение без предварительного выгона подов с узлов):

          По умолчанию: true

        • 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.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.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 подов для podSubnetNodeCIDRPrefix24;
        • 250 подов для podSubnetNodeCIDRPrefix = 23;
        • 500 подов для podSubnetNodeCIDRPrefix = 22;
        • 1000 подов для podSubnetNodeCIDRPrefix21.
      • 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

      • spec.cloudInstances.maxUnavailablePerZone
        целочисленный

        Недоступное количество инстансов при 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 defaultCRI parameter 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.

          Внимание. Данная настройка игнорируется (узлам будет выдано разрешение без предварительного выгона подов с узлов):

          По умолчанию: true

        • 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.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.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 подов для podSubnetNodeCIDRPrefix24;
        • 250 подов для podSubnetNodeCIDRPrefix = 23;
        • 500 подов для podSubnetNodeCIDRPrefix = 22;
        • 1000 подов для podSubnetNodeCIDRPrefix21.
      • 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-7
      
      bundles:
      - ubuntu-lts
      
      bundles:
      - "*"
      
      • Элемент массива
        строка

        Допустимые значения: 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-proxy
      
      test-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
      - worker
      
      nodeGroups:
      - worker
      
      nodeGroups:
      - "*"
      
    • spec.weight
      целочисленный

      Очередность выполнения шага конфигурации.

      По умолчанию: 100

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
      
  • status
    объект

    Информация о статусе создания пользователя

    • status.errors
      объект

      Список ошибок создания пользователя на каждом узле

Устаревший ресурс. Поддержка ресурса может быть исключена в следующих версиях.

Описывает 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
      

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
      объект

      Обязательный параметр

      Ссылка на ресурс SSHCredentials.

      • 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
        строка

        Конкретная версия ресурса, на которую ссылается данная ссылка, если таковая имеется.

        Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency

      • spec.credentialsRef.uid
        строка
  • 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 StaticMachine object.

      • 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 Node object.

      • 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
      объект

      Обязательный параметр

      Ссылка на ресурс SSHCredentials.

      • 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
        строка

        Конкретная версия ресурса, на которую ссылается данная ссылка, если таковая имеется.

        Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency

      • spec.credentialsRef.uid
        строка
  • 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 StaticMachine object.

      • 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 Node object.

      • 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