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

ClusterConfiguration

Version: deckhouse.io/v1

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

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

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

kubectl -n d8-system exec -ti deploy/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.25'
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

  • clusterDomainстрока

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

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

    По умолчанию: "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, которая считается стабильной на данный момент. Изменение этой версии может произойти при смене минорной версии релиза Deckhouse (см. список изменений к релизу).

    Допустимые значения: 1.24, 1.25, 1.26, 1.27, 1.28, 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\.\-:@_]+$

      Примеры:

      httpProxy: http://proxy.company.my
      
      httpProxy: https://user:password@proxy.company.my:8443
      
    • proxy.httpsProxyстрока

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

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

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

      Шаблон: ^https?://[0-9a-zA-Z\.\-:@_]+$

      Примеры:

      httpsProxy: http://proxy.company.my
      
      httpsProxy: https://user: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"
        linstorEnabled: true
        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 deploy/deckhouse -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