Argo CD

⌘K

Argo CD

Argo CD — это специализированный инструмент доставки приложений в Kubernetes, созданный на основе GitOps-подхода. Он отслеживает изменения в Git-репозиториях и автоматически синхронизирует их с Kubernetes-кластерами. Вся конфигурация и логика развёртывания описываются декларативно и живут в Git — Argo CD просто следит за тем, чтобы кластер соответствовал этому описанию.

Основная идея: Git хранит текущее «правильное» состояние инфраструктуры, а Argo CD проверяет, совпадает ли оно с реальной ситуацией в кластере. Если возникают отличия — система либо применяет нужные изменения автоматически, либо сигнализирует оператору о несоответствии.

Ключевые возможности Argo CD:

  • 📦 Синхронизация с Git — автоматическое применение изменений, как только они попадают в репозиторий;
  • 🔄 Автоматическое восстановление — если в кластере кто-то внёс правки вручную, Argo CD может вернуть его в нужное состояние;
  • 📊 Визуализация — веб-интерфейс, показывающий дерево ресурсов, их статусы и историю изменений;
  • 🧩 Поддержка разных форматов — Helm-чарты, Kustomize, plain YAML, Jsonnet;
  • 💾 Откаты — простое восстановление предыдущего состояния через
    git revert
    ;
  • 🔐 RBAC и интеграция с SSO — контроль доступа для команд и проектов.

Манифесты подключаются в виде Application-ресурсов (CRD), в которых указывается путь к репозиторию, ветка, стратегия синхронизации и целевой namespace.

Argo CD особенно полезен в командах, где:

  • конфигурация и код хранятся в Git;
  • есть несколько окружений (dev/stage/prod);
  • важны повторяемость, контроль и откат.

Инструмент легко интегрируется с другими компонентами Argo-экосистемы (например, Argo Workflows, Argo Events), а в сочетании с CI-системами вроде GitHub Actions, GitLab CI или Jenkins образует полный GitOps-пайплайн.

В современных DevOps-практиках Argo CD стал стандартом для управления Kubernetes-инфраструктурой — особенно в проектах, где важны прозрачность, отказоустойчивость и автоматизация процессов развертывания.


📄 Пример
Application
(Argo CD + Helm)

apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: redis-app namespace: argocd spec: project: default source: repoURL: https://charts.bitnami.com/bitnami chart: redis targetRevision: 17.10.1 helm: values: | architecture: standalone auth: enabled: false destination: server: https://kubernetes.default.svc namespace: redis syncPolicy: automated: prune: true selfHeal: true syncOptions: - CreateNamespace=true

🔧 Что здесь происходит:

  • Разворачивается Helm-чарт Redis из внешнего репозитория Bitnami.
  • Указана конкретная версия чарта (
    17.10.1
    ).
  • Настраиваются значения Helm (встроенно через
    helm.values
    ).
  • Argo CD автоматически создаёт namespace
    redis
    , если его нет (
    CreateNamespace=true
    ).
  • Включена автоматическая синхронизация:
    • prune: true
      — удаляет ресурсы, которых больше нет в Git;
    • selfHeal: true
      — восстанавливает состояние, если в кластере что-то изменено вручную.

🔁 Памятка: типы синхронизации в Argo CD

РежимОписание
ManualВсе изменения вносятся вручную через UI/CLI (
Sync
по запросу).
AutomatedArgo CD сам применяет все изменения из Git, как только они появляются.
PruneУдаляет «лишние» ресурсы — те, что больше не описаны в Git.
SelfHealВосстанавливает состояние, если ресурсы были изменены вручную в кластере.

Даже в глоссарии есть повод сэкономить

Дарим 1 месяц к году оплаты VPS. Код: NEWCOM

Месяц в подарок
COPIED
NEWCOM COPIED