Управление компонентами control plane кластера осуществляется с помощью модуля control-plane-manager
, а параметры кластера, влияющие на управление control plane, берутся из данных первичной конфигурации кластера (параметр cluster-configuration.yaml
Secret’а d8-cluster-configuration
в пространстве имен kube-system
), которое создается при установке.
Модуль по умолчанию включен. Выключить его можно стандартным способом:
controlPlaneManagerEnabled: "false"
Параметры
- apiserverобъект
Параметры
kube-apiserver
.- admissionPluginsмассив строк
Список включенных дополнительных admission plugin’ов.
Обратите внимание, что помимо включенных по умолчанию в Kubernetes admission plugin’ов, также всегда включены (без возможности отключения) следующие admission plugin’ы:
ExtendedResourceToleration
-
EventRateLimit
, который использует следующую конфигурацию:apiVersion: eventratelimit.admission.k8s.io/v1alpha1 kind: Configuration limits: - type: Namespace qps: 50 burst: 100 cacheSize: 2000
Admission plugin
PodNodeSelector
не требует указания глобальной конфигурации, он использует только аннотации на пространстве имен (namespace’ах).Пример:
admissionPlugins: - AlwaysPullImages - NamespaceAutoProvision
Допустимые значения элемента массива:
AlwaysPullImages
,NamespaceAutoProvision
,OwnerReferencesPermissionEnforcement
,PodNodeSelector
,PodTolerationRestriction
- auditLogобъект
Параметры аудита.
По умолчанию:
{"output":"File"}
- outputстрока
Обязательный параметр
Тип потока для вывода журнала аудита.
По умолчанию:
"File"
Допустимые значения:
File
,Stdout
- pathстрока
Путь к директории. Действует только в случае
output: "File"
.По умолчанию:
"/var/log/kube-audit"
Шаблон:
^[a-zA-Z0-9_/.-]+[a-zA-Z0-9_.-]$
- outputстрока
- auditPolicyEnabledбулевый
Применять дополнительные политики аудита с конфигурацией из Secret’а
kube-system/audit-policy
.По умолчанию:
false
- authnобъект
Опциональные параметры аутентификации клиентов Kubernetes API.
По умолчанию используются данные из ConfigMap, устанавливаемого модулем user-authn.
- oidcCAстрока
CA OIDC-провайдера.
- oidcIssuerAddressстрока
Сетевой адрес OIDC-провайдера.
Примеры:
oidcIssuerAddress: 1.2.3.4
oidcIssuerAddress: ''
- oidcIssuerURLстрока
URL OIDC-провайдера.
Пример:
oidcIssuerURL: https://my-super-site.tech/
- webhookCAстрока
CA аутентификационного webhook’a.
- webhookURLстрока
URL аутентификационного webhook’а.
Пример:
webhookURL: https://127.0.0.1:40443/
- oidcCAстрока
- authzобъект
Параметры авторизации клиентов Kubernetes API.
По умолчанию используются данные из ConfigMap, устанавливаемого модулем user-authz.
- webhookCAстрока
CA авторизациионного webhook’a.
- webhookURLстрока
URL авторизациионного webhook’а.
Пример:
webhookURL: https://127.0.0.1:40443/
- webhookCAстрока
- basicAuditPolicyEnabledбулевый
Применять базовые политики аудита Deckhouse.
По умолчанию:
true
- bindToWildcardбулевый
Прослушивание на
0.0.0.0
.По умолчанию API-сервер слушает на hostIP, который обычно соответствует Internal адресу узла, но это зависит от типа кластера (Static или Cloud) и выбранной схемы размещения (layout).
По умолчанию:
false
- certSANsмассив строк
Массив строк, список дополнительных SANs, с которыми будет сгенерирован сертификат API-сервера.
Кроме переданного списка, всегда используется и следующий список:
kubernetes
;kubernetes.default
;kubernetes.default.svc
;kubernetes.default.svc.cluster.local
;192.168.0.1
;127.0.0.1
;- текущий_hostname;
- hostIP.
Пример:
certSANs: - my-site.com - 192.168.67.76
Шаблон:
^[0-9a-zA-Z\.-]+$
- encryptionEnabledбулевый
Включает режим encrypting secret data at rest.
Генерирует Secret
kube-system/d8-secret-encryption-key
, содержащий ключ шифрования.Важно! Этот режим нельзя отключить!
По умолчанию:
false
- loadBalancerобъект
Создание сервиса
kube-system/d8-control-plane-apiserver
с типомLoadBalancer
.- annotationsобъект
Аннотации, которые будут проставлены сервису для гибкой настройки балансировщика.
Внимание! Модуль не учитывает особенности указания аннотаций в различных облаках. Если аннотации для заказа Load Balancer’а применяются только при создании сервиса, то для обновления подобных параметров вам необходимо будет удалить и добавить параметр
apiserver.loadBalancer
. - portцелочисленный
Внешний порт TCP-балансировщика.
По умолчанию:
443
Допустимые значения:
1 <= X <= 65534
- sourceRangesмассив строк
Список CIDR, которым разрешен доступ к API.
Облачный провайдер может не поддерживать данную опцию и игнорировать её.
Шаблон:
^[0-9]{1,}\.[0-9]{1,}\.[0-9]{1,}\.[0-9]{1,}\/[0-9]+$
- annotationsобъект
- serviceAccountобъект
Настройки выпуска ServiceAccount’ов.
Примеры:
serviceAccount: {}
serviceAccount: additionalAPIAudiences: - istio-ca
- additionalAPIAudiencesмассив строк
Список API audience’ов, которые следует добавить при создании токенов ServiceAccount.
- additionalAPIAudiencesмассив строк
- admissionPluginsмассив строк
- etcdобъект
Параметры
etcd
.- externalMembersNamesмассив строк
Массив имен внешних etcd member’ов (эти member’ы не будут удаляться).
Пример:
externalMembersNames: - main-master-1 - my-external-member
Шаблон:
^[0-9a-zA-Z\.-:\-\/]+$
- externalMembersNamesмассив строк
- failedNodePodEvictionTimeoutSecondsцелочисленный
Количество секунд, по прошествии которых с узла в статусе
Unreachable
будут удалены Pod’ы.Важно! При изменении этого параметра потребуется перезапуск Pod’ов.
По умолчанию:
300
- nodeMonitorGracePeriodSecondsцелочисленный
Число секунд, через которое узел перейдёт в состояние
Unreachable
при потере с ним связи.По умолчанию:
40