Все статьи
GitOpsArgoCDFluxKubernetesCI/CD

GitOps на практике: ArgoCD vs Flux — что выбрать в 2026

InfoScale Team·15 марта 2026· 11 мин

GitOps — это не просто модное слово. Это операционная модель, при которой Git является единственным источником истины для состояния инфраструктуры и приложений. ArgoCD и Flux — два главных инструмента для реализации этого подхода. Мы используем оба в production и расскажем, когда что выбирать.

Что такое GitOps и почему это важно

Традиционный подход к деплою: разработчик запускает kubectl apply или helm upgrade вручную, или через CI-пайплайн с прямым доступом к кластеру. Проблема — состояние кластера расходится с тем, что написано в репозитории. Кто-то применил hotfix вручную, кто-то изменил ConfigMap напрямую. Через месяц никто не знает, что реально запущено.

GitOps решает это через pull-модель: специальный оператор внутри кластера постоянно сравнивает желаемое состояние (Git) с фактическим (кластер) и автоматически синхронизирует их. Никакого прямого доступа к кластеру из CI не нужно — это повышает безопасность и воспроизводимость.

ArgoCD: мощный UI и богатая экосистема

ArgoCD — это декларативный GitOps-инструмент для Kubernetes с богатым веб-интерфейсом. Он показывает граф ресурсов приложения в реальном времени: какие поды запущены, какие деплойменты синхронизированы, где есть расхождения. Это делает его особенно удобным для команд, которые только начинают с GitOps.

Сильные стороны
  • ·Визуальный UI с графом ресурсов
  • ·Multi-tenancy из коробки
  • ·RBAC на уровне приложений
  • ·Поддержка Helm, Kustomize, Jsonnet
  • ·ApplicationSet для fleet management
  • ·Богатый REST API и CLI
Ограничения
  • ·Требует больше ресурсов (~500MB RAM)
  • ·Сложнее настроить без UI
  • ·Нет встроенной работы с секретами
  • ·Меньше гибкости в автоматизации

# ArgoCD Application manifest
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: infoscale-api
  namespace: argocd
spec:
  source:
    repoURL: https://github.com/infoscale/k8s-manifests
    targetRevision: HEAD
    path: apps/api
  destination:
    server: https://kubernetes.default.svc
    namespace: production
  syncPolicy:
    automated:
      prune: true
      selfHeal: true

Flux: Kubernetes-native и максимальная автоматизация

Flux v2 — это набор Kubernetes-контроллеров (GitRepository, Kustomization, HelmRelease), которые работают как обычные CRD. Нет отдельного сервера — только операторы в кластере. Это делает Flux более «нативным» для Kubernetes и проще в автоматизации через GitOps-подход к самому Flux.

Сильные стороны
  • ·Минимальный footprint (~150MB RAM)
  • ·Встроенная интеграция с SOPS/Sealed Secrets
  • ·Image automation (автообновление тегов)
  • ·Bootstrapping через CLI (flux bootstrap)
  • ·Идеален для multi-cluster fleet
  • ·Нативная интеграция с Helm OCI
Ограничения
  • ·Нет встроенного UI (нужен Weave GitOps)
  • ·Сложнее для новичков без UI
  • ·Меньше возможностей multi-tenancy
  • ·Отладка через kubectl, не через браузер

# Flux HelmRelease manifest
apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
metadata:
  name: infoscale-api
  namespace: production
spec:
  interval: 5m
  chart:
    spec:
      chart: ./charts/api
      sourceRef:
        kind: GitRepository
        name: infoscale-k8s
  values:
    image.tag: "1.4.2"

Сравнение ArgoCD и Flux

ПараметрArgoCDFlux v2
Веб-интерфейс✅ Встроенный, богатый❌ Нет (нужен Weave GitOps)
Потребление ресурсов~500MB RAM~150MB RAM
Управление секретами❌ Внешние решения✅ SOPS, Sealed Secrets
Image automation⚠️ Через ArgoCD Image Updater✅ Встроено
Multi-tenancy✅ Отличная⚠️ Ограниченная
Kubernetes-native⚠️ Частично✅ Полностью CRD
Порог входаНизкий (есть UI)Средний (только CLI)
CNCF статусGraduatedGraduated
ЛицензияApache 2.0Apache 2.0

Когда что выбирать

ArgoCD

  • Команда только начинает с GitOps
  • Нужна визуализация состояния кластера
  • Много команд в одном кластере (multi-tenancy)
  • Требуется детальный RBAC на приложения
  • Важна интеграция с внешними CD-системами

Flux v2

  • Нужна максимальная автоматизация обновлений
  • Важна безопасность секретов (SOPS)
  • Управление fleet из 10+ кластеров
  • Команда комфортна с kubectl и CLI
  • Нужен минимальный overhead в кластере

Что мы используем в InfoScale

Мы используем оба инструмента — в зависимости от контекста проекта. Для клиентов, которые только внедряют GitOps и хотят видеть, что происходит в кластере, мы ставим ArgoCD. Визуальный граф ресурсов снижает порог входа и ускоряет онбординг команды.

Для зрелых команд с несколькими кластерами и требованиями к безопасности секретов мы выбираем Flux. Особенно ценна встроенная поддержка SOPS: секреты шифруются прямо в Git, никаких внешних vault-систем не нужно для базовых сценариев.

Реальный кейс: финтех-стартап, 3 кластера

Клиент пришёл с ArgoCD на одном кластере. При расширении на staging и production в двух регионах мы перешли на Flux с ApplicationSets-подобной структурой через Kustomize overlays. Время синхронизации изменений сократилось с 3 минут до 45 секунд, а управление секретами через SOPS убрало необходимость в отдельном Vault-кластере.

Типичные ошибки при внедрении GitOps

⚠️ Хранить секреты в Git в открытом виде

Самая частая ошибка новичков. Используйте SOPS с age-ключами (Flux) или External Secrets Operator (ArgoCD + Vault/AWS SSM).

⚠️ Смешивать application code и infrastructure manifests в одном репо

Разделяйте app-repo (код) и config-repo (манифесты). Это позволяет независимо версионировать деплои и упрощает аудит изменений.

⚠️ Отключать selfHeal в production

selfHeal — это суть GitOps. Без него ручные изменения в кластере не откатываются, и состояние расходится с Git. Включайте всегда, кроме случаев активной отладки.

⚠️ Не настраивать notifications

И ArgoCD, и Flux поддерживают уведомления в Slack/Telegram о статусе синхронизации. Без этого вы узнаёте о проблемах только когда что-то упало.

Итог

ArgoCD и Flux — оба отличных инструмента, оба CNCF Graduated. ArgoCD выигрывает по UX и multi-tenancy, Flux — по автоматизации, безопасности секретов и минимальному footprint. Для большинства новых проектов мы рекомендуем начать с ArgoCD, а при росте fleet или требованиях к автоматизации — рассмотреть Flux или гибридный подход.

Нужна помощь с GitOps?

Настроим ArgoCD или Flux под ваш кластер, обучим команду и передадим runbook.

Написать нам