ArgoCD: GitOps-деплой в Kubernetes — настройка

Мы просто и по делу рассказываем про ИИ-инструменты для работы: сравнения, пошаговые гайды, бесплатные альтернативы и реальные сценарии применения. Помогаем выбрать между ChatGPT, Gemini, Claude, локальными моделями и десятками узкоспециализированных сервисов — от дизайна и HR до аналитики и SEO. Меньше хайпа, больше практики и экономии времени каждый день.

ArgoCDgitopskubernetes

ArgoCD — один из самых популярных инструментов для GitOps в Kubernetes. Его задача проста: состояние кластера должно полностью соответствовать тому, что описано в Git. Это снижает риск “ручных” изменений, упрощает откаты и делает деплой прозрачным.

Что такое GitOps на практике

  • Git — единственный источник истины
  • Все манифесты Kubernetes хранятся в репозитории
  • ArgoCD автоматически сравнивает Git и кластер
  • При расхождении может синхронизировать изменения вручную или автоматически

Зачем нужен ArgoCD

  • ✅ Контроль версий инфраструктуры
  • ✅ Понятная история изменений
  • ✅ Быстрый rollback к предыдущему коммиту
  • ✅ Удобная работа с Helm, Kustomize и plain YAML
  • ✅ Визуализация состояния приложений в UI

Базовая схема настройки ArgoCD

  1. Установите ArgoCD в кластер:

    kubectl create namespace argocd
    kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
  2. Откройте доступ к UI, например через port-forward:

    kubectl port-forward svc/argocd-server -n argocd 8080:443
  3. Получите пароль администратора:

    kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
  4. Подключите Git-репозиторий с манифестами и создайте Application.

Пример Application

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: demo-app
  namespace: argocd
spec:
  project: default
  source:
    repoURL: https://github.com/example/repo.git
    targetRevision: main
    path: k8s
  destination:
    server: https://kubernetes.default.svc
    namespace: demo
  syncPolicy:
    automated:
      prune: true
      selfHeal: true

Что важно в этом манифесте

  • repoURL — адрес Git-репозитория
  • path — папка с Kubernetes-манифестами
  • targetRevision — ветка, тег или commit
  • prune: true — удаляет ресурсы, которых больше нет в Git
  • selfHeal: true — возвращает кластер к состоянию из репозитория 🔄

Практические советы

  • Храните отдельно приложение и инфраструктурные манифесты
  • Используйте Helm/Kustomize для разных окружений: dev, stage, prod
  • Ограничивайте доступ через RBAC
  • Не храните секреты в открытом виде — подключайте Sealed Secrets, External Secrets или Vault 🔐
  • Включайте auto-sync только там, где процесс релизов контролируем

Частые ошибки

  • Один репозиторий без структуры — сложно масштабировать
  • Отсутствие readiness/liveness probes — ArgoCD покажет sync, но приложение может быть недоступно
  • Ручные изменения в кластере — они будут перезаписаны
  • Непродуманная стратегия secrets — одна из главных причин проблем в проде ⚠️

Итог

ArgoCD делает Kubernetes-деплой воспроизводимым, управляемым и безопаснее с точки зрения процессов. Если команда хочет меньше “магии в кластере” и больше прозрачности, GitOps с ArgoCD — один из лучших стартов в эту сторону 📦

Присмотритесь к подборке каналов про IT — там много полезного по Kubernetes, DevOps, GitOps и production-практикам.

🗣 Подборки каналов
🧠 Каталог ботов и приложений
🗺 Навигация

Читайте так же