Когда кластеров несколько, а деплоят в них по SSH и kubectl apply из головы,
рано или поздно наступает момент, когда «кто-то что-то накатил» — и никто не может сказать что именно.
В этой статье расскажу, как мы пришли к ArgoCD и почему он стал единственным источником истины
для всех Kubernetes-сред.
Проблема
До GitOps деплой выглядел так: инженер выполняет команды на сервере, правки применяются точечно, манифесты живут в репозиториях у каждого в голове. Любой инцидент превращался в расследование «кто и что менял». Дрейф конфигурации между кластерами был нормой, а не исключением.
Решение: GitOps на ArgoCD
Мы внедрили ArgoCD как единую точку управления: все манифесты хранятся в git-репозиториях,
кластеры синхронизируются из них автоматически. Откат — это просто git revert и sync.
argocd app sync production
argocd app diff production --revision v1.2.3
Подготовка кластера
Чтобы новый кластер поднимался быстро, я написал кастомные Ansible-роли для post-setup:
- Настройка Docker insecure registry для внутренних образов;
- Установка и конфигурация containerd;
- Автоматическая регистрация GitLab Runner;
- Установка ArgoCD и начальных application-манифестов.
Благодаря этому развёртывание нового окружения сократилось с нескольких дней до часов.
Итог
ArgoCD стал единственным источником истины. Мы получили воспроизводимые среды, быстрые откаты и прозрачность: любое изменение можно отследить по коммиту. GitOps — это не просто инструмент, это дисциплина, которая окупается при каждом инциденте.