Описание ресурсов, используемых при установке Deckhouse.

ClusterConfiguration

Version: deckhouse.io/v1

Общие параметры кластера.

Определяют, например, сетевые параметры, параметры CRI, версию control plane и т. д. Некоторые параметры можно изменять после развертывания кластера, во время его работы.

Чтобы изменить содержимое ресурса ClusterConfiguration в работающем кластере, выполните следующую команду:

kubectl -n d8-system exec -ti svc/deckhouse-leader -c deckhouse -- deckhouse-controller edit cluster-configuration

Пример:

apiVersion: deckhouse.io/v1
kind: ClusterConfiguration
podSubnetNodeCIDRPrefix: '24'
podSubnetCIDR: 10.244.0.0/16
serviceSubnetCIDR: 192.168.0.0/16
kubernetesVersion: '1.27'
clusterDomain: k8s.internal
clusterType: Cloud
cloud:
  prefix: k8s-dev
  provider: Yandex
proxy:
  httpProxy: https://user:password@proxy.company.my:8443
  httpsProxy: https://user:password@proxy.company.my:8443
  noProxy:
  - company.my
  • apiVersion
    строка

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

    Используемая версия API Deckhouse.

    Допустимые значения: deckhouse.io/v1, deckhouse.io/v1alpha1

  • cloud
    объект

    Параметры облачного провайдера (если используется clusterType Cloud).

    • cloud.prefix
      строка

      Префикс объектов, создаваемых в облаке.

      Используется, например, для того, чтобы отличать объекты, создаваемые для разных кластеров, для настройки маршрутизации и т. д.

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

    • cloud.provider
      строка

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

      Облачный провайдер.

      Допустимые значения: OpenStack, AWS, GCP, Yandex, vSphere, Azure, VCD, Zvirt

  • clusterDomain
    строка

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

    Домен кластера (используется для маршрутизации внутри кластера).

    Обратите внимание: домен не должен совпадать с доменом, используемым в шаблоне DNS-имен в параметре publicDomainTemplate. Например, нельзя одновременно устанавливать clusterDomain: cluster.local и publicDomainTemplate: %s.cluster.local.

    По умолчанию: "cluster.local"

  • clusterType
    строка

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

    Тип инфраструктуры кластера:

    • Static — кластер на bare metal (физические серверы) или виртуальных машинах. В случае виртуальных машин подразумевается, что у Deckhouse нет доступа к API для управления виртуальными машинами (они управляются администратором с помощью обычных средств облачной инфраструктуры);
    • Cloud — кластер, развернутый в облачной инфраструктуре. Этот тип подразумевает, что у Deckhouse есть доступ к API облачной инфраструктуры для управления виртуальными машинами.

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

  • defaultCRI
    строка

    Тип container runtime, используемый на узлах кластера (в NodeGroup’ах) по умолчанию.

    Если используется значение NotManaged, то Deckhouse не будет управлять (устанавливать и настраивать) container runtime. В этом случае образы, используемые в NodeGroup’ах, должны содержать уже установленный container runtime.

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

    Допустимые значения: Docker, Containerd, NotManaged

  • kind
    строка

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

    Допустимые значения: ClusterConfiguration

  • kubernetesVersion
    строка

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

    Версия control plane кластера Kubernetes.

    Изменение параметра в работающем кластере приведет к автоматическому обновлению версии control plane кластера.

    Если указано Automatic, то используется версия control plane, которая считается стабильной на данный момент. Если стабильная версия control plane меньше максимальной, которая когда либо была установлена в кластере, больше чем на 1 минорную версию - тогда версия кластера не изменится. Изменение этой версии может произойти при смене минорной версии релиза Deckhouse (см. список изменений к релизу).

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

  • podSubnetCIDR
    строка

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

    Адресное пространство Pod’ов кластера.

    Внимание! Смена параметра в уже развернутом кластере невозможна в обычном режиме. Чтобы обойти это ограничение, используйте специальный флаг.

  • podSubnetNodeCIDRPrefix
    строка

    Префикс сети Pod’ов на узле.

    Внимание! Смена параметра в уже развернутом кластере невозможна в обычном режиме. Чтобы обойти это ограничение, используйте специальный флаг.

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

  • proxy
    объект

    Глобальная настройка proxy-сервера (в основном для работы в закрытых окружениях).

    Описанные в этой секции параметры будут транслированы в переменные окружения HTTP_PROXY, HTTPS_PROXY и NO_PROXY для всех узлов кластера и компонентов Deckhouse. Это приведёт к тому, что HTTP(S) запросы (например, при выполнении curl, git и т. д.) ко всем не указанным в параметре noProxy ресурсам будут выполняться через прокси. Подсети podSubnetCIDR, serviceSubnetCIDR и домен clusterDomain добавляются в noProxy автоматически.

    Внимание! Чтобы избежать использования прокси в запросах между компонентами кластера, важно заполнить параметр noProxy списком подсетей, которые используются на узлах.

    Доступно только в enterprise edition.

    • proxy.httpProxy
      строка

      URL proxy-сервера для HTTP-запросов.

      При необходимости укажите имя пользователя, пароль и порт proxy-сервера.

      Доступно только в enterprise edition.

      Шаблон: ^https?://([!*'();&=+$,/?%#\[\]0-9a-zA-Z\.\-\_]+(\:[!*'();:@&=+$,/?%#\[\]0-9a-zA-Z\.\-\_]+)?@)?[0-9a-zA-Z\.\-]+(\:[0-9]{1,5})?$

      Примеры:

      httpProxy: http://proxy.company.my
      
      httpProxy: https://user:password@proxy.company.my:8443
      
      httpProxy: https://DOMAIN%5Cuser:password@proxy.company.my:8443
      
      httpProxy: https://user%40domain.local:password@proxy.company.my:8443
      
    • proxy.httpsProxy
      строка

      URL proxy-сервера для HTTPS-запросов.

      При необходимости укажите имя пользователя, пароль и порт proxy-сервера.

      Доступно только в enterprise edition.

      Шаблон: ^https?://([!*'();&=+$,/?%#\[\]0-9a-zA-Z\.\-\_]+(\:[!*'();:@&=+$,/?%#\[\]0-9a-zA-Z\.\-\_]+)?@)?[0-9a-zA-Z\.\-]+(\:[0-9]{1,5})?$

      Примеры:

      httpsProxy: http://proxy.company.my
      
      httpsProxy: https://user:password@proxy.company.my:8443
      
      httpsProxy: https://DOMAIN%5Cuser:password@proxy.company.my:8443
      
      httpsProxy: https://user%40domain.local:password@proxy.company.my:8443
      
    • proxy.noProxy
      массив строк

      Список IP и доменных имен, для которых проксирование не применяется.

      Для настройки wildcard-доменов используйте написание вида “.example.com”.

      Доступно только в enterprise edition.

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

        Шаблон: ^[a-z0-9\-\./]+$

  • serviceSubnetCIDR
    строка

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

    Адресное пространство для service’ов кластера.

    Внимание! Смена параметра в уже развернутом кластере невозможна в обычном режиме. Чтобы обойти это ограничение, используйте специальный флаг.

InitConfiguration

Version: deckhouse.io/v1

Конфигурация Deckhouse, с которой он запустится после установки.

Пример:

apiVersion: deckhouse.io/v1
kind: InitConfiguration
deckhouse:
  releaseChannel: Stable
  imagesRepo: nexus.company.my/deckhouse/ee
  registryDockerCfg: eyJhdXRocyI6IHsgIm5leHVzLmNvbXBhbnkubXkiOiB7InVzZXJuYW1lIjoibmV4dXMtdXNlciIsInBhc3N3b3JkIjoibmV4dXMtcEBzc3cwcmQiLCJhdXRoIjoiYm1WNGRYTXRkWE5sY2pwdVpYaDFjeTF3UUhOemR6QnlaQW89In19fQo=
  registryScheme: HTTPS
  registryCA: |
    -----BEGIN CERTIFICATE-----
    ...
    -----END CERTIFICATE-----
  configOverrides:
    global:
      modules:
        publicDomainTemplate: "%s.kube.company.my"
    cniFlannelEnabled: true
    cniFlannel:
      podNetworkMode: VXLAN
  • apiVersion
    строка

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

    Используемая версия API Deckhouse.

    Допустимые значения: deckhouse.io/v1, deckhouse.io/v1alpha1

  • deckhouse
    объект

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

    Параметры, необходимые для установки Deckhouse.

    • deckhouse.bundle
      Параметр устарел
      строка

      Используйте параметр bundle ModuleConfig ‘deckhouse’ вместо этого параметра.

      Устанавливаемый в кластере вариант поставки Deckhouse.

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

      Допустимые значения: Minimal, Managed, Default

    • deckhouse.configOverrides
      Параметр устарел
      объект

      Вместо этого параметра, используйте ресурсы ModuleConfig для настройки модулей.

      Начальная конфигурация Deckhouse.

      Укажите здесь параметры конфигурации Deckhouse, с которыми он должен запуститься после установки.

      Структура, указанная в параметре, будет использована для создания глобальной конфигурации Deckhouse (moduleConfig global) и настроек модулей (moduleConfig <module-name>).

      Формат структуры:

      configOverrides:
        global:
          ... секция глобальных параметров
        <moduleName>Enabled: true|false
        <moduleName>:
          ... секция параметров модуля
      

      Внимание! В configOverrides для включения/отключения модуля и указания его настроек используется название модуля в camelCase (например, userAuthn). После установки Deckhouse для управления модулем используется ресурс moduleConfig с названием модуля в snake-case (например, user-authn).

      Пример:

      configOverrides:
        global:
          modules:
            publicDomainTemplate: "%s.k8s.company.my"
        monitoringPingEnabled: false
        userAuthn:
          publishAPI:
            enable: true
            https:
              mode: Global
        prometheus:
          longtermRetentionDays: 5
      
    • deckhouse.devBranch
      Параметр устарел
      строка

      Параметр используется для нужд разработки. Будет заменен на аргумент CLI-команды.

    • deckhouse.imagesRepo
      строка

      Адрес container registry с образами Deckhouse.

      Укажите, если используется редакция Enterprise Edition Deckhouse или сторонний container registry (например, прокси-сервер в закрытом окружении).

      Адрес учитывает используемую редакцию Deckhouse. Публичный адрес container registry для Deckhouse Enterprise Edition — registry.deckhouse.io/deckhouse/ee.

      По умолчанию: "registry.deckhouse.io/deckhouse/ce"

      Шаблон: ^[0-9a-zA-Z\.\-]+(\:[0-9]{1,5})?(\/[0-9a-zA-Z\.\-\_\/]+)?$

    • deckhouse.logLevel
      Параметр устарел
      строка

      Используйте параметр logLevel ModuleConfig ‘deckhouse’ вместо этого параметра.

      Уровень логирования Deckhouse.

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

      Допустимые значения: Debug, Info, Error

    • deckhouse.registryCA
      строка

      Корневой сертификат, которым можно проверить сертификат container registry при работе по HTTPS (если registry использует самоподписанные SSL-сертификаты).

    • deckhouse.registryDockerCfg
      строка

      Строка авторизации из файла конфигурации Docker-клиента (в Linux обычно это $HOME/.docker/config.json) для доступа к стороннему container registry, закодированная в Base64.

      Например, для доступа к container registry registry.company.my под пользователем user с паролем P@ssw0rd это будет eyJhdXRocyI6eyJyZWdpc3RyeS5jb21wYW55Lm15Ijp7ImF1dGgiOiJkWE5sY2pwUVFITnpkekJ5WkFvPSJ9fX0K (строка {"auths":{"registry.company.my":{"auth":"dXNlcjpQQHNzdzByZAo="}}} в Base64).

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

    • deckhouse.registryScheme
      строка

      Протокол доступа к container registry (HTTP или HTTPS).

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

      Допустимые значения: HTTP, HTTPS

    • deckhouse.releaseChannel
      Параметр устарел
      строка

      Используйте параметр releaseChannel ModuleConfig ‘deckhouse’ вместо этого параметра.

      Устанавливаемый в кластере канал обновлений Deckhouse.

      Допустимые значения: Alpha, Beta, EarlyAccess, Stable, RockSolid

  • kind
    строка

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

    Допустимые значения: InitConfiguration

StaticClusterConfiguration

Version: deckhouse.io/v1

Параметры статического (bare metal) кластера.

Чтобы изменить содержимое ресурса StaticClusterConfiguration в работающем кластере, выполните следующую команду:

kubectl -n d8-system exec -ti svc/deckhouse-leader -c deckhouse -- deckhouse-controller edit static-cluster-configuration

Пример:

apiVersion: deckhouse.io/v1
kind: StaticClusterConfiguration
internalNetworkCIDRs:
- 10.244.0.0/16
- 10.50.0.0/16
  • apiVersion
    строка

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

    Используемая версия API Deckhouse.

    Допустимые значения: deckhouse.io/v1, deckhouse.io/v1alpha1

  • internalNetworkCIDRs
    массив строк

    Список внутренних сетей узлов кластера.

    Внутренние сети используются для связи компонентов Kubernetes (kube-apiserver, kubelet и т. д.) между собой.

    Если каждый узел в кластере имеет только один сетевой интерфейс, параметр можно не указывать и ресурс StaticClusterConfiguration можно не создавать.

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

      Шаблон: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(3[0-2]|[1-2][0-9]|[0-9]))$

      Пример:

      192.168.42.0/24
      
  • kind
    строка

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

    Допустимые значения: StaticClusterConfiguration