Instance

Scope: Cluster
Version: v1alpha1

Запрос на выделение облачного узла.

NodeGroup

Scope: Cluster

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

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

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

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

  • specобъект

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

    • spec.chaosобъект

      Настройки chaos monkey.

      Пример:

      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). Тип объекта указан в документации соответствующего модуля cloud provider.

          Допустимые значения: OpenStackInstanceClass, GCPInstanceClass, VsphereInstanceClass, AWSInstanceClass, YandexInstanceClass, AzureInstanceClass

        • 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целочисленный

        Приоритет группы узлов.

        При масштабировании кластера, автоскейлер будет выбирать сначала группы узлов с установленным бОльшим приоритетом. Если существует несколько групп узлов с одинаковым приоритетом, то группа будет выбрана из них случайным образом.

        Использование приоритетов может быть удобно, например, для предпочтения заказа более дешевых узлов (например, spot-инстансов) перед более дорогими.

      • spec.cloudInstances.quickShutdownбулевый

        Снижает время drain’а CloudEphemeral-машин до 5 минут.

      • spec.cloudInstances.standbyстрока или число

        Количество резервных (подогретых) узлов в этой NodeGroup во всех зонах.

        Резервный узел — это узел кластера, на котором резервируются ресурсы, доступные в любой момент для масштабирования. Наличие такого узла позволяет автоскейлеру кластера не ждать инициализации узла (которая может занимать несколько минут), а сразу размещать на нем нагрузку.

        Значение может быть абсолютным (например, 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) Pod’ов с узла перед выдачей разрешения на disruption.

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

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

        • spec.disruptions.automatic.windowsмассив объектов

          Список окон disruption-обновлений узлов.

          • spec.disruptions.automatic.windows.daysмассив строк

            Дни недели, в которые применяется окно обновлений.

            Пример:

            days:
            - Mon
            - 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
            - 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целочисленный

        Максимальное количество Pod’ов на узлах данной 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, которые будут добавлены после регистрации узла.

      Пример:

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

      Пример:

      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). Тип объекта указан в документации соответствующего модуля cloud provider.

          Допустимые значения: OpenStackInstanceClass, GCPInstanceClass, VsphereInstanceClass, AWSInstanceClass, YandexInstanceClass, AzureInstanceClass

        • 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 во всех зонах.

        Резервный узел — это узел кластера, на котором резервируются ресурсы, доступные в любой момент для масштабирования. Наличие такого узла позволяет автоскейлеру кластера не ждать инициализации узла (которая может занимать несколько минут), а сразу размещать на нем нагрузку.

        Значение может быть абсолютным (например, 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) Pod’ов с узла перед выдачей разрешения на disruption.

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

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

        • spec.disruptions.automatic.windowsмассив объектов

          Список окон disruption-обновлений узлов.

          • spec.disruptions.automatic.windows.daysмассив строк

            Дни недели, в которые применяется окно обновлений.

            Пример:

            days:
            - Mon
            - 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
            - 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целочисленный

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

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

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

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

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

    • spec.nodeTemplateобъект

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

      Пример:

      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.

      Пример:

      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). Тип объекта указан в документации соответствующего модуля cloud provider.

          Допустимые значения: OpenStackInstanceClass, GCPInstanceClass, VsphereInstanceClass, AWSInstanceClass, YandexInstanceClass, AzureInstanceClass

        • 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 во всех зонах.

        Резервный узел — это узел кластера, на котором резервируются ресурсы, доступные в любой момент для масштабирования. Наличие такого узла позволяет автоскейлеру кластера не ждать инициализации узла (которая может занимать несколько минут), а сразу размещать на нем нагрузку.

        Значение может быть абсолютным (например, 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) Pod’ов с узла перед выдачей разрешения на disruption.

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

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

        • spec.disruptions.automatic.windowsмассив объектов

          Список окон disruption-обновлений узлов.

          • spec.disruptions.automatic.windows.daysмассив строк

            Дни недели, в которые применяется окно обновлений.

            Пример:

            days:
            - Mon
            - 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
            - 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целочисленный

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

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

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

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

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

    • spec.kubernetesVersionстрока

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

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

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

      Пример:

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

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

      Пример:

      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

  • specобъект

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

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

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

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

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

      Примеры:

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

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

      Содержимое шага конфигурации. Может быть или шаблоном Go Template или bash-скриптом.

    • 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 пользователя на узлах.

      Неизменяемый в течение жизни ресурса параметр.

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

      Пример:

      uid: 1001
      

Описывает 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 пользователя на узлах.

      Неизменяемый в течение жизни ресурса параметр.

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

      Пример:

      uid: 1001