Глобальные настройки Deckhouse хранятся в параметре global конфигурации Deckhouse.

В параметре publicDomainTemplate указывается шаблон, с учетом которого некоторые модули Deckhouse создают Ingress-ресурсы. Чтобы получить к ним доступ вы должны настроить ваш DNS, либо добавить DNS-записи локально (например в файле /etc/hosts для Linux).

Если у вас нет возможности заводить wildcard-записи DNS, для целей тестирования вы можете воспользоваться сервисом nip.io или аналогами. Обратите внимание на особенности заполнения ConfigMap deckhouse.

Параметры

  • highAvailabilityбулевый

    Параметр глобального включения режима отказоустойчивости для модулей, которые его поддерживают.

    Если значение не указано, то оно определяется автоматически как true для кластеров с более чем одним master-узлом. В остальных случаях значение определяется как false.

    Примеры:

    highAvailability: true
    
    highAvailability: false
    
  • modulesобъект

    Общие параметры модулей Deckhouse.

    • httpsобъект

      Способ реализации протокола HTTPS, используемый модулями Deckhouse.

      Примеры:

      https:
        certManager:
          clusterIssuerName: letsencrypt
        mode: CertManager
      
      https:
        mode: Disabled
      
      https:
        mode: OnlyInURI
      
      https:
        mode: CustomCertificate
        customCertificate:
          secretName: plainstring
      
      • certManagerобъект
        • clusterIssuerNameстрока

          Имя ClusterIssuer, используемого для модулями Deckhouse.

          В модуле cert-manager доступны следующие ClusterIssuer: letsencrypt, letsencrypt-staging, selfsigned, clouddns, cloudflare, digitalocean, route53. Также, вы можете использовать свой ClusterIssuer.

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

      • customCertificateобъект
        • secretNameстрока

          Имя Secret’а в пространстве имен d8-system, который будет использоваться модулями Deckhouse.

          Указанный Secret должен быть в формате kubernetes.io/tls.

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

      • modeстрока

        Режим работы HTTPS:

        • CertManager — модули Deckhouse будут работать по HTTPS, самостоятельно заказывая сертификат с помощью ClusterIssuer, указанного в параметре certManager.clusterIssuerName;
        • CustomCertificate — модули Deckhouse будут работать по HTTPS, используя сертификат из пространства имен d8-system;
        • Disabled — модули Deckhouse будут работать только по HTTP (некоторые модули могут не работать, например user-authn);
        • OnlyInURI — модули Deckhouse будут работать по HTTP, подразумевая, что перед ними стоит внешний HTTPS-балансировщик, который терминирует HTTPS.

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

        Допустимые значения: Disabled, CertManager, CustomCertificate, OnlyInURI

    • ingressClassстрока

      Класс Ingress-контроллера (Ingress class), используемый для модулей Deckhouse.

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

      Пример:

      ingressClass: nginx
      
    • placementобъект

      Настройки, определяющие расположение компонентов модулей Deckhouse по умолчанию.

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

        Список ключей пользовательских toleration.

        Необходимо указывать, чтобы позволить планировщику размещать критически важные компоненты Deckhouse, такие как cni и csi, на выделенных узлах.

        Пример:

        customTolerationKeys:
        - dedicated.example.com
        - node-dedicated.example.com/master
        
    • proxyобъект

      Глобальная настройка proxy для модулей.

      Пример:

      proxy:
        httpProxy: http://1.2.3.4:80
        httpsProxy: https://1.2.3.4:443
        noProxy:
        - 127.0.0.1
        - 192.168.0.0/24
        - example.com
        - ".example.com"
      
      • httpProxyстрока

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

        Шаблон: ^(http|https)://[0-9a-zA-Z\.\-:]+$

      • httpsProxyстрока

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

        Шаблон: ^(http|https)://[0-9a-zA-Z\.\-:]+$

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

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

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

    • publicDomainTemplateстрока

      Шаблон DNS-имен c ключом %s в качестве динамической части строки.

      Модули Deckhouse используют этот шаблон при создании Ingress-ресурсов.

      Например, для шаблона %s.kube.company.my модуль prometheus создаст Ingress-ресурс на адрес grafana.kube.company.my для доступа к Grafana.

      Нельзя использовать в кластере DNS-имена (создавать соответствующие Ingress-ресурсы), подпадающие под указанный шаблон! Это может вызвать пересечения с создаваемыми Deckhouse Ingress-ресурсами.

      Если параметр не указан, то Ingress-ресурсы создаваться не будут.

      Шаблон: .*%s.*

      Пример:

      publicDomainTemplate: "%s.kube.company.my"
      
    • resourcesRequestsобъект

      Количество ресурсов (CPU и памяти), выделяемых для работы компонентов Deckhouse, работающих на каждом узле кластера (обычно это DaemonSet’ы, например, cni-flannel, monitoring-ping).

      Подробнее про единицы измерения ресурсов.

      • everyNodeобъект

        Количество ресурсов (CPU и памяти), выделяемых для компонентов Deckhouse работающих на каждом узле кластера.

        Пример:

        everyNode:
          cpu: 100m
          memory: 150M
        
        • cpu

          Количество CPU, выделяемое на каждом узле.

          По умолчанию: 300m

        • memoryстрока

          Объем памяти, выделяемый на каждом узле.

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

          Шаблон: ^[0-9]+(E|P|T|G|M|K|Ei|Pi|Ti|Gi|Mi|Ki)?$

      • masterNodeобъект

        Количество ресурсов (CPU и памяти), выделяемых для компонентов Deckhouse работающих на каждом master-узле (в том числе control plane, если control plane управляется Deckhouse).

        Внимание! В случае managed-кластера (Kubernetes as a Service) Deckhouse может не управлять компонентами control plane. В таких случаях все указанные в параметре masterNode ресурсы отдаются компонентам Deckhouse.

        Пример:

        masterNode:
          cpu: '1'
          memory: 150Mi
        
        • cpu

          Количество CPU, выделяемое на каждом master-узле дополнительно к указанному в параметре everyNode.cpu:

          • Для кластера, управляемого Deckhouse, значение по умолчанию определяется автоматически по формуле: .status.allocatable.cpu минимального master-узла (но не более 4 (ядер CPU)) минус количество CPU, указанное в параметре everyNode.cpu.
          • Для managed-кластера значение по умолчанию: 1 (одно ядро CPU) минус количество CPU, указанное в параметре everyNode.cpu.
        • memoryстрока

          Объем памяти, выделяемый на каждом master-узле, дополнительно к указанному в параметре everyNode.memory:

          • Для кластера, управляемого Deckhouse, значение по умолчанию определяется автоматически по формуле: .status.allocatable.memory минимального master-узла (но не более 8Gi) минус значение, указанное в параметре everyNode.memory.
          • Для managed-кластера значение по умолчанию: 1Gi минус значение, указанное в параметре everyNode.memory.

          Шаблон: ^[0-9]+(E|P|T|G|M|K|Ei|Pi|Ti|Gi|Mi|Ki)?$

  • storageClassстрока

    Имя storage class, который будет использоваться для всех компонентов Deckhouse (Prometheus, Grafana, OpenVPN и т.д.).

    • Если значение не указано, то используется автоматически определяемый cluster.defaultStorageClass. Если cluster.defaultStorageClass не определен, то используется emptyDir.
    • Этот параметр имеет смысл использовать только в исключительных ситуациях.

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