Некоторые параметры кластера, влияющие на управление control plane, также берутся из ресурса ClusterConfiguration.
В модуле реализовано 7 алертов.
Модуль включен по умолчанию в наборе модулей Default
.
Модуль выключен по умолчанию в наборах модулей: Managed
, Minimal
.
Чтобы настроить модуль, используйте custom resource ModuleConfig
с именем control-plane-manager
(подробнее о настройке Deckhouse…).
Пример ресурса ModuleConfig/control-plane-manager
для настройки модуля:
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: control-plane-manager
spec:
version: 1
enabled: true
settings: # <-- Параметры модуля из раздела "Параметры" ниже.
Параметры
Версия схемы: 1
Пример:
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: control-plane-manager
spec:
version: 1
enabled: true
settings:
apiserver:
bindToWildcard: true
certSANs:
- bakery.infra
- devs.infra
loadBalancer: {}
- массив строк
Список включенных дополнительных admission-плагинов.
Обратите внимание, что, помимо включенных по умолчанию в Kubernetes admission-плагинов, также всегда включены (без возможности отключения) следующие admission-плагины:
ExtendedResourceToleration
;PodNodeSelector
;PodTolerationRestriction
;-
EventRateLimit
, который использует следующую конфигурацию:apiVersion: eventratelimit.admission.k8s.io/v1alpha1 kind: Configuration limits: - type: Namespace qps: 50 burst: 100 cacheSize: 2000
Admission-плагин
PodNodeSelector
не требует указания глобальной конфигурации, он использует только аннотации на пространстве имен (namespace’ах).Пример:
admissionPlugins: - AlwaysPullImages - 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-адрес хоста.
Пример:
certSANs: - my-site.com - 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’ов.
Примеры:
serviceAccount: {}
serviceAccount: additionalAPIAudiences: - istio-ca
- массив строк
Список дополнительных API audience’ов, которые следует добавить при создании токенов ServiceAccount.
Audience по умолчанию, автоматически генерируются на основе шаблона
https://kubernetes.default.svc.${clusterDomain}
, например,https://kubernetes.default.svc.cluster.local
. Аутентификатор токенов ServiceAccount проверяет, что токены, использованные с API, привязаны как минимум к одной из этих audiences.Этот вариант полезен при переходе от одного издателя API к другому.
- массив строк
Список дополнительных издателей API токенов ServiceAccount, которые нужно включить при их создании.
Эти издатели (iss) используются для проверки источника токенов, чтобы гарантировать, что они поступают от доверенных сущностей.
Первый издатель автоматически генерируется по шаблону
https://kubernetes.default.svc.${clusterDomain}
, например,https://kubernetes.default.svc.cluster.local
. Когда указано несколько издателей, то первый используется для генерации токенов, а все указанные издатели принимаются для валидации токенов.Этот вариант полезен при переходе от одного API издателя к другому.
- строка
Издатель ServiceAccount’ов. Это URL API-сервера. Значения этого поля используются как
iss
claim токена и для проверки JWT-токенов ServiceAccount.Обратите внимание, что все поды в кластере, использующие токены ServiceAccount, должны быть перезапущены при изменении этой опции.
Пример:
issuer: https://api.example.com
- массив строк
Массив имен внешних etcd member’ов (эти member’ы не будут удаляться).
Пример:
externalMembersNames: - main-master-1 - my-external-member
- число
quota-backend-bytes параметр. Deckhouse автоматически управляет
quota-backend-bytes
параметром. Если параметрmaxDbSize
установлен, Deckhouse будет использовать это значение для параметраquota-backend-bytes
etcd.Минимальное значение: 512MB.
Максимальное значение: 8GB.
Экспериментальный. Может быть удален в будущем.
Допустимые значения:
536870912 <= X <= 8589934592