Вращение сертификата Kubelet - рабочие узлы - PullRequest
0 голосов
/ 28 февраля 2020

Я управляю кластером K8s (v1.13.5) в течение года, и сертификаты плоскости управления и сертификаты Kubelet скоро истекают. Я нашел способ вращать все сертификаты плоскости управления и хотел знать, как вращать сертификаты Kubelet. Может ли кто-нибудь помочь мне понять, как повернуть K-сертификаты для рабочего узла и мастера (при необходимости)? Этот кластер K8s развернут с использованием Kubespray.

1 Ответ

0 голосов
/ 28 февраля 2020

Начиная с версии Kubernetes 1.8.0 доступна бета-версия Вращение сертификата .

В кубеле используются сертификаты для аутентификации в API Kubernetes. По умолчанию эти сертификаты выдаются с истечением одного года, поэтому их не нужно обновлять слишком часто.

Kubernetes 1.8 содержит ротацию сертификатов kubelet , бета-функцию, которая автоматически генерирует новый ключ и запросите новый сертификат у API Kubernetes, когда срок действия текущего сертификата истекает. Как только новый сертификат станет доступным, он будет использоваться для аутентификации соединений с API Kubernetes.

Его необходимо включить с помощью Feature Gates , поскольку это бета-функция. Поэтому вам нужно добавить --feature-gates=RotateKubeletClientCertificate=true

Когда запускается кублет, если он настроен на bootstrap (с использованием флага --bootstrap-kubeconfig), он будет использовать свой начальный сертификат для подключения к Kubernetes API и выдать запрос на подпись сертификата. Вы можете просмотреть статус запросов на подпись сертификата, используя:

kubectl get csr

Первоначально запрос подписи сертификата от kubelet на узле будет иметь статус Pending. Если запросы на подпись сертификата соответствуют указанным c критериям, они будут автоматически утверждены диспетчером контроллера, а затем будут иметь статус Approved. Затем диспетчер контроллера подпишет сертификат, выданный на срок, указанный параметром --experimental-cluster-signing-duration, и подписанный сертификат будет присоединен к запросам на подпись сертификата.

Кублет извлечет подписанный сертификат из Kubernetes API и запишите это на диск в месте, указанном --cert-dir. Затем kubelet будет использовать новый сертификат для подключения к API Kubernetes.

По мере приближения срока действия подписанного сертификата kubelet автоматически выдаст новый запрос на подпись сертификата, используя API Kubernetes. Опять же, диспетчер контроллера автоматически утвердит запрос сертификата и приложит подписанный сертификат к запросу подписи сертификата. Кублет извлечет новый подписанный сертификат из API Kubernetes и запишет его на диск. Затем он обновит соединения с API Kubernetes для повторного подключения с использованием нового сертификата.

...