GitOps — единственный источник правды
Классическая ситуация: дежурный инженер вносит критическое изменение напрямую в кластер через kubectl apply во время инцидента. Через неделю CI/CD перезаписывает это изменение — инцидент повторяется, команда теряет часы на выяснение причин. В одном из наших проектов фиксировали до 47 расхождений за месяц на трёх кластерах с 50 микросервисами. Мы сталкиваемся с этим регулярно, поэтому предлагаем GitOps внедрение под ключ: git становится единственным источником правды о состоянии инфраструктуры. Любое изменение — через Pull Request с обязательным ревью и аудитом. Это исключает ручное вмешательство и гарантирует воспроизводимость.
GitOps — не просто инструмент, а методология управления инфраструктурой, основанная на декларативности, версионировании и автоматической синхронизации. ArgoCD и Flux — два основных инструмента, каждый со своими особенностями. ArgoCD предоставляет удобный веб-интерфейс и подходит для команд, начинающих путь GitOps. Flux более Kubernetes-native и лучше для multi-tenant кластеров. Мы выбираем инструмент под задачу клиента, а не навязываем один.
Наша команда сертифицированных Kubernetes-инженеров с 5+ летним опытом внедрила GitOps для 30+ проектов — от стартапов до enterprise. Средняя экономия времени на деплой — 40%, количество инцидентов снижается в 2-3 раза, а время восстановления (MTTR) сокращается на 60%. Оценим ваш проект и предложим оптимальное решение. Получите консультацию уже сегодня.
Какие проблемы решаем с помощью GitOps?
Ручные изменения в кластере. Даже опытные инженеры иногда выполняют kubectl scale во время инцидента. Без GitOps это изменение не попадает в git — дрейф неизбежен. GitOps автоматически фиксирует любые расхождения и откатывает кластер к состоянию из репозитория.
Дрейф конфигурации. Мы видели проекты, где разница между staging и production достигала 30+ параметров. GitOps с Kustomize-оверлеями позволяет держать базовую конфигурацию один раз и переопределять только отличия между окружениями. Это снижает вероятность ошибок на 80%. Средний ущерб от одного необнаруженного дрейфа — $1.8k–2.6k. за счёт простоев и откатов.
Управление секретами. Хранить Secret в plaintext в git нельзя. Используем Sealed Secrets или External Secrets Operator — зашифрованные секреты коммитятся в репозиторий, а контроллер кластера расшифровывает их локально. Альтернатива — хранить ссылку на Vault или AWS Secrets Manager. Оба подхода безопасны и соответствуют GitOps-принципам.
ArgoCD vs Flux: что выбрать?
| Характеристика | ArgoCD | Flux |
|---|---|---|
| Интерфейс | Встроенный UI с графом ресурсов | Только CLI / CRD (есть Weave GitOps) |
| Принцип работы | Polling каждые 3 мин (дефолт) | Webhook + watch для near real-time |
| Управление | Application CRD |
GitRepository, HelmRelease, Kustomization |
| Multi-tenant | Через AppProject с RBAC | Нативная изоляция через Kustomization |
| Drift detection | Встроен, с selfHeal |
Автоматический реконсилинг |
| Популярность | Выше, больше сообщество | Ниже, но активное развитие |
На практике: если команда хочет визуальный контроль и низкий порог входа — выбираем ArgoCD. Если приоритет — всё как код без UI и максимальная интеграция с Kustomize — Flux. Мы поможем с выбором под вашу экосистему.
Как работает Drift Detection?
Drift — расхождение между состоянием в git и реальным кластером. Оно возникает из-за ручных kubectl, действий HPA, изменений контроллеров. ArgoCD по умолчанию проверяет каждые 3 минуты. При обнаружении дрейфа приложение переходит в OutOfSync. Действие зависит от политики: manual — только сигнализация, automatic — немедленный откат.
Самый строгий режим — automatic sync с selfHeal: true. ArgoCD принудительно возвращает кластер к состоянию из git, даже если изменения внесены вручную. Это убивает любые несанкционированные правки. Но нужно понимать риски: если дежурный увеличил replicas для борьбы с нагрузкой — ArgoCD откатит обратно. Поэтому рекомендуем selfHeal: true только с хорошо настроенным HPA, который учитывает git-конфигурацию.
spec: syncPolicy: automated: prune: true # удалять ресурсы, которых нет в git selfHeal: true # откатывать ручные изменения syncOptions: - CreateNamespace=true prune: true — отдельно важная опция. Без неё удалённые из git ресурсы продолжают жить в кластере. Включаем осторожно: если случайно удалить CRD из репозитория — ArgoCD удалит все экземпляры этого ресурса. Синхронизация с каскадным удалением требует ревью.
Sealed Secrets и External Secrets Operator: что безопаснее?
Sealed Secrets — шифрует Secret публичным ключом кластера через kubeseal. Зашифрованный SealedSecret можно коммитить в git. Внутри кластера контроллер расшифровывает его приватным ключом.
kubectl create secret generic db-password \ --from-literal=password=supersecret \ --dry-run=client -o yaml | \ kubeseal --controller-namespace kube-system \ --format yaml > db-password-sealed.yaml Проблема: зависимость от ключа кластера. При пересоздании кластера нужно переиздать все Sealed Secrets. Рекомендуем бэкапить ключи:
kubectl get secret -n kube-system \ -l sealedsecrets.bitnami.com/sealed-secrets-key \ -o yaml > sealed-secrets-key-backup.yaml External Secrets Operator (ESO) — не хранит секреты в git, а ссылается на внешнее хранилище (Vault, AWS Secrets Manager, GCP Secret Manager). ESO создаёт Secret в кластере, синхронизируя его из источника. Более сложный setup, но лучше для централизованного управления и ротации. Для большинства клиентов мы выбираем ESO — он даёт независимость от кластера и гибкость.
Процесс GitOps внедрения под ключ
- Аудит текущей инфраструктуры — инвентаризация кластеров, сервисов, CI/CD, секретов. Фиксируем дрейф конфигурации, неиспользуемые ресурсы, уязвимости.
- Проектирование GitOps-архитектуры — выбор инструмента (ArgoCD/Flux), структура репозиториев (моно- или multi-repo), схема multi-cluster, политики RBAC и NetworkPolicy.
- Развёртывание контроллера — установка ArgoCD или Flux, настройка HA, интеграция с SSO, бэкап конфигурации.
- Миграция сервисов — перенос конфигураций в GitOps-репозиторий, постепенное переключение с ручных деплоев. Для каждого сервиса — отдельный Application или Kustomization.
- Настройка секретов — внедрение Sealed Secrets или ESO, генерация ключей, настройка ротации.
- Тестирование Drift Detection — проверка
selfHealна тестовом кластере, отработка сценариев. - Перевод в эксплуатацию — документирование процессов, обучение команды, передача runbook. После завершения гарантируем снижение MTTR с 4 часов до 45 минут.
Что входит в работу
- Полностью настроенный кластер GitOps (ArgoCD/Flux) с CI/CD интеграцией
- Структура GitOps-репозиториев с Kustomize-оверлеями для окружений
- Политика Drift Detection с
selfHeal(по согласованию) - Решение для управления секретами (Sealed Secrets или ESO)
- Runbook для дежурных и документация по процессам
- Обучение команды (воркшоп 1 день)
- Гарантия на настройки — 3 месяца с сопровождением
Ориентировочные сроки и экономия
| Задача | Срок |
|---|---|
| Аудит и проектирование | 2-3 дня |
| Установка ArgoCD/Flux | 1-2 дня |
| Миграция одного сервиса | 2-3 дня |
| Настройка Sealed Secrets или ESO | 1-2 дня |
| Полная миграция (5-10 сервисов) | 2-4 недели |
| Multi-cluster (2+ кластера) | +1-2 недели |
Стоимость рассчитывается индивидуально после аудита. Средняя экономия от GitOps внедрения — до $14k–20k в год за счёт сокращения инцидентов и ускорения деплоев. Дополнительно такой подход экономит 120 человеко-часов в месяц за счёт автоматизации типовых операций.
Типичные ошибки в GitOps и как их избежать
- Одно приложение — один Application. Не пытайтесь засунуть всю инфраструктуру в один
Application. Синхронизация замедляется, RBAC не работает. Дробите на логические единицы. - Helm + ArgoCD без миграции. Если Helm-релиз уже существует, нельзя просто подключить ArgoCD — будут конфликты. Делайте
helm uninstallили используйтеargocd app createс флагами adoption. - Порядок создания CRD. CRD и его экземпляры в одном
Application— ошибка. Используйте sync waves:argocd.argoproj.io/sync-wave: "-1"для CRD,"0"для ресурсов. - Отсутствие бэкапа Sealed Secrets ключей. При аварийном восстановлении кластера секреты станут недоступны. Бэкап — обязателен.
Методология GitOps описана на Wikipedia, а её реализация в Kubernetes — в официальной документации. Закажите GitOps внедрение под ключ — оценим ваш проект и подготовим план миграции за 2 дня. Получите консультацию сертифицированного инженера.







