Глобальные настройки 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
- булевыйhighAvailability
Параметр глобального включения режима отказоустойчивости для модулей, которые его поддерживают.
Если значение не указано, оно определяется автоматически как
trueдля кластеров с более чем одним master-узлом. В остальных случаях значение определяется какfalse.Примеры:
highAvailability: truehighAvailability: false - объектmodules
Общие параметры модулей Deckhouse.
- объектmodules.https
Способ реализации протокола HTTPS, используемый модулями Deckhouse.
Примеры:
https: certManager: clusterIssuerName: letsencrypt mode: CertManagerhttps: mode: Disabledhttps: mode: OnlyInURIhttps: mode: CustomCertificate customCertificate: secretName: plainstring- объектmodules.https.certManager
- строкаmodules.https.certManager.clusterIssuerName
Имя
ClusterIssuer, используемого модулями Deckhouse.В модуле cert-manager доступны следующие
ClusterIssuer:letsencrypt,letsencrypt-staging,selfsigned,clouddns,cloudflare,digitalocean,route53. Также вы можете использовать свойClusterIssuer.По умолчанию:
"letsencrypt"
- объектmodules.https.customCertificate
- строкаmodules.https.customCertificate.secretName
Имя Secret’а в пространстве имен
d8-system, который будет использоваться модулями Deckhouse.Указанный Secret должен быть в формате kubernetes.io/tls.
По умолчанию:
"false"
- строка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
- строка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 - объектmodules.placement
Настройки, определяющие расположение компонентов модулей Deckhouse по умолчанию.
- массив строкmodules.placement.customTolerationKeys
Список ключей пользовательских toleration.
Необходимо указывать, чтобы позволить планировщику размещать критически важные компоненты Deckhouse, такие как cni и csi, на выделенных узлах.
Пример:
customTolerationKeys: - dedicated.example.com - node-dedicated.example.com/master
- объект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"- строкаmodules.proxy.httpProxyПараметр устарел
Proxy URL для HTTP-запросов.
Шаблон:
^(http|https)://[0-9a-zA-Z\.\-:]+$ - строкаmodules.proxy.httpsProxyПараметр устарел
Proxy URL для HTTPS-запросов.
Шаблон:
^(http|https)://[0-9a-zA-Z\.\-:]+$ - массив строкmodules.proxy.noProxyПараметр устарел
Список IP и доменных имен, для которых проксирование не применяется. Для указания wildcard-домена используйте имя с точкой в качестве префикса (например,
.example.com).- строкаЭлемент массива
Шаблон:
^[a-z0-9\-\./]+$
- строка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.
Если параметр не указан, 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 - объектmodules.resourcesRequests
Количество ресурсов (CPU и памяти), выделяемых для работы компонентов Deckhouse, работающих на каждом узле кластера (обычно это DaemonSet’ы, например
cni-flannel,monitoring-ping).Подробнее про единицы измерения ресурсов.
- объектmodules.resourcesRequests.controlPlane
Количество ресурсов (CPU и памяти), выделяемых для компонентов control plane, работающих на каждом master-узле кластера. Не работает для not-managed-облаков (например, GKE).
Пример:
controlPlane: cpu: 1000m memory: 500M- modules.resourcesRequests.controlPlane.cpu
Количество CPU, выделяемых для компонентов control plane, работающих на каждом master-узле кластера.
- строкаmodules.resourcesRequests.controlPlane.memory
Объем памяти, выделяемой для компонентов control plane, работающих на каждом master-узле кластера.
Шаблон:
^[0-9]+(\.[0-9]+)?(E|P|T|G|M|K|Ei|Pi|Ti|Gi|Mi|Ki)?$
- объектmodules.resourcesRequests.everyNodeПараметр устарел
Количество ресурсов (CPU и памяти), выделяемых для компонентов Deckhouse, работающих на каждом узле кластера.
Пример:
everyNode: cpu: 100m memory: 150M- modules.resourcesRequests.everyNode.cpu
Количество CPU, выделяемых на каждом узле.
По умолчанию:
300m - строкаmodules.resourcesRequests.everyNode.memory
Объем памяти, выделяемой на каждом узле.
По умолчанию:
"512Mi"Шаблон:
^[0-9]+(\.[0-9]+)?(E|P|T|G|M|K|Ei|Pi|Ti|Gi|Mi|Ki)?$
- объект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- 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, значение по умолчанию определяется автоматически по формуле:
- строка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, значение по умолчанию определяется автоматически по формуле:
- строкаstorageClass
Имя storage class, который будет использоваться для всех компонентов Deckhouse (Prometheus, Grafana, OpenVPN и т. д.).
- Если значение не указано, используется автоматически определяемый
global.discovery.defaultStorageClass. Еслиglobal.discovery.defaultStorageClassне определен, используетсяemptyDir. - Этот параметр имеет смысл использовать только в исключительных ситуациях.
- Этот параметр применяется в процессе включения модуля.
По умолчанию:
"" - Если значение не указано, используется автоматически определяемый