Обновление сертификатов платформы

1. Обновление сертификатов, выпущенных в Secrets Manager

Обновление сертификатов Nova Container Platform, выпущенных в Secrets Manager, выполняется администратором кластера с помощью утилиты nova-ctl.

Процесс обновления затрагивает только серверные и клиентские сертификаты узлов платформы. Обновление сертификатов корневых центров в настоящий момент не поддерживается и находится в разработке.

В процессе обновления сертификатов на мастер-узлах платформы выполняется перезапуск следующих сервисов:

  • Сервер Kubernetes API

  • Сервер Kubernetes Controller Manager

  • Сервер Kubernetes Scheduler

  • Компоненты CNI

  • Kubelet

На инфраструктурных и рабочих узлах выполняется перезапуск следующих сервисов:

  • Компоненты CNI

  • Kubelet

В ходе перезапуска данных сервисов может наблюдаться кратковременная недоступность компонентов Nova Container Platform.

Необходимые условия

  • У вас есть закрытый ключ SSH на вашем локальном компьютере, который нужно предоставить утилите nova-ctl.

  • У вас есть токен доступа к хранилищу секретов Secrets Manager с привилегиями root.

Процедура

Для обновления сертификатов выполните следующую команду:

nova-ctl certs renew --ssh-user ec2-user --ssh-key key.pem

В качестве аргументов --ssh-key и --ssh-user укажите информацию, использованную на этапе конфигурации ключевой пары SSH.

Пример

$ nova-ctl certs renew --ssh-user ec2-user --ssh-key key.pem
Are you sure you want to renew all the certificates in the cluster? (yes/no) [no] yes

Enter Vault root token: ******************

 ■ Setting up secrets store access... done
 ■ Renewing certificates on master-nova-internal... done
 ■ Renewing certificates on infra-nova-internal... done
 ■ Renewing certificates on worker-nova-internal... done
 ■ Downloading new Kubernetes configuration...... done

All certificates are renewed.
New Kubernetes client configuration is saved to kubeadmin.conf.

2. Обновление сертификатов, выпущенных в Cert-Manager

Обновление сертификатов Nova Container Platform, выпущенных в Cert-Manager, может быть выполнено принудительно администратором кластера с помощью утилиты kubectl.

Для принудительного обновления любого сертификата необходимо удалить секрет, в котором сохранены данные сертификата. Cert-Manager автоматически перевыпустит сертификат и сохранит его в секрет с прежним именем.

Процедура

Для принудительного обновления сертификата выполните следующую команду:

kubectl get certificate custom-dynamic-cert -n custom-namespace -o=jsonpath='{.spec.secretName}' | xargs kubectl delete secret -n custom-namespace

где custom-dynamic-cert - имя вашего сертификата, custom-namespace - имя пространства имен (namespace), в котором находится ваш сертификат.