Reloader#
Reloader – это контроллер Kubernetes, который автоматически перезапускает (пересоздает) рабочие нагрузки, такие как Deployment, StatefulSet, DaemonSet и ArgoRollout, при обновлении связанных ConfigMap или Secret.
По умолчанию Kubernetes не перезапускает pod при изменении этих ресурсов, что может привести к использованию устаревших конфигураций. Reloader решает эту проблему, обеспечивая актуальность конфигураций в работающих приложениях.
Основные задачи и возможности
Автоматический перезапуск pod: при изменении
ConfigMapилиSecret, на которые ссылается pod, Reloader инициирует его пересоздание черезrolloutилиrestart, чтобы изменения вступили в силу.Гибкое управление через аннотации: позволяет указать, какие именно ресурсы должны отслеживаться:
reloader.stakater.com/auto: "true"– следить за всемиConfigMapиSecretв шаблоне pod;secret.reloader.stakater.com/auto: "true"– следить только заSecret;configmap.reloader.stakater.com/auto: "true"– следить только заConfigMap.
Поддержка разных стратегий перезапуска:
Можно выбрать:
rollout— изменение шаблона pod (по умолчанию);restart— удаление pod без изменения манифеста (удобно при использовании GitOps, например, с ArgoCD).
Интеграция с GitOps и CI/CD: обеспечивает быстрое применение изменений конфигураций без ручного вмешательства, подходит для автоматизированных сред.
Работа с внешними источниками: совместим с такими инструментами, как ExternalSecrets, SealedSecrets и Сert-manager, автоматически реагируя на создаваемые ими секреты.
Примечание
Reloader устанавливается по умолчанию с компонентом Pod-management.
Конфигурация values#
Параметры Reloader можно переопределить через редактирование нужных значений в spec.values. Общее описание конфигурации values для инструментов приведено в разделе «Конфигурации инструментов дополнительных компонентов».
kubernetes – определить параметры подключения к Kubernetes API
custom_annotations – определить пользовательские аннотации для entrypoint reloader
podDisruptionBudget – ограничение одновременной недоступности pod
verticalPodAutoscaler – определить параметры VerticalPodAutoscaler для reloader
webhookUrl – определить webhook URL для уведомлений reloader
kubernetes – определить параметры подключения к Kubernetes API#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
URL хоста Kubernetes API для подключения |
|
nameOverride – переопределение имени чарта#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Переопределение базового имени ресурсов чарта для генерации имен |
|
fullnameOverride – полное переопределение имени чарта#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Полное переопределение имени для всех создаваемых ресурсов чарта |
|
image – параметры контейнерного образа#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Репозиторий образа Reloader с использованием шаблонных переменных |
|
|
Тег образа контейнера |
|
|
Дайджест образа Reloader для проверки целостности |
|
|
Политика загрузки образа. |
|
reloader – определить основные настройки работы reloader#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Автоматическая перезагрузка всех ресурсов при изменении их |
|
|
Включение поддержки Argo Rollouts для отслеживания изменений и перезагрузки |
|
|
Включение поддержки OpenShift |
|
|
Игнорирование изменений |
|
|
Игнорирование изменений |
|
|
Исключение |
|
|
Исключение |
|
|
Включение перезагрузки при создании новых |
|
|
Включение перезагрузки при удалении |
|
|
Включение синхронизации после перезагрузки Reloader для Add-событий (требует |
|
|
Стратегия запуска перезагрузки ресурсов. |
|
|
Разделенный запятыми список пространств имен для игнорирования |
|
|
Разделенный запятыми список селекторов меток Kubernetes для выбора пространств имен |
|
|
Разделенный запятыми список селекторов меток для выбора |
|
|
Формат логирования. |
|
|
Уровень логирования. |
|
|
Разрешение Reloader отслеживать |
|
|
Включение выбора лидера (leader election) для запуска нескольких реплик в режиме высокой доступности |
|
|
Включение профилирования |
|
|
Адрес для запуска сервера |
|
|
Включение интеграции с CSI-источниками конфигурации и секретов |
|
|
Применение политики безопасности для файловой системы только для чтения |
|
|
Использование устаревшего режима RBAC |
|
|
Метки pod для совпадения и отслеживания |
|
|
Публикация дополнительного счетчика Prometheus для перезагрузок по пространствам имен (может иметь высокую кардинальность в больших кластерах) |
|
deployment – определить параметры Deployment для reloader#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Пользовательская конфигурация DNS для pod. |
|
|
Количество реплик pod; для запуска нескольких реплик установите |
|
|
Количество предыдущих версий ресурса, сохраняемых для отката |
|
|
Использование namespace пользователя хоста |
|
|
Селектор узлов для планирования pod. |
|
|
Настройки правила привязки ( |
|
|
Дополнительные точки монтирования томов ( |
|
|
Дополнительные тома ( |
|
|
Требование запуска контейнера от имени непривилегированного пользователя |
|
|
ID пользователя для запуска контейнера |
|
|
Тип профиля |
|
|
Список возможностей ( |
|
|
Активация разрешения на эскалацию привилегий в контейнере |
|
|
Монтирование корневой файловой системы в режиме «только для чтения» |
|
|
|
|
|
Ограничения топологии для равномерного распределения pod по зонам доступности и узлам. |
|
|
Аннотации для развертывания |
|
|
Провайдер приложения |
|
|
Группа приложения |
|
|
Версия приложения |
|
|
Открытые переменные окружения в формате ключ-значение |
|
|
Переменные окружения из |
|
|
Переменные окружения из других полей pod |
|
|
Переменные окружения из существующих |
|
|
Параметры проверки работоспособности ( |
|
|
Параметры проверки готовности ( |
|
|
Ограничение ресурсов CPU для контейнера |
|
|
Ограничение ресурсов памяти для контейнера |
|
|
Запрашиваемые ресурсы CPU для контейнера |
|
|
Запрашиваемые ресурсы памяти для контейнера |
|
|
Аннотации для pod |
|
|
Имя |
|
|
Переопределение переменной окружения |
|
|
Переопределение переменной окружения |
|
service – настройки Service#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Конфигурация |
|
rbac – настройки RBAC (управление доступом на основе ролей)#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создание ресурсов RBAC ( |
|
|
Метки для ресурсов RBAC |
|
serviceAccount – настройки сервисного аккаунта#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создание |
|
|
Метки для |
|
|
Аннотации для |
|
|
Имя |
|
custom_annotations – определить пользовательские аннотации для entrypoint reloader#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Дополнительные аннотации для переопределения стандартных ( |
|
serviceMonitor – параметры ServiceMonitor#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создание |
|
|
Метки для ресурса |
|
|
Аннотации для ресурса |
|
|
Сохранение исходных меток |
|
|
Правила фильтрации и преобразования меток, применяемые к собранным метрикам. |
|
|
Правила фильтрации и преобразования меток, применяемые к целям сбора до начала сбора метрик. |
|
|
Целевые метки для |
|
podMonitor – определить параметры PodMonitor для Prometheus#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создание |
|
|
Метки для ресурса |
|
|
Аннотации для ресурса |
|
|
Сохранение исходных меток |
|
|
Правила фильтрации и преобразования меток, применяемые к собранным метрикам. |
|
|
Правила фильтрации и преобразования меток, применяемые к целям сбора до начала сбора метрик. |
|
|
Целевые метки pod для |
|
podDisruptionBudget – ограничение одновременной недоступности pod#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Настройки |
|
netpol – определить параметры NetworkPolicy для reloader#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создание |
|
|
Входящие правила трафика ( |
|
|
Исходящие правила трафика ( |
|
verticalPodAutoscaler – определить параметры VerticalPodAutoscaler для reloader#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включение вертикального автомасштабирования для автоматического управления ресурсами |
|
|
Ресурсы, которыми может управлять VPA (по умолчанию CPU и память) |
|
|
Максимально допустимые ресурсы для pod ( |
|
|
Минимально допустимые ресурсы для pod ( |
|
|
Режим обновления VPA. |
|
webhookUrl – определить webhook URL для уведомлений reloader#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
URL webhook для отправки уведомлений при перезагрузке |
|