Argo-rollouts#
Argo-rollouts - это Kubernetes-контроллер и набор CRD, предоставляющий продвинутые возможности для реализации постепенной доставки (progressive delivery) приложений в кластере. Он позволяет более гибко управлять процессом развертывания, обеспечивая безопасное и контролируемое обновление сервисов.
Основные задачи и возможности
Поддержка стратегий развертывания:
Позволяет использовать такие методы как
canary(канареечный),blue-green(сине-зеленое) развертывание, а также A/B тестирование и эксперименты с трафиком.Канареечный анализ и автоматизация:
Поддерживает автоматический анализ состояния новых версий приложений на основе метрик (например, из Prometheus), позволяя либо продолжить, либо откатить обновление в случае проблем.
Гибкая маршрутизация трафика:
Интегрируется с Istio, Linkerd, Kong и другими service mesh или ingress-решениями для постепенного переключения трафика между версиями приложения.
Интеграция с GitOps-подходом:
Может использоваться вместе с Argocd, что позволяет объединить управление конфигурацией и стратегией развертывания в едином декларативном процессе.
Визуализация и мониторинг:
Предоставляет удобный веб-интерфейс для отслеживания статуса rollout, анализа ошибок и выполнения.
Примечание
Argo-rollouts является инструментом по умолчанию компонента Devops и устанавливается с ним автоматически.
Конфигурация values#
Значения можно переопределить через редактирование инструмента с именем argo-rollouts и указанием нужных values в spec.values. Общее описание конфигурации values для инструментов описано в разделе «Конфигурации инструментов дополнительных компонентов».
installCRDs - управление установкой Custom Resource Definitions#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Определяет, устанавливать ли CRD (Custom Resource Definitions) при установке или обновлении чарта |
|
keepCRDs - сохранение CRD при удалении#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Сохраняет CRD при удалении Helm-релиза |
|
clusterInstall - режим установки контроллера#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
При значении |
|
createClusterAggregateRoles - создание агрегированных ролей#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Флаг для создания агрегированных ролей кластера (требует cluster RBAC) |
|
nameOverride - переопределение имени чарта#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Частичное переопределение шаблонного имени ресурсов чарта |
|
fullnameOverride - полное переопределение имени#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Переопределение полного имени ресурсов чарта |
|
namespaceOverride - переопределение пространства имен#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Переопределение пространства имен развертывания ресурсов |
|
apiVersionOverrides - переопределение версий API#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Переопределение |
|
kubeVersionOverride - переопределение версии Kubernetes#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Переопределение версии Kubernetes, используемой при вычислении условных манифестов чарта |
|
extraObjects - дополнительные манифесты#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Дополнительные манифесты для развертывания в рамках чарта. Список объектов |
|
controller - настройки контроллера Argo Rollouts#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Значение метки |
|
|
Аннотации Deployment контроллера |
|
|
Метки Deployment контроллера |
|
|
Аннотации pod контроллера |
|
|
Метки pod контроллера |
|
|
Селектор узлов для размещения pod контроллера |
|
|
Tolerations для размещения pod контроллера на tainted-узлах |
|
|
Affinity-правила для Deployment контроллера |
|
|
Уровень логирования контроллера (допустимые значения: |
|
|
Уровень |
|
|
Формат логов контроллера (допустимые значения: |
|
|
Правила |
|
|
Время ожидания завершения контейнера перед принудительной остановкой |
|
|
Lifecycle hooks для контейнера контроллера |
|
|
Класс приоритета для pod контроллера |
|
|
Количество pod контроллера |
|
|
Реестр контейнерного образа контроллера |
|
|
Репозиторий контейнерного образа контроллера |
|
|
Тег контейнерного образа контроллера |
|
|
Политика загрузки контейнерного образа контроллера |
|
|
Дополнительные аргументы командной строки для rollouts-controller |
|
|
Дополнительные переменные окружения для rollouts-controller |
|
|
Дополнительные контейнеры для Deployment контроллера |
|
|
Init-контейнеры для pod контроллера |
|
|
Лимиты и запросы ресурсов для pod контроллера |
|
|
Создание |
|
|
Порт контейнера для экспорта метрик |
|
|
Порт контейнера для |
|
|
Создание сервиса метрик для контроллера |
|
|
Имя порта сервиса метрик |
|
|
Порт сервиса метрик |
|
|
Аннотации сервиса метрик |
|
|
Включает |
|
|
Пространство имен для |
|
|
Дополнительные метки |
|
|
Дополнительные аннотации |
|
|
Правила перенастройки меток для метрик до их извлечения Prometheus |
|
|
Правила перенастройки меток для метрик до их обработки |
|
|
TLS-конфигурация |
|
|
HTTP-путь для |
|
|
Порт или имя порта для |
|
|
Задержка перед первым выполнением |
|
|
Интервал выполнения |
|
|
Количество неуспешных проверок до признания контейнера недоступным |
|
|
Количество успешных проверок после ошибки для восстановления статуса |
|
|
Время ожидания выполнения |
|
|
HTTP-путь для |
|
|
Порт или имя порта для |
|
|
Задержка перед первым выполнением |
|
|
Интервал выполнения |
|
|
Количество неуспешных readiness-проверок до признания pod неготовым |
|
|
Количество успешных readiness-проверок после ошибки для восстановления статуса |
|
|
Время ожидания выполнения |
|
|
Метки |
|
|
Аннотации |
|
|
Включает создание |
|
|
Минимальное количество или процент pod, которые должны оставаться доступными |
|
|
Максимальное количество или процент pod, которые могут быть недоступны одновременно |
|
|
Дополнительные |
|
|
Дополнительные |
|
|
Плагины сторонних провайдеров метрик для контроллера |
|
|
Сторонние плагины, которые используются для настройки шагов в канареечных стратегиях развертывания |
|
|
Настройка плагинов маршрутизации стороннего трафика для контроллера |
|
|
Флаг, определяющий автоматическое создание ConfigMap |
|
serviceAccount - настройки сервисного аккаунта#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Указывает, должен ли быть создан сервисный аккаунт |
|
|
Аннотации сервисного аккаунта |
|
|
Имя сервисного аккаунта. Если имя не задано и |
|
crdAnnotations - аннотации для CRD#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Аннотации, добавляемые ко всем CRD |
|
podAnnotations - аннотации для pod#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Аннотации для всех развертываемых pod |
|
podSecurityContext - контекст безопасности pod#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Запуск pod от имени непривилегированного пользователя |
|
containerSecurityContext - контекст безопасности контейнера#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Запрет повышения привилегий в контейнере |
|
|
Список |
|
|
Включение режима |
|
|
Тип seccomp-профиля для контейнера |
|
serviceAnnotations - аннотации сервиса Rollout#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Аннотации сервиса |
|
podLabels - метки pod#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Метки для |
|
imagePullSecrets - секреты для загрузки образов#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Список секретов с учетными данными для загрузки образов из приватного реестра |
|
providerRBAC - RBAC-правила для провайдеров#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включение добавления специфических RBAC-правил для провайдера в |
|
|
Добавляет RBAC-правила для провайдера Istio |
|
|
Добавляет RBAC-правила для провайдера SMI |
|
|
Добавляет RBAC-правила для провайдера Ambassador |
|
|
Добавляет RBAC-правила для AWS |
|
|
Добавляет RBAC-правила для AWS |
|
|
Добавляет RBAC-правила для провайдера Traefik |
|
|
Добавляет RBAC-правила для провайдера Apisix |
|
|
Добавляет RBAC-правила для провайдера Contour |
|
|
Добавляет RBAC-правила для провайдера Gloo Platform |
|
|
Добавляет RBAC-правила для провайдера Gateway API |
|
|
Дополнительные RBAC-правила для прочих провайдеров |
|
dashboard - настройки dashboard сервера Argo Rollouts#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включение развертывания |
|
|
Перевод |
|
|
Значение метки |
|
|
Аннотации Deployment |
|
|
Метки Deployment |
|
|
Аннотации pod |
|
|
Метки pod |
|
|
Селектор узлов для размещения pod |
|
|
Tolerations для размещения pod |
|
|
Affinity-правила для Deployment |
|
|
Уровень логирования |
|
|
Уровень |
|
|
Правила |
|
|
Класс приоритета для pod |
|
|
Включение создания |
|
|
Количество pod |
|
|
Реестр контейнерного образа |
|
|
Репозиторий контейнерного образа |
|
|
Тег контейнерного образа |
|
|
Политика загрузки контейнерного образа |
|
|
Дополнительные аргументы командной строки для |
|
|
Дополнительные переменные окружения для |
|
|
Ограничения и запросы ресурсов для pod |
|
|
Запуск pod |
|
|
Параметры безопасности контейнера, которые определяют права, разрешения и настройки безопасности для |
|
|
Тип сервиса для |
|
|
Класс реализации |
|
|
Статический IP-адрес для сервиса типа |
|
|
Список CIDR-диапазонов, которым разрешен доступ к сервису |
|
|
Список внешних IP-адресов сервиса |
|
|
Аннотации сервиса |
|
|
Метки сервиса |
|
|
Имя порта сервиса |
|
|
Порт сервиса |
|
|
Целевой порт контейнера для сервиса |
|
|
Фиксированный номер порта на узле кластера, используемый для внешнего доступа к сервису |
|
|
Создание сервисного аккаунта для |
|
|
Аннотации сервисного аккаунта |
|
|
Имя сервисного аккаунта |
|
|
Метки |
|
|
Аннотации |
|
|
Создание |
|
|
Минимальное количество или процент pod |
|
|
Максимальное количество или процент pod |
|
|
Включает создание Ingress для |
|
|
Аннотации Ingress |
|
|
Метки Ingress |
|
|
Имя |
|
|
Список хостов Ingress |
|
|
Список путей Ingress |
|
|
Тип путей в Ingress |
|
|
Дополнительные пути для Ingress |
|
|
TLS-конфигурация Ingress |
|
|
Дополнительные |
|
|
Дополнительные |
|
notifications - настройки уведомлений Argo Rollouts#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создание |
|
|
Создание секрета для уведомления. При ручном создании необходимо добавить корректную метку |
|
|
Пары «ключ-значение» для вставки в секрет уведомлений |
|
|
Аннотации для секрета уведомлений |
|
|
Настройка служб уведомлений |
|
|
Шаблоны уведомлений |
|
|
Триггеры, определяющие условия отправки уведомлений |
|
|
Подписки на триггеры общим способом для всех rollouts |
|