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 для инструментов приведено в разделе «Конфигурации инструментов дополнительных компонентов».
-
reloader.deployment.dnsConfig – конфигурация DNS для развертывания
reloader.deployment.securityContext – контекст безопасности pod
reloader.deployment.containerSecurityContext – контекст безопасности контейнера
reloader.deployment.livenessProbe – проверка доступности pod
reloader.deployment.readinessProbe – проверка готовности pod
reloader.rbac – настройки управления доступом на основе ролей
reloader.serviceMonitor – настройки ServiceMonitor для Prometheus
reloader.verticalPodAutoscaler – автоматическое масштабирование pod
kubernetes – настройки подключения к Kubernetes#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
URL хоста Kubernetes API для подключения |
|
nameOverride – переопределение имени ресурса#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Частичное переопределение имени чарта для генерации имен ресурсов |
|
fullnameOverride – полное переопределение имени#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Полное переопределение сгенерированного имени ресурсов |
|
image – настройки образа контейнера#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Репозиторий образа Reloader с использованием шаблонных переменных |
|
|
Тег версии образа Reloader |
|
|
Политика загрузки образа. Возможные значения: |
|
reloader – основные настройки Reloader#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Автоматически перезагружать все ресурсы при изменении их |
|
|
Включить поддержку Argo Rollouts для отслеживания изменений и перезагрузки |
|
|
Включить поддержку OpenShift |
|
|
Игнорировать изменения |
|
|
Игнорировать изменения |
|
|
Исключить |
|
|
Исключить |
|
|
Включить перезагрузку при создании новых |
|
|
Включить перезагрузку при удалении |
|
|
Включить синхронизацию после перезагрузки Reloader для Add-событий (требует |
|
|
Стратегия для запуска перезагрузки ресурсов. Возможные значения: |
|
|
Разделенный запятыми список пространств имен для игнорирования |
|
|
Разделенный запятыми список селекторов меток Kubernetes для выбора пространств имен |
|
|
Разделенный запятыми список селекторов меток для выбора |
|
|
Формат логирования. Возможные значения: |
|
|
Уровень логирования. Возможные значения: |
|
|
Разрешить Reloader отслеживать |
|
|
Включить выбор лидера (leader election) для запуска нескольких реплик в режиме высокой доступности |
|
|
Включить профилирование |
|
|
Адрес для запуска сервера |
|
|
Применить политику безопасности для файловой системы только для чтения |
|
|
Использовать устаревший режим RBAC |
|
|
Метки pod для совпадения и отслеживания |
|
|
Обнародовать дополнительный счетчик Prometheus для перезагрузок по пространствам имен (может иметь высокую кардинальность в больших кластерах) |
|
reloader.deployment.dnsConfig – конфигурация DNS для развертывания#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Конфигурация DNS для pod ( |
|
reloader.deployment – параметры развертывания#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Количество реплик. Для запуска нескольких реплик установите |
|
|
Лимит количества ревизий развертывания, хранящихся в истории |
|
|
Селектор узлов для планирования pod на конкретные узлы |
|
|
Правила |
|
|
Список мест монтирования для томов в контейнере |
|
|
Список томов для pod |
|
|
Список |
|
|
Ограничения распределения pod по топологии кластера |
|
|
Аннотации для развертывания |
|
reloader.deployment.securityContext – контекст безопасности pod#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Требовать запуск контейнера от имени непривилегированного пользователя |
|
|
ID пользователя, от имени которого запускается контейнер |
|
|
Тип профиля |
|
reloader.deployment.containerSecurityContext – контекст безопасности контейнера#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Список |
|
|
Разрешить ли контейнеру повышать привилегии |
|
|
Использовать ли файловую систему только для чтения |
|
reloader.deployment.labels – метки для развертывания#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Провайдер приложения |
|
|
Группа приложения |
|
|
Версия приложения |
|
reloader.deployment.env – переменные окружения#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Открытые переменные окружения в формате ключ-значение |
|
|
Переменные окружения из |
|
|
Переменные окружения из других полей pod |
|
|
Переменные окружения из существующих |
|
reloader.deployment.livenessProbe – проверка доступности pod#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Параметры проверки доступности ( |
|
reloader.deployment.readinessProbe – проверка готовности pod#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Параметры проверки готовности ( |
|
reloader.deployment.resources – ресурсные требования#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Максимально допустимое использование CPU |
|
|
Максимально допустимое использование памяти |
|
|
Запрашиваемое количество CPU для планирования |
|
|
Запрашиваемый объем памяти для планирования |
|
reloader.deployment.pod – настройки pod#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Аннотации для pod |
|
|
Класс приоритета для pod в кластере |
|
|
Переопределение переменной окружения |
|
|
Переопределение переменной окружения |
|
reloader.service – настройки Service#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Конфигурация |
|
reloader.rbac – настройки управления доступом на основе ролей#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создавать ли ресурсы RBAC ( |
|
|
Метки для ресурсов RBAC |
|
reloader.serviceAccount – настройки ServiceAccount#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создавать ли |
|
|
Метки для |
|
|
Аннотации для |
|
|
Имя |
|
reloader.custom_annotations – пользовательские аннотации#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Дополнительные аннотации для переопределения стандартных ( |
|
reloader.serviceMonitor – настройки ServiceMonitor для Prometheus#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создавать ли |
|
|
Метки для ресурса |
|
|
Аннотации для ресурса |
|
|
Сохранять ли исходные метки |
|
|
Правила переименования метрик после сбора |
|
|
Правила переименования меток перед сбором метрик |
|
|
Целевые метки для |
|
reloader.podMonitor – настройки PodMonitor для Prometheus#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создавать ли |
|
|
Метки для ресурса |
|
|
Аннотации для ресурса |
|
|
Сохранять ли исходные метки |
|
|
Правила переименования метрик после сбора |
|
|
Правила переименования меток перед сбором метрик |
|
|
Целевые метки pod для |
|
reloader.podDisruptionBudget – политика нарушения pod#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включить ограничение количества недоступных pod во время добровольных нарушений |
|
reloader.netpol – сетевая политика#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создавать ли |
|
|
Входящие правила трафика ( |
|
|
Исходящие правила трафика ( |
|
reloader.verticalPodAutoscaler – автоматическое масштабирование pod#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включить вертикальное автомасштабирование для автоматического управления ресурсами |
|
|
Ресурсы, которыми может управлять VPA (по умолчанию CPU и память) |
|
|
Максимально допустимые ресурсы для pod ( |
|
|
Минимально допустимые ресурсы для pod ( |
|
|
Режим обновления VPA. Возможные значения: |
|
image – URL webhook#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
URL webhook для отправки уведомлений при перезагрузке |
|