Что такое ArgoCD

Обновлено и опубликовано Опубликовано:

ArgoCD —
простыми словами

инструмент для непрерывной доставки приложений в Kubernetes по принципу GitOps.

ArgoCD следит за состоянием репозитория в Git и сравнивает его с тем, что реально развернуто в кластере. Как только манифесты в репозитории меняются, ArgoCD подтягивает изменения и приводит кластер к нужному состоянию. Репозиторий становится единственным источником правды — никаких ручных правок через kubectl мимо Git.

Проект входит в семейство Argo Project вместе с Argo Workflows, Argo Events и Argo Rollouts. Изначально ArgoCD разрабатывала компания Intuit, позже проект передали в CNCF. Сейчас у него статус graduated — это высшая ступень зрелости проектов фонда.

Основные возможности ArgoCD:

  • Синхронизация с Git. Кластер автоматически приводится к состоянию, описанному в репозитории (по умолчанию проверка происходит каждые 3 минуты, для мгновенной реакции настраиваются вебхуки).
  • ApplicationSets. Механизм шаблонной генерации приложений — удобен, когда одну и ту же конфигурацию нужно развернуть в несколько кластеров или окружений.
  • Веб-интерфейс и CLI. Оба инструмента показывают дерево ресурсов, разницу между желаемым и текущим состоянием, историю деплоев.
  • Откат к предыдущей версии. Можно вернуться к любому прошлому коммиту одной командой или кликом в интерфейсе.
  • Поддержка Helm, Kustomize и обычных YAML-манифестов. ArgoCD не привязывает пользователя к одному способу описания приложений.
  • Multi-cluster деплой. Один экземпляр ArgoCD способен управлять развертыванием сразу в несколько кластеров Kubernetes.

ArgoCD часто сравнивают с Flux CD — другим популярным инструментом GitOps:

  • У ArgoCD более развитый и наглядный веб-интерфейс.
  • У ArgoCD более высокий порог входа при настройке RBAC и сложных сценариев.
  • Flux теснее интегрируется с другими компонентами экосистемы Flux (Helm-controller, Image Automation).

Выбор между инструментами обычно зависит от того, насколько важен готовый веб-интерфейс.

Установка

Для установки ArgoCD достаточно выполнить следующие команды:

kubectl create namespace argocd && kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml

* где: argocd — имя namespace, в который устанавливаются все компоненты ArgoCD.

Для проверки установки вводим команду:

kubectl get pods -n argocd

ArgoCD распространяется по лицензии Apache License 2.0, ограничений на коммерческое использование нет.



Дмитрий Моск
— IT-специалист.
Настройка серверов, услуги DevOps.

Другие термины

UAC   Gradle   Docker   WPA   Ubuntu   ClamAV   Rclone   Puppet   Blu-Ray   Прокси-сервер   Термопаста   NFS   Consul   Симлинк   Corosync   Ошибка 404   CMS   GitLab   Lua   Ping  
.....

Реклама