Глобальные настройки Deckhouse хранятся в ресурсе ModuleConfig/global
(см. конфигурация Deckhouse).
В параметре publicDomainTemplate указывается шаблон DNS-имен, с учетом которого некоторые модули Deckhouse создают Ingress-ресурсы.
Если у вас нет возможности заводить wildcard-записи DNS, для тестирования можно воспользоваться сервисом sslip.io или его аналогами.
Домен, используемый в шаблоне, не должен совпадать с доменом, указанным в параметре clusterDomain. Например, если clusterDomain
установлен в cluster.local
(значение по умолчанию), то publicDomainTemplate
не может быть %s.cluster.local
.
Пример ресурса ModuleConfig/global
:
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: global
spec:
version: 1
settings: # <-- Параметры модуля из раздела "Параметры" ниже.
modules:
publicDomainTemplate: '%s.kube.company.my'
resourcesRequests:
controlPlane:
cpu: 1000m
memory: 500M
placement:
customTolerationKeys:
- dedicated.example.com
storageClass: sc-fast
Параметры
Версия схемы: 1
- settings
- settings.highAvailability
Параметр глобального включения режима отказоустойчивости для модулей, которые его поддерживают.
Если значение не указано, оно определяется автоматически как
true
для кластеров с более чем одним master-узлом. В остальных случаях значение определяется какfalse
.Примеры:
highAvailability: true
highAvailability: false
- settings.modules
Общие параметры модулей Deckhouse.
- settings.modules.https
Способ реализации протокола HTTPS, используемый модулями Deckhouse.
Примеры:
https: certManager: clusterIssuerName: letsencrypt mode: CertManager
https: mode: Disabled
https: mode: OnlyInURI
https: mode: CustomCertificate customCertificate: secretName: plainstring
- settings.modules.https.certManager
- settings.modules.https.certManager.clusterIssuerName
Имя
ClusterIssuer
, используемого модулями Deckhouse.В модуле cert-manager доступны следующие
ClusterIssuer
:letsencrypt
,letsencrypt-staging
,selfsigned
,clouddns
,cloudflare
,digitalocean
,route53
. Также вы можете использовать свойClusterIssuer
.По умолчанию:
"letsencrypt"
- settings.modules.https.customCertificate
- settings.modules.https.customCertificate.secretName
Имя Secret’а в пространстве имен
d8-system
, который будет использоваться модулями Deckhouse.Указанный Secret должен быть в формате kubernetes.io/tls.
По умолчанию:
"false"
- settings.modules.https.mode
Режим работы HTTPS:
CertManager
— модули Deckhouse будут работать по HTTPS, самостоятельно заказывая сертификат с помощью ClusterIssuer, указанного в параметреcertManager.clusterIssuerName
;CustomCertificate
— модули Deckhouse будут работать по HTTPS, используя сертификат из пространства именd8-system
;Disabled
— модули Deckhouse будут работать только по HTTP (некоторые модули могут не работать, например user-authn);OnlyInURI
— модули Deckhouse будут работать по HTTP, подразумевая, что перед ними стоит внешний HTTPS-балансировщик, который терминирует HTTPS. Балансировщик должен обеспечивать перенаправление с HTTP на HTTPS.
По умолчанию:
"CertManager"
Допустимые значения:
Disabled
,CertManager
,CustomCertificate
,OnlyInURI
- settings.modules.ingressClass
Класс Ingress-контроллера (Ingress class), используемый для модулей Deckhouse.
По умолчанию:
"nginx"
Шаблон:
^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
Пример:
ingressClass: nginx
- settings.modules.placement
Настройки, определяющие расположение компонентов модулей Deckhouse по умолчанию.
- settings.modules.placement.customTolerationKeys
Список ключей пользовательских toleration.
Необходимо указывать, чтобы позволить планировщику размещать критически важные компоненты Deckhouse, такие как cni и csi, на выделенных узлах.
Пример:
customTolerationKeys: - dedicated.example.com - node-dedicated.example.com/master
- settings.modules.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"
- settings.modules.proxy.httpProxyПараметр устарел
Proxy URL для HTTP-запросов.
Шаблон:
^(http|https)://[0-9a-zA-Z\.\-:]+$
- settings.modules.proxy.httpsProxyПараметр устарел
Proxy URL для HTTPS-запросов.
Шаблон:
^(http|https)://[0-9a-zA-Z\.\-:]+$
- settings.modules.proxy.noProxyПараметр устарел
Список IP и доменных имен, для которых проксирование не применяется. Для указания wildcard-домена используйте имя с точкой в качестве префикса (например,
.example.com
).- Элемент массива
Шаблон:
^[a-z0-9\-\./]+$
- settings.modules.publicDomainTemplate
Шаблон DNS-имен c ключом
%s
в качестве динамической части строки.Модули Deckhouse используют этот шаблон при создании Ingress-ресурсов.
Например, для шаблона
%s.kube.company.my
модуль prometheus создаст Ingress-ресурс на адресgrafana.kube.company.my
для доступа к Grafana.Обратите внимание:
- Нельзя использовать в кластере DNS-имена (создавать соответствующие Ingress-ресурсы), подпадающие под указанный шаблон. Это может вызвать пересечения с создаваемыми Deckhouse Ingress-ресурсами.
- Домен, используемый в шаблоне, не должен совпадать с доменом, указанным в параметре clusterDomain. Например, если
clusterDomain
установлен вcluster.local
(значение по умолчанию), тоpublicDomainTemplate
не может быть%s.cluster.local
. - Домен, используемый в шаблоне, не должен совпадать с доменом, указанным в параметре clusterDomain и внутренней сервисной зоне сети. Например, если clusterDomain установлен в cluster.local (по умолчанию), а сервисная зона сети — ru-central1.internal, то publicDomainTemplate не может быть %s.cluster.local или %s.ru-central1.internal.
- Если параметр не указан, Ingress-ресурсы создаваться не будут.
Шаблон:
^(%s([-a-z0-9]*[a-z0-9])?|[a-z0-9]([-a-z0-9]*)?%s([-a-z0-9]*)?[a-z0-9]|[a-z0-9]([-a-z0-9]*)?%s)(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
Примеры:
publicDomainTemplate: "%s.kube.company.my"
publicDomainTemplate: kube-%s.company.my
- settings.modules.resourcesRequests
Количество ресурсов (CPU и памяти), выделяемых для работы компонентов Deckhouse, работающих на каждом узле кластера (обычно это DaemonSet’ы, например
cni-flannel
,monitoring-ping
).Подробнее про единицы измерения ресурсов.
- settings.modules.resourcesRequests.controlPlane
Количество ресурсов (CPU и памяти), выделяемых для компонентов control plane, работающих на каждом master-узле кластера. Не работает для not-managed-облаков (например, GKE).
Пример:
controlPlane: cpu: 1000m memory: 500M
- settings.modules.resourcesRequests.controlPlane.cpu
Количество CPU, выделяемых для компонентов control plane, работающих на каждом master-узле кластера.
- settings.modules.resourcesRequests.controlPlane.memory
Объем памяти, выделяемой для компонентов control plane, работающих на каждом master-узле кластера.
Шаблон:
^[0-9]+(\.[0-9]+)?(E|P|T|G|M|K|Ei|Pi|Ti|Gi|Mi|Ki)?$
- settings.modules.resourcesRequests.everyNodeПараметр устарел
Количество ресурсов (CPU и памяти), выделяемых для компонентов Deckhouse, работающих на каждом узле кластера.
Пример:
everyNode: cpu: 100m memory: 150M
- settings.modules.resourcesRequests.everyNode.cpu
Количество CPU, выделяемых на каждом узле.
По умолчанию:
300m
- settings.modules.resourcesRequests.everyNode.memory
Объем памяти, выделяемой на каждом узле.
По умолчанию:
"512Mi"
Шаблон:
^[0-9]+(\.[0-9]+)?(E|P|T|G|M|K|Ei|Pi|Ti|Gi|Mi|Ki)?$
- settings.modules.resourcesRequests.masterNodeПараметр устарел
Количество ресурсов (CPU и памяти), выделяемых для компонентов Deckhouse, работающих на каждом master-узле (в том числе
control plane
, еслиcontrol plane
управляется Deckhouse).Внимание! В случае managed-кластера (Kubernetes as a Service) Deckhouse может не управлять компонентами
control plane
. В таких случаях все указанные в параметреmasterNode
ресурсы отдаются компонентам Deckhouse.Пример:
masterNode: cpu: '1' memory: 150Mi
- settings.modules.resourcesRequests.masterNode.cpu
Количество CPU, выделяемых на каждом master-узле дополнительно к указанному в параметре
everyNode.cpu
:- Для кластера, управляемого Deckhouse, значение по умолчанию определяется автоматически по формуле:
.status.allocatable.cpu
минимального master-узла (но не более4
(ядер CPU)) минус количество CPU, указанное в параметреeveryNode.cpu
. - Для managed-кластера значение по умолчанию:
1
(одно ядро CPU) минус количество CPU, указанное в параметреeveryNode.cpu
.
- Для кластера, управляемого Deckhouse, значение по умолчанию определяется автоматически по формуле:
- settings.modules.resourcesRequests.masterNode.memory
Объем памяти, выделяемой на каждом master-узле, дополнительно к указанному в параметре
everyNode.memory
:- Для кластера, управляемого Deckhouse, значение по умолчанию определяется автоматически по формуле:
.status.allocatable.memory
минимального master-узла (но не более8Gi
) минус значение, указанное в параметреeveryNode.memory
. - Для managed-кластера значение по умолчанию:
1Gi
минус значение, указанное в параметреeveryNode.memory
.
Шаблон:
^[0-9]+(\.[0-9]+)?(E|P|T|G|M|K|Ei|Pi|Ti|Gi|Mi|Ki)?$
- Для кластера, управляемого Deckhouse, значение по умолчанию определяется автоматически по формуле:
- settings.storageClass
Имя StorageClass, который будет использоваться для всех компонентов Deckhouse Kubernetes Platform (Prometheus, Grafana, OpenVPN и т. д.).
- Если значение не указано, то используется StorageClass по умолчанию, установленный в кластере.
- Этот параметр имеет смысл использовать только в исключительных ситуациях.
- Этот параметр применяется в процессе включения модуля.
По умолчанию:
""