Глобальные настройки 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: 2
settings: # <-- Параметры модуля из раздела "Параметры" ниже.
defaultClusterStorageClass: 'default-fast'
modules:
publicDomainTemplate: '%s.kube.company.my'
resourcesRequests:
controlPlane:
cpu: 1000m
memory: 500M
placement:
customTolerationKeys:
- dedicated.example.com
storageClass: 'default-fast'
Параметры
Версия схемы: 2
- settings
- settings.defaultClusterStorageClass
Имя StorageClass, который DKP определит как StorageClass используемый в кластере по умолчанию.
DKP запрещает вручную добавлять или изменять default-аннотацию (
storageclass.kubernetes.io/is-default-class='true'
) у StorageClass. Используйте параметр, чтобы определять или изменять StorageClass используемый в кластере по умолчанию.Если значение не указано, фактический StorageClass используемый в кластере по умолчанию будет определяться в следующем порядке:
- StorageClass в кластере, имеющий default-аннотацию (
storageclass.kubernetes.io/is-default-class='true'
); - Первый (по алфавиту) StorageClass из создаваемых модулем облачного провайдера (если какой-либо модуль облачного провайдера используется).
По умолчанию:
""
- StorageClass в кластере, имеющий default-аннотацию (
- 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.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.storageClass
Имя StorageClass, который будет использоваться для всех компонентов Deckhouse Kubernetes Platform (Prometheus, Grafana, OpenVPN и т. д.).
- Если значение не указано, то используется StorageClass по умолчанию, установленный в кластере.
- Этот параметр имеет смысл использовать только в исключительных ситуациях.
- Этот параметр применяется в процессе включения модуля.
По умолчанию:
""
- settings.storageClassПараметр устарел
Устарел. Используйте параметр settings.modules.storageClass.
Имя StorageClass, который будет использоваться для всех компонентов Deckhouse Kubernetes Platform (Prometheus, Grafana, OpenVPN и т. д.).
- Если значение не указано, то используется StorageClass по умолчанию, установленный в кластере.
- Этот параметр имеет смысл использовать только в исключительных ситуациях.
- Этот параметр применяется в процессе включения модуля.
По умолчанию:
""