Skip to content

Обновление сертификатов на рабочих узлах Managed Service for Kubernetes (MK8S) с помощью DaemonSet.

License

Notifications You must be signed in to change notification settings

yandex-cloud-examples/yc-mk8s-nodes-certificate-updater

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

DaemonSet для обновления сертификатов на нодах Managed K8s

Описание

DaemonSet будет выполнять следующее:

  1. При помощи bash скрипта постояннo проверять наличие нужных CA сертификатов на нодах.
  2. В случае, если их нет, копировать их из секрета и обновлять сертификаты.
  3. Перезагружать containerd и dockerd.

DaemonSet работает с нодами, использующими Docker runtime и Containerd runtime.

Как запустить в общем случае

  1. Создать namespace для работы daemonSet-а в целях изоляции его работы:
kubectl apply -f certificate-updater-ns.yaml
  1. Создать простой secret с несколькими файлами внутри при помощи kubectl с указанием нескольких источников в рамках ранее созданного namespace:
kubectl create secret generic crt --from-file=num1.crt --from-file=num2.crt --from-file=num3.crt --from-file=num4.crt --from-file=num5.crt --namespace="certificate-updater"

Важно, что daemonSet ссылается на сертификат с именем crt.

  1. Создать daemonSet:
kubectl apply -f certificate-updater-ds.yaml

Далее можно отслеживать состояние daemonSet-а: в случае когда произойдет обновление сертификатов, то перезагрузятся процессы dockerd и containerd.

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

При помощи:

kubectl get secret crt -o yaml

Мы можем получить практически готовую для переиспользования конфигурацию. Для добавления данных в секрет как есть стоит предварительно кодировать файл при помощи команды base64 и дописывать соотвествующее содержимое в yaml и применять заново.

About

Обновление сертификатов на рабочих узлах Managed Service for Kubernetes (MK8S) с помощью DaemonSet.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published