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