Управление компонентами control plane кластера осуществляется с помощью модуля control-plane-manager, а параметры кластера, влияющие на управление control plane, берутся из данных первичной конфигурации кластера (параметр cluster-configuration.yaml секрета d8-cluster-configuration в namespace kube-system), которая создается при инсталляции.

Модуль по умолчанию включен. Выключить можно стандартным способом:

controlPlaneManagerEnabled: "false"

Параметры

  • apiserver (объект)

    Параметры kube-apiserver.

    По умолчанию: {}

    • auditPolicyEnabled (булевый)

      Включение аудита событий с конфигурацией из Secret (audit-policy в ns kube-system).

      По умолчанию: false

    • authn (объект)

      Опциональные параметры аутентификации клиентов Kubernetes API. По умолчанию подтягиваются из ConfigMap, устанавливаемого модулем user-authn

      По умолчанию: {}

      • oidcCA (строка)

        CA OIDC-провайдера.

      • oidcIssuerAddress (строка)

        Сетевой адрес OIDC-провайдера.

        Пример: "1.2.3.4", ""

      • oidcIssuerURL (строка)

        URL OIDC-провайдера.

        Пример: "https://my-super-site.tech/"

    • authz (объект)

      Параметры авторизации клиентов Kubernetes API. По умолчанию подтягиваются из ConfigMap, устанавливаемого модулем user-authz

      По умолчанию: {}

      • webhookCA (строка)

        CA authorization webhook’a.

      • webhookURL (строка)

        URL authorization webhook’а.

        Пример: "https://127.0.0.1:40443/"

    • bindToWildcard (булевый)

      Cлушать ли на 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

      Пример: ["my-site.com","192.168.67.76"]

      Шаблон: ^[0-9a-zA-Z\.-]+$

    • loadBalancer (объект)

      Если указано, будет создан сервис с типом LoadBalancer (d8-control-plane-apiserver в ns kube-system).

      • annotations (объект)

        Аннотации, которые будут проставлены сервису для гибкой настройки балансировщика.

        Внимание! модуль не учитывает особенности указания аннотаций в различных облаках. Если аннотации для заказа load balancer’а применяются только при создании сервиса, то для обновления подобных параметров вам необходимо будет удалить и добавить параметр apiserver.loadBalancer.

      • sourceRanges (массив строк)

        Список CIDR, которым разрешен доступ к API.

        Облачный провайдер может не поддерживать данную опцию и игнорировать её.

        Шаблон: ^[0-9]{1,}\.[0-9]{1,}\.[0-9]{1,}\.[0-9]{1,}\/[0-9]+$

  • etcd (объект)

    Параметры etcd.

    • externalMembersNames (массив строк)

      Массив имен внешних etcd member’ов (эти member’ы не будут удаляться).

      Пример: ["main-master-1","my-external-member"]

      Шаблон: ^[0-9a-zA-Z\.-:\-\/]+$

  • failedNodePodEvictionTimeoutSeconds (целочисленный)

    Количество секунд, по прошествии которых, с узла в статусе Unreachable будут удалены Pod’ы.

    Важно! При изменении этого параметра потребуется перезапуск Pod’ов.

    По умолчанию: 300

  • nodeMonitorGracePeriodSeconds (целочисленный)

    Число секунд, через которое узел перейдёт в состояние Unreachable при потере с ним связи.

    По умолчанию: 40