Модуль pod-reloader создан на основе Reloader и предназначен для автоматического обновления подов при изменении ConfigMap и Secret. Для управления используются аннотации. Модуль запускается на системных узлах.

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

Архитектура модуля

Для упрощения схемы приняты следующие допущения:

  • На схеме показано, что контейнеры разных подов взаимодействуют друг с другом напрямую. Фактически они взаимодействуют через соответствующие сервисы Kubernetes (внутренние балансировщики). Названия сервисов не указываются, если они очевидны из контекста. В остальных случаях название сервиса указано над стрелкой.
  • Поды могут быть запущены в нескольких репликах, однако на схеме все поды изображены в одной реплике.

Архитектура модуля pod-reloader на уровне 2 модели C4 и его взаимодействие с другими компонентами DKP показаны на следующей диаграмме:

Архитектура модуля pod-reloader

Компоненты модуля

Модуль pod-reloader состоит из одного компонента pod-reloader, включающего следующие контейнеры:

  • manager — основной контейнер;
  • kube-rbac-proxy — сайдкар-контейнер с авторизующим прокси на основе Kubernetes RBAC для защищённого доступа к метрикам pod-reloader. Является Open Source-проектом.

Взаимодействия модуля

Модуль взаимодействует с компонентом kube-apiserver:

  • следит за изменениями ресурсов ConfigMap и Secret;
  • выполняет перезапуск или обновление (rollout) подов;
  • выполняет авторизацию запросов на получение метрик.

С модулем взаимодействует компонент prometheus-main — собирает метрики модуля.

Дополнительные ресурсы