Cluster machine approver#

Cluster machine approver - контроллер, предоставляющий следующие функциональные возможности:

  • отслеживание конечной точки CSR на предмет запросов CSR;

  • решение о разрешении или запрете CSR;

  • утверждение или отклонение и обновление статуса CSR.

CSR (Certificate Signing Request - запрос на подписание сертификата) — это зашифрованный запрос на выпуск сертификата, содержащий подробную информацию о домене и организации. Генерация CSR является необходимой процедурой подготовки к получению SSL-сертификата. Сгенерированный CSR включается в анкету на получение сертификата.

DropApp Plus обладает поддержкой TLS-bootstrapping для узлов.

В кластере DropApp Plus компоненты на рабочих узлах - kubelet и kube-proxy - должны взаимодействовать с компонентами плоскости управления Kubernetes, в частности с kube-apiserver. Чтобы гарантировать конфиденциальность связи, отсутствие помех и то, что каждый компонент кластера взаимодействует с другим доверенным компонентом, следует использовать клиентские TLS-сертификаты на узлы.

Чтобы упростить процесс начальной загрузки этих компонентов, в DropApp Plus включен возможность запрос сертификата и подписи API.

Для нормальной работы Kubelet требуется два сертификата:

  • Сертификат клиента – для безопасного взаимодействия с Kubernetes API server;

  • Сертификат сервера – для использования в собственной локальной конечной точке HTTPs, используемой API server для обратной связи с kubelet.

При подготовке нового хоста kubelet запустится и свяжется с конечной точкой CSR API для запроса подписанных сертификатов клиента и сервера. Он выдает этот запрос, используя учетные данные bootstrap, которые находит в своей локальной файловой системе.

CSR должны быть утверждены. Они могут быть утверждены вручную через API с использованием oc, или kube-controller-manager может быть настроен для их утверждения.

Cluster machine approver - пользовательский компонент для утверждения CSR через API. Cluster machine approver используется для автоматического утверждения CSR, но с более строгими критериями, чем те, которые поддерживаются в kube-controller-manager.

На этапе начальной загрузки кластера служба approve-csr на узле начальной загрузки автоматически утверждает все CSR. Эта служба в конечном итоге одобрит CSR для узлов плоскости управления, в то время как cluster-machine-approver возьмет на себя управление будущими новыми CSR от рабочих узлов.