Глобальные настройки Deckhouse хранятся в ресурсе ModuleConfig/global
(см. конфигурация Deckhouse).
В параметре publicDomainTemplate указывается шаблон DNS-имен, с учётом которого некоторые модули Deckhouse создают Ingress-ресурсы. Если параметр не указан, Ingress-ресурсы создаваться не будут.
Если у вас нет возможности заводить wildcard-записи DNS, для тестирования можно воспользоваться сервисом sslip.io или его аналогами.
Домен, указанный в шаблоне, не может совпадать или быть поддоменом домена, заданного в параметре clusterDomain
. Мы не рекомендуем менять значение clusterDomain
без особой необходимости.
Для корректной работы шаблона необходимо предварительно настроить службы DNS как в сетях, где будут располагаться узлы кластера, так и в сетях, из которых к служебным веб-интерфейсам необходим доступ.
В случае, если шаблон совпадает с доменом сети узлов (например, если для узлов заведена зона company.my
, а шаблон имеет вид %s.company.my
), используйте только А-записи адресов frontend-узлов для назначения веб-интерфейсам платформы.
Пример ресурса ModuleConfig/global
:
1apiVersion: deckhouse.io/v1alpha1
2kind: ModuleConfig
3metadata:
4 name: global
5spec:
6 version: 2
7 settings: # <-- Параметры модуля из раздела "Параметры" ниже.
8 defaultClusterStorageClass: 'default-fast'
9 modules:
10 publicDomainTemplate: '%s.kube.company.my'
11 resourcesRequests:
12 controlPlane:
13 cpu: 1000m
14 memory: 500M
15 placement:
16 customTolerationKeys:
17 - dedicated.example.com
18 storageClass: 'default-fast'
Конверсии
Модуль настраивается с помощью ресурса ModuleConfig, схема которого содержит номер версии. При применении в кластере старой версии схемы ModuleConfig выполняются автоматические преобразования. Чтобы обновить версию схемы ModuleConfig вручную, необходимо последовательно для каждой версии выполнить следующие действия :
- Обновление из версии 1 в 2:
Описание конверсии отсутствует.
Параметры
Версия схемы: 2
- строка
Имя 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-аннотацию (
- булевый
Параметр глобального включения режима отказоустойчивости для модулей, которые его поддерживают.
Если значение не указано, оно определяется автоматически как
true
для кластеров с более чем одним master-узлом. В остальных случаях значение определяется какfalse
.Примеры:
1highAvailability: true
1highAvailability: false
- объект
Способ реализации протокола HTTPS, используемый модулями Deckhouse.
Примеры:
1https: 2 certManager: 3 clusterIssuerName: letsencrypt 4 mode: CertManager
1https: 2 mode: Disabled
1https: 2 mode: OnlyInURI
1https: 2 mode: CustomCertificate 3 customCertificate: 4 secretName: plainstring
- строка
Имя
ClusterIssuer
, используемого модулями Deckhouse.В модуле cert-manager доступны следующие
ClusterIssuer
:letsencrypt
,letsencrypt-staging
,selfsigned
,clouddns
,cloudflare
,digitalocean
,route53
. Также вы можете использовать свойClusterIssuer
.По умолчанию:
"letsencrypt"
- строка
Имя Secret’а в пространстве имен
d8-system
, который будет использоваться модулями Deckhouse.Указанный Secret должен быть в формате kubernetes.io/tls.
По умолчанию:
"false"
- строка
Режим работы 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
- строка
Имя класса Ingress-контроллера (IngressClass), используемый для модулей Deckhouse.
Если имя IngressClass задано как
nginx
, соответствующий Ingress-контроллер автоматически считается Ingress-контроллером, используемым по умолчанию для всех модулей. При использовании любого другого имени Ingress-контроллера, он не будет использоваться по умолчанию.По умолчанию:
"nginx"
Шаблон:
^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
Пример:
1ingressClass: nginx
- объект
Настройки, определяющие расположение компонентов модулей Deckhouse по умолчанию.
- массив строк
Список ключей пользовательских toleration.
Необходимо указывать, чтобы позволить планировщику размещать критически важные компоненты Deckhouse, такие как cni и csi, на выделенных узлах.
Пример:
1customTolerationKeys: 2- dedicated.example.com 3- node-dedicated.example.com/master
- строка
Шаблон DNS-имен c ключом
%s
в качестве динамической части строки.Модули Deckhouse используют этот шаблон при создании Ingress-ресурсов.
Например, для шаблона
%s.kube.company.my
модуль prometheus создаст Ingress-ресурс на адресgrafana.kube.company.my
для доступа к Grafana.Обратите внимание:
- Если параметр не указан, Ingress-ресурсы создаваться не будут.
- Домен, указанный в шаблоне, не может совпадать или быть поддоменом домена, заданного в параметре
clusterDomain
. Мы не рекомендуем менять значениеclusterDomain
без особой необходимости. - Для корректной работы шаблона необходимо предварительно настроить службы DNS как в сетях, где будут располагаться узлы кластера, так и в сетях, из которых к служебным веб-интерфейсам необходим доступ.
- В случае, если шаблон совпадает с доменом сети узлов (например, если для узлов заведена зона
company.my
, а шаблон имеет вид%s.company.my
), используйте только А-записи адресов frontend-узлов для назначения веб-интерфейсам платформы..
Шаблон:
^(%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])?)*$
Примеры:
1publicDomainTemplate: "%s.kube.company.my"
1publicDomainTemplate: kube-%s.company.my
- объект
Количество ресурсов (CPU и памяти), выделяемых для работы компонентов Deckhouse, работающих на каждом узле кластера (обычно это DaemonSet’ы, например
cni-flannel
,monitoring-ping
).Подробнее про единицы измерения ресурсов.
- объект
Количество ресурсов (CPU и памяти), выделяемых для компонентов control plane, работающих на каждом master-узле кластера. Не работает для not-managed-облаков (например, GKE).
Пример:
1controlPlane: 2 cpu: 1000m 3 memory: 500M
- строка
Имя StorageClass, который будет использоваться для всех компонентов Deckhouse Kubernetes Platform (Prometheus, Grafana, OpenVPN и т. д.).
- Если значение не указано, то используется StorageClass по умолчанию, установленный в кластере.
- Этот параметр имеет смысл использовать только в исключительных ситуациях.
- Этот параметр применяется в процессе включения модуля.
По умолчанию:
""
- строка
Устарел. Используйте параметр settings.modules.storageClass.
Имя StorageClass, который будет использоваться для всех компонентов Deckhouse Kubernetes Platform (Prometheus, Grafana, OpenVPN и т. д.).
- Если значение не указано, то используется StorageClass по умолчанию, установленный в кластере.
- Этот параметр имеет смысл использовать только в исключительных ситуациях.
- Этот параметр применяется в процессе включения модуля.
По умолчанию:
""