Доступно в редакциях: CE, BE, SE, SE+, EE, CSE Lite (1.67), CSE Pro (1.67)
Некоторые параметры кластера, влияющие на управление control plane, также берутся из ресурса ClusterConfiguration.
В модуле реализовано 7 алертов.
Модуль включен по умолчанию в наборе модулей Default
.
Модуль выключен по умолчанию в наборах модулей: Managed
, Minimal
.
Конверсии
Модуль настраивается с помощью ресурса ModuleConfig, схема которого содержит номер версии. При применении в кластере старой версии схемы ModuleConfig выполняются автоматические преобразования. Чтобы обновить версию схемы ModuleConfig вручную, необходимо последовательно для каждой версии выполнить следующие действия :
- Обновление из версии 1 в 2:
Удалите
etcd.externalMembersNames
Настройки
Чтобы настроить модуль, используйте ресурс ModuleConfig
с именем control-plane-manager
(подробнее о настройке Deckhouse…).
Пример ресурса ModuleConfig/control-plane-manager
для настройки модуля:
1apiVersion: deckhouse.io/v1alpha1
2kind: ModuleConfig
3metadata:
4 name: control-plane-manager
5spec:
6 version: 2
7 enabled: true
8 settings: # <-- Параметры модуля из раздела "Параметры" ниже.
Параметры
Версия схемы: 2
Пример:
1apiVersion: deckhouse.io/v1alpha1
2kind: ModuleConfig
3metadata:
4 name: control-plane-manager
5spec:
6 version: 2
7 enabled: true
8 settings:
9 apiserver:
10 bindToWildcard: true
11 certSANs:
12 - bakery.infra
13 - devs.infra
14 loadBalancer: {}
- массив строк
Список включенных дополнительных admission-плагинов.
Обратите внимание, что, помимо включенных по умолчанию в Kubernetes admission-плагинов, также всегда включены (без возможности отключения) следующие admission-плагины:
ExtendedResourceToleration
;PodNodeSelector
;PodTolerationRestriction
;-
EventRateLimit
, который использует следующую конфигурацию:1apiVersion: eventratelimit.admission.k8s.io/v1alpha1 2kind: Configuration 3limits: 4- type: Namespace 5 qps: 50 6 burst: 100 7 cacheSize: 2000
Admission-плагин
PodNodeSelector
не требует указания глобальной конфигурации, он использует только аннотации на пространстве имен (namespace’ах).Пример:
1admissionPlugins: 2- AlwaysPullImages 3- NamespaceAutoProvision
- булевый
Применяет дополнительные политики аудита с конфигурацией из Secret’а
kube-system/audit-policy
.По умолчанию:
false
- объект
Опциональные параметры аутентификации клиентов Kubernetes API.
По умолчанию используются данные из ConfigMap, устанавливаемого модулем user-authn.
- объект
Параметры авторизации клиентов Kubernetes API.
По умолчанию используются данные из ConfigMap, устанавливаемого модулем user-authz.
- массив строк
Массив строк, список дополнительных SANs, с которыми будет сгенерирован сертификат API-сервера.
Кроме переданного списка, всегда используется и следующий список:
kubernetes
;kubernetes.default
;kubernetes.default.svc
;kubernetes.default.svc.cluster.local
;- Адрес API-сервера кластера;
127.0.0.1
;- DNS-имя хоста (hostname);
- IP-адрес хоста.
Пример:
1certSANs: 2- my-site.com 3- 192.168.67.76
- булевый
Включает режим encrypting secret data at rest.
Генерирует Secret
kube-system/d8-secret-encryption-key
, содержащий ключ шифрования.Важно! Этот режим нельзя отключить!
По умолчанию:
false
- объект
Создание сервиса
kube-system/d8-control-plane-apiserver
с типомLoadBalancer
.- объект
Аннотации, которые будут проставлены сервису для гибкой настройки балансировщика.
Внимание! Модуль не учитывает особенности указания аннотаций в различных облаках. Если аннотации для заказа LoadBalancer’а применяются только при создании сервиса, для обновления подобных параметров вам необходимо будет удалить и добавить параметр
apiserver.loadBalancer
. - массив строк
Список CIDR, которым разрешен доступ к API.
Облачный провайдер может не поддерживать данную опцию и игнорировать ее.
- объект
Настройки выпуска ServiceAccount’ов.
Примеры:
1serviceAccount: {}
1serviceAccount: 2 additionalAPIAudiences: 3 - istio-ca
- массив строк
Список дополнительных API audience’ов, которые следует добавить при создании токенов ServiceAccount.
Список audience’ов по умолчанию содержит:
serviceAccount.issuer
, eсли указаноserviceAccount.additionalAPIIssuers
, eсли указаноhttps://kubernetes.default.svc.${clusterDomain}
, например,https://kubernetes.default.svc.cluster.local
- этот audience добавляется всегда для обратной совместимости.
Аутентификатор токенов ServiceAccount проверяет, что токены, использованные с API, привязаны как минимум к одной из этих audiences.
Этот вариант полезен при переходе от одного издателя API к другому.
- массив строк
Список дополнительных издателей API токенов ServiceAccount, которые нужно включить при их создании.
Эти издатели (iss) используются для проверки источника токенов, чтобы гарантировать, что они поступают от доверенных сущностей.
Когда указано несколько издателей, то первый используется для генерации токенов, а все указанные издатели принимаются для валидации токенов.
Этот вариант полезен при переходе от одного API издателя к другому.
- строка
Издатель ServiceAccount’ов. Это URL API-сервера. Значения этого поля используются как
iss
claim токена и для проверки JWT-токенов ServiceAccount.Издатель по-умолчанию автоматически генерируется по шаблону
https://kubernetes.default.svc.${clusterDomain}
, например,https://kubernetes.default.svc.cluster.local
Обратите внимание, что все поды в кластере, использующие токены ServiceAccount, должны быть перезапущены при изменении этой опции.
Пример:
1issuer: https://api.example.com
- число
quota-backend-bytes параметр. Deckhouse автоматически управляет
quota-backend-bytes
параметром. Если параметрmaxDbSize
установлен, Deckhouse будет использовать это значение для параметраquota-backend-bytes
etcd.Минимальное значение: 512MB.
Максимальное значение: 8GB.
Экспериментальный. Может быть удален в будущем.
Допустимые значения:
536870912 <= X <= 8589934592