Instance

Scope: Cluster
Version: v1alpha1

Описывает независимый от реализации объект эфемерной машины.

NodeGroup

Scope: Cluster

Описывает runtime-параметры группы узлов.

Пример:

# NodeGroup for cloud nodes in AWS.
apiVersion: deckhouse.io/v1
kind: NodeGroup
metadata:
  name: test
spec:
  nodeType: CloudEphemeral
  cloudInstances:
    zones:
      - eu-west-1a
      - eu-west-1b
    minPerZone: 1
    maxPerZone: 2
    classReference:
      kind: AWSInstanceClass
      name: test
  nodeTemplate:
    labels:
      tier: test
---
# NodeGroup for static nodes on bare metal servers (or VMs).
apiVersion: deckhouse.io/v1
kind: NodeGroup
metadata:
  name: worker
spec:
  nodeType: Static
  • metadataобъект
    • metadata.nameстрока

      Шаблон: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$

      Максимальная длина: 42

  • 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

        • 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 будет выбирать сначала группы узлов с установленным бОльшим приоритетом. Если существует несколько групп узлов с одинаковым приоритетом, группа будет выбрана из них случайным образом.

        Использование приоритетов может быть удобно, например, для предпочтения заказа более дешевых узлов (например, 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.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 из первичной конфигурации кластера (параметр cluster-configuration.yaml Secret’а d8-cluster-configuration в пространстве имен kube-system), которая создается при установке.

        Допустимые значения: 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объект

        Дополнительные параметры для режима 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.kubeletобъект

      Параметры настройки kubelet.

      • spec.kubelet.containerLogMaxFilesцелочисленный

        Максимальное количество файлов журналов с учетом ротации.

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

        Допустимые значения: 1 <= X <= 20

      • spec.kubelet.containerLogMaxSizeстрока

        Максимальный размер файла журнала до того, как он будет ротирован.

        По умолчанию: "50Mi"

        Шаблон: \d+[Ei|Pi|Ti|Gi|Mi|Ki|E|P|T|G|M|k|m]

      • spec.kubelet.maxPodsцелочисленный

        Максимальное количество подов на узлах данной NodeGroup.

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

      • spec.kubelet.resourceReservationобъект

        Управление резервированием ресурсов для системных служб на узле.

        Больше информации в документации Kubernetes.

        • spec.kubelet.resourceReservation.modeстрока

          Выбрать режим резервирования системных ресурсов:

          • Off — отключить резервирование системных ресурсов.
          • Auto — автоматически подсчитать резервирование через алгоритм, основанный на размере узла.
          • Static — указать статические значения через параметр static.

          Обратите внимание, что Deckhouse не использует выделенную cgroup для резервирования ресурсов (флаг -system-reserved-cgroup не используется).

          По умолчанию: "Auto"

        • spec.kubelet.resourceReservation.staticобъект

          Параметры резервирования ресурсов в режиме Static.

          • spec.kubelet.resourceReservation.static.cpuстрока или число

            Шаблон: \d+[m]

          • spec.kubelet.resourceReservation.static.ephemeralStorageстрока или число

            Шаблон: \d+[Ei|Pi|Ti|Gi|Mi|Ki|E|P|T|G|M|k|m]

          • spec.kubelet.resourceReservation.static.memoryстрока или число

            Шаблон: \d+[Ei|Pi|Ti|Gi|Mi|Ki|E|P|T|G|M|k|m]

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

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

      Тип узлов, которые представляет эта группа:

      • CloudEphemeral — узлы для этой группы будут автоматически создаваться (и удаляться) в настроенном облачном провайдере;
      • CloudPermanent — узлы этой группы берутся из ProviderClusterConfiguration и создаются/удаляются через dhctl;
      • CloudStatic — узел, созданный вручную или любыми внешними инструментами, размещенный в том же облаке, с которым настроена интеграция у одного из облачных провайдеров. На таком узле работает CSI и такой узел управляется cloud-controller-manager’ом: объект Node автоматически обогащается информацией о зоне и регионе по данным, полученным от облака; при удалении узла из облака, соответствующий ему объект Node будет удален в Kubernetes;
      • Static — статический узел, размещенный на физическом сервере или виртуальной машине. Узел не управляется cloud-controller-manager’ом, даже если включен один из облачных провайдеров.

      Допустимые значения: CloudEphemeral, CloudPermanent, CloudStatic, Static

    • spec.operatingSystemобъект

      Параметры операционной системы.

      • spec.operatingSystem.manageKernelПараметр устарелбулевый

        Этот параметр не используется. Раньше он включaл автоматическое управление ядром операционной системы.

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

    • spec.staticInstancesобъект

      Параметры настройки машин статических узлов кластера.

      • spec.staticInstances.countцелочисленный

        Количество виртуальных машин, которые нужно создать.

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

        Допустимые значения: 0 <= X

      • spec.staticInstances.labelSelectorобъект

        Настройка фильтра меток (label) по ресурсам.

        Если указаны одновременно matchExpressions и matchLabels, учитываются оба фильтра (операция И).

        Пустое значение labelSelector соответствует всем объектам. Нулевое — никаким.

        • spec.staticInstances.labelSelector.matchExpressionsмассив объектов

          Список фильтров на основе выражений.

          Итоговый результат — результат пересечения множеств, определяемых всеми фильтрами в списке (операция И).

          A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.

          • spec.staticInstances.labelSelector.matchExpressions.keyстрока

            Имя метки.

          • spec.staticInstances.labelSelector.matchExpressions.operatorстрока

            Оператор сравнения.

          • spec.staticInstances.labelSelector.matchExpressions.valuesмассив строк

            Значение метки.

            • Элемент массивастрока

              Шаблон: [a-z0-9]([-a-z0-9]*[a-z0-9])?

              Длина: 1..63

        • spec.staticInstances.labelSelector.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

  • 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

        • 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 из первичной конфигурации кластера (параметр cluster-configuration.yaml Secret’а d8-cluster-configuration в пространстве имен kube-system), которая создается при установке.

        Допустимые значения: 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.

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

      • 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булевый

        Этот параметр не используется. Раньше он включaл автоматическое управление ядром операционной системы.

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

Описывает runtime-параметры группы узлов.

  • metadataобъект
    • metadata.nameстрока

      Шаблон: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$

      Максимальная длина: 42

  • 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

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

        Value defaultCRI from the initial cluster configration (cluster-configuration.yaml parameter from the d8-cluster-configuration secret in the kube-system namespace) is used if not specified.

        Note! the Docker 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.

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

      • spec.kubelet.rootDirстрока

        Путь к каталогу для файлов kubelet (volume mounts и т. д.).

        По умолчанию: "/var/lib/kubelet"

    • spec.kubernetesVersionстрока

      Желаемая минорная версия Kubernetes.

      По умолчанию соответствует глобально выбранной для кластера версии (см. документацию по установке) или, если таковая не определена, текущей версии control plane.

      Допустимые значения: 1.25, 1.26, 1.27, 1.28, 1.29

      Пример:

      kubernetesVersion: '1.27'
      
    • spec.nodeTemplateобъект

      Настройки Node-объектов в Kubernetes, которые будут добавлены после регистрации узла.

      Пример:

      nodeTemplate:
        labels:
          environment: production
          app: warp-drive-ai
        annotations:
          ai.fleet.com/discombobulate: 'true'
        taints:
        - effect: NoExecute
          key: ship-class
          value: frigate
      
      • spec.nodeTemplate.annotationsобъект

        Аналогично стандартному полю metadata.annotations.

        Пример:

        annotations:
          ai.fleet.com/discombobulate: 'true'
        
      • spec.nodeTemplate.labelsобъект

        Аналогично стандартному полю metadata.labels.

        Пример:

        labels:
          environment: production
          app: warp-drive-ai
        
      • spec.nodeTemplate.taintsмассив объектов

        Аналогично полю .spec.taints из объекта Node.

        Внимание! Доступны только поля effect, key, value.

        Пример:

        taints:
        - effect: NoExecute
          key: ship-class
          value: frigate
        
        • spec.nodeTemplate.taints.effectстрока

          Допустимые значения: NoSchedule, PreferNoSchedule, NoExecute

        • spec.nodeTemplate.taints.keyстрока
        • spec.nodeTemplate.taints.valueстрока
    • spec.nodeTypeстрока

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

      Тип узлов, которые представляет эта группа:

      • Cloud — узлы для этой группы будут автоматически создаваться (и удаляться) в настроенном облачном провайдере;
      • Static — статический узел, размещенный на железном сервере или виртуальной машине. Узел не управляется cloud-controller-manager’ом, даже если включен один из облачных провайдеров;
      • Hybrid — статический узел (созданный вручную или любыми внешними инструментами), размещенный в том же облаке, с которым настроена интеграция у одного из облачных провайдеров. На таком узле работает CSI и такой узел управляется cloud-controller-manager’ом: объект Node автоматически обогащается информацией о зоне и регионе по данным, полученным от облака; при удалении узла из облака соответствующий ему объект Node будет удален в Kubernetes.

      Допустимые значения: Cloud, Static, Hybrid

    • spec.operatingSystemПараметр устарелобъект

      Параметры операционной системы.

      • spec.operatingSystem.manageKernelПараметр устарелбулевый

        Этот параметр не используется. Раньше он включaл автоматическое управление ядром операционной системы.

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

    • spec.staticобъект

      Параметры статического узла.

      • spec.static.internalNetworkCIDRsмассив строк

        CIDR подсети.

NodeGroupConfiguration

Scope: Cluster
Version: v1alpha1

Ресурс для выполнения bash-скриптов на узлах.

Подробнее в документации модуля.

  • specобъект

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

    • spec.bundlesмассив строк

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

      Список bundle’ов, для которых будет выполняться скрипт. Для выбора всех bundle’ов нужно указать '*'.

      Список возможных bundle’ов такой же, как у параметра allowedBundles модуля.

      Примеры:

      bundles:
      - ubuntu-lts
      - centos-7
      
      bundles:
      - ubuntu-lts
      
      bundles:
      - "*"
      
    • spec.contentстрока

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

      Содержимое шага конфигурации в виде bash-скрипта.

      Для генерации скрипта возможно использовать Go Template.

      Получить список параметров, доступных для использования в шаблонах, можно из секрета bashible-apiserver-context:

      kubectl -n d8-cloud-instance-manager get secrets bashible-apiserver-context -o jsonpath='{.data.input\.yaml}'| base64 -d
      

      Пример:

      {{- range .nodeUsers }}
      echo 'Tuning environment for user {{ .name }}'
      # Some code for tuning user environment
      {{- end }}
      

      Также в скрипте допустимо использовать подготовленные команды bashbooster. Например:

      bb-event-on 'bb-package-installed' 'post-install'
      post-install() {
        bb-log-info "Setting reboot flag due to kernel was updated"
        bb-flag-set reboot
      }
      
    • spec.nodeGroupsмассив строк

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

      Список NodeGroup, к которым нужно применять шаг конфигурации. Для выбора всех NodeGroups нужно указать ‘*’.

      Примеры:

      nodeGroups:
      - master
      - worker
      
      nodeGroups:
      - worker
      
      nodeGroups:
      - "*"
      
    • spec.weightцелочисленный

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

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

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
      

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

Содержит данные, необходимые Cluster API Provider Static (CAPS) для подключения по протоколу SSH. CAPS подключается к серверу (виртуальной машине), описанному в ресурсе StaticInstance для управления его состоянием.

Ссылка на этот ресурс указывается в параметре credentialsRef ресурса StaticInstance.

  • apiVersionстрока

    Версия API объекта.

  • kindстрока

    Тип объекта.

  • metadataобъект
  • specобъект

    Желаемое состояние объекта SSHCredentials.

    • spec.privateSSHKeyстрока

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

      Закрытый ключ SSH в формате PEM, закодированный в Base64.

    • spec.sshExtraArgsстрока

      Список дополнительных параметров для SSH-клиента (openssh).

      Примеры:

      sshExtraArgs: "-vvv"
      
      sshExtraArgs: "-c chacha20-poly1305@openssh.com"
      
      sshExtraArgs: "-c aes256-gcm@openssh.com"
      
      sshExtraArgs: "-m umac-64-etm@openssh.com"
      
      sshExtraArgs: "-m hmac-sha2-512-etm@openssh.com"
      
    • spec.sshPortцелочисленный

      Порт для подключения по SSH.

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

      Допустимые значения: 1 <= X <= 65535

    • spec.sudoPasswordстрока

      Пароль пользователя для использования sudo.

    • spec.userстрока

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

      Имя пользователя для подключения по SSH.

StaticInstance

Scope: Cluster
Version: v1alpha1

Описывает объект машины для Cluster API Provider Static.

  • apiVersionстрока

    Версия API объекта.

  • kindстрока

    Тип объекта.

  • metadataобъект
  • specобъект

    Желаемое состояние объекта StaticInstance.

    • spec.addressстрока

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

      IP-адрес сервера (виртуальной машины) для подключения.

      Шаблон: ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$

    • spec.credentialsRefобъект

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

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

      • spec.credentialsRef.apiVersionстрока

        Версия API ресурса.

      • spec.credentialsRef.kindстрока

        Kind ресурса.

      • spec.credentialsRef.nameстрока

        Имя ресурса.