Live-данные · обновлено 19 июля 2026 г.

ArgoCD: что это такое, GitOps и деплой в Kubernetes

Каждая ручная команда kubectl apply в продакшене — это риск неконсистентного состояния и хаоса при откате. ArgoCD решает эту проблему, внедряя строгий GitOps-подход: любое изменение инфраструктуры начинается с коммита в git, а не с доступа к кластеру. Это делает деплой воспроизводимым и безопасным. По данным SkillStat, в московском IT-срезе открыто 126 вакансий, где ArgoCD — один из ключевых требуемых навыков.

КВКузнецов Вячеслав·Технический редактор·DevOps/SRE-техлид · опыт 10+ лет
Вакансий
126
активных в Москве
Медиана зарплаты
Индекс спроса
66/100
#114 из 332 навыков
Доля IT-рынка
1.8%
15 профессий

Коротко о навыке

ArgoCD — это не просто ещё один CD-инструмент, а эталон реализации GitOps для Kubernetes. Его ключевая ценность в том, что он превращает git-репозиторий в единственный источник истины о состоянии кластера, автоматически синхронизируя реальность с желаемой конфигурацией.

В современной экосистеме, где конфигурация отделена от кода приложения, ArgoCD становится мостом между разработчиком, который описал манифесты, и кластером, который их исполняет. Инструмент быстро эволюционировал от простого контроллера синхронизации до платформы с визуальным веб-интерфейсом, управлением жизненным циклом приложений на нескольких кластерах и интеграциями с секрет-менеджерами.

Это навык, который прямо коррелирует с переходом специалиста от ad-hoc операций к построению надежных платформ.

Для этого навыка доступны ограниченные данные (менее 50 вакансий или нет зарплатных данных). Аналитика носит ориентировочный характер.

Что такое ArgoCD

Суть

GitOps-оператор для Kubernetes, который автоматически синхронизирует кластер с git.

Главные фишки

ApplicationSet, pull-модель, Sync Waves, развитый Web UI.

Простыми словами

Представьте, что у вас есть квартира, и вы составили подробную инструкцию: «На кухне — белые стулья, в спальне — синие шторы, температура — 22 градуса». ArgoCD — это робот-домоуправитель, который каждую минуту проверяет, всё ли в квартире соответствует инструкции. Если кто-то передвинул стул или выключил кондиционер, робот возвращает всё как было. Если вы захотели изменить инструкцию — просто правите текстовый файл, и робот сам переставит мебель. Технически ArgoCD — это контроллер, который живет внутри Kubernetes-кластера. Он подписан на изменения в git-репозитории с манифестами (YAML-файлы, описывающие инфраструктуру). Как только вы делаете commit и push, ArgoCD автоматически применяет эти изменения к кластеру. Но главная фишка — обратная синхронизация: если кто-то вручную изменил что-то в кластере через kubectl, ArgoCD заметит расхождение и вернет кластер в состояние, описанное в git.

Как это работает

Архитектура ArgoCD строится вокруг ключевого принципа — pull-модель деплоя. В отличие от Jenkins или GitLab CI, которые «пушат» изменения в кластер (push-модель), ArgoCD работает иначе: 1. Контроллер ArgoCD разворачивается в кластере как набор pod'ов (application-controller, api-server, repo-server, redis). 2. Repo-server постоянно опрашивает git-репозиторий (или получает webhook-уведомления) на предмет изменений. 3. Application-controller сравнивает желаемое состояние (то, что в git) с текущим состоянием кластера (то, что реально запущено). 4. Если есть расхождение, контроллер генерирует diff и применяет изменения через Kubernetes API. 5. Web UI и CLI позволяют отслеживать статус, смотреть diff, запускать ручную синхронизацию и откаты. Ключевой механизм — Sync Waves и Hooks. ArgoCD поддерживает поэтапное развертывание: сначала применяются Namespace, затем CRD (Custom Resource Definitions), потом Deployment — и только после успешного прохождения health-check запускаются следующие этапы.

Чего ArgoCD не делает

ArgoCD — не CI-инструмент. Он не собирает Docker-образы, не запускает тесты и не анализирует код. Его задача — только доставка готовых артефактов в кластер. ArgoCD — не замена Helm. Хотя ArgoCD умеет работать с Helm-чартами, это разные уровни абстракции. Helm — это шаблонизатор и пакетный менеджер для Kubernetes. ArgoCD — это GitOps-оператор, который использует Helm как один из способов генерации манифестов. ArgoCD — не панацея от плохих процессов. Если ваша команда не умеет описывать инфраструктуру кодом (IaC), если нет четкого code review и тестирования манифестов, ArgoCD не исправит хаос — он лишь сделает его автоматизированным.

Понятия / Карта

Из чего состоит ArgoCD

Понятие Что это Что нужно уметь
Application
Базовая единица управления ArgoCD, связывает git-репозиторий с кластером
Создавать, настраивать syncPolicy, синхронизировать
ApplicationSet
Генератор множества Application из шаблона для кластеров и окружений
Настраивать генераторы (Git, Cluster, List), управлять шаблонами
Project
Логическая группа приложений с политиками доступа и ограничениями
Создавать Project, настраивать RBAC и доступ к репозиториям
Sync
Процесс приведения кластера к состоянию из git
Запускать синхронизацию, понимать diff, настраивать syncPolicy
Sync Policy
Настройки автоматической синхронизации и prune
Настраивать automated.sync, prune, selfHeal, syncOptions
Sync Status
Состояние приложения: Synced, OutOfSync, Syncing
Читать статус, диагностировать расхождения
Health Status
Состояние ресурсов: Healthy, Degraded, Progressing
Понимать health checks, диагностировать degraded состояние
Repo-server
Компонент, который клонирует git и генерирует манифесты
Управлять подключением к репозиториям (SSH/token)
Application-controller
Компонент, сравнивающий git и кластер, выполняющий sync
Понимать логику работы, читать логи при ошибках
Hook
Ресурс (Job/Pod) для миграций и проверок в процессе sync
Настраивать PreSync, Sync, PostSync, PostDelete hooks
Config Management Plugins (CMP)
Расширения для поддержки кастомных форматов манифестов
Создавать и настраивать CMP для нестандартных форматов
RBAC
Ролевая модель доступа к ArgoCD через SSO или локальных пользователей
Настраивать политики в argocd-rbac-cm, интегрировать с OIDC
Sync Waves
Механизм поэтапного применения ресурсов в правильном порядке
Назначать wave номера ресурсам, управлять порядком деплоя
Механика / Работа

Как Argo CD связывает Git и кластер

Argo CD проще всего понимать через один путь: репозиторий с манифестами, объект application, желаемое состояние, sync и фактическое состояние в Kubernetes. На этом пути быстро видно, что инструмент отвечает не за сборку, а за управляемую доставку уже подготовленной конфигурации.

Шаг 01

Git хранит желаемое состояние

В репозитории лежат манифесты или шаблоны, которые описывают, каким должно быть приложение в среде.

Шаг 02

Argo CD читает application и сравнивает состояния

Инструмент смотрит на Git и на кластер одновременно, чтобы увидеть, совпадают ли ожидание и факт.

Шаг 03

Sync приводит среду к нужной конфигурации

После синхронизации кластер получает состояние, которое команда зафиксировала как правильное в репозитории.

Шаг 04

Drift показывает расхождения

Если кто-то или что-то изменило среду вручную, команда быстрее видит проблему и может вернуть порядок.

Карьера / Роли

Кому нужен ArgoCD

ArgoCD переносится между ролями: DevOps-инженер, SRE-инженер, Platform Engineer. В одном треке этот навык может быть основным рабочим инструментом, а в другом - сильным прикладным усилителем основной специализации.

Роли с ArgoCD за период

DevOps-инженер — самый заметный профиль в распределении ролей по навыку.

Ещё 7 ролей используют ArgoCD

Текущий срез показывает активные вакансии сейчас. Распределение по ролям рассчитано по расширенной исторической выборке, поэтому значения могут быть выше текущего количества активных вакансий.

Практика / Задачи

Частые задачи с ArgoCD

ArgoCD ценен не абстрактным знанием инструмента, а повторяющимися рабочими задачами — ниже они разобраны так, как встречаются в реальной работе.

Задача 01

Установить ArgoCD

Создать namespace argocd, применить install.yaml.

kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
Задача 02

Получить пароль admin

Извлеките пароль из secret argocd-initial-admin-secret.

kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
Задача 03

Залогиниться в CLI

Подключитесь к ArgoCD-серверу через CLI.

argocd login localhost:8080 --username admin --password <password> --insecure
Задача 04

Создать Application

Создайте приложение из публичного репозитория.

argocd app create guestbook --repo https://github.com/argoproj/argocd-example-apps.git --path guestbook --dest-server https://kubernetes.default.svc --dest-namespace default
Задача 05

Синхронизировать приложение

Запустите синхронизацию вручную.

argocd app sync guestbook
Задача 06

Откатить деплой

Откатите приложение к предыдущей версии.

argocd app rollback guestbook --id 1
Практика / Ошибки

Ошибки новичков

Ошибка 01

OutOfSync после ручных изменений

Ручные изменения в кластере через kubectl приводят к расхождению. Решение: включить selfHeal или использовать syncPolicy.

Ошибка 02

Sync Failure из-за невалидных манифестов

Ошибки в YAML-манифестах приводят к сбою синхронизации. Решение: проверять YAML перед коммитом через линтеры.

Ошибка 03

Проблемы с доступом к репозиторию

Неправильные SSH-ключи или токены блокируют доступ к git. Решение: проверить доступ через ArgoCD UI в разделе Repositories.

Ошибка 04

Resource quota exceeded

Превышение лимитов ресурсов в namespace. Решение: настроить resource quotas и requests/limits в манифестах.

Ошибка 05

Конфликты при параллельной синхронизации

Одновременная синхронизация нескольких приложений может вызвать конфликты. Решение: использовать syncWindows.

Рынок / Контекст

ArgoCD в современных IT-проектах: контекст спроса

ArgoCD востребован в компаниях, переходящих на GitOps. Инструмент стал стандартом для управления Kubernetes. По данным SkillStat, 126 вакансий требуют этот навык. Рост спроса связан с переходом от ручных деплоев к автоматизированным платформам.

Сокращает ручную работу

ArgoCD востребован там, где инструмент реально ускоряет повторяемые задачи команды, а не существует отдельной теорией.

Встроен в рабочий процесс

Спрос держится дольше, когда навык нужен не эпизодически, а как часть ежедневного цикла разработки, проверки или доставки.

Закреплён в зрелом стеке

ArgoCD чаще ищут там, где процесс уже стандартизирован и без этого инструмента команда теряет скорость и предсказуемость.

Сигнал рынка
Стабильный спрос

ArgoCD формирует устойчивый спрос внутри своего рабочего сегмента.

Рынок / Спрос

Спрос на ArgoCD на рынке

ArgoCD сохраняет устойчивый прикладной спрос на рынке: 126 активных вакансий, #114 по рынку, 1.8% IT-вакансий. Ниже показано число открытых вакансий на конец каждого месяца: это исторический ряд по состоянию на конец месяца, а не текущий срез рынка на сегодня.

Сила спроса
Стабильный спрос
126
активных вакансий сейчас

#114 по рынку • 1.8% IT-вакансий

Месяц к месяцу
152
июль 2026 — предварительный накопительный срез

-4 вакансий и -3% к предыдущему месяцу.

Связи / Навыки

Навыки в связке с ArgoCD

ArgoCD редко живёт изолированно: чаще всего рынок видит его рядом с Kubernetes, CI/CD, Linux. Самая плотная связка сейчас - Kubernetes: оба навыка встречаются вместе в 98% вакансий.

Главная связка: Kubernetes • 98% вакансий. Показываем общерыночные связки ArgoCD: не junior-минимум из блока выше, а навыки, которые чаще всего встречаются рядом с ним в одной вакансии.

Рабочий стек вокруг ArgoCD

навыки, которые рынок чаще всего видит рядом в одной вакансии

Навык Зачем рядом Доля
Одна из самых плотных рыночных связок рядом с ArgoCD.
98%
Часто встречается рядом с ArgoCD в одном рабочем сценарии.
86%
Часто встречается рядом с ArgoCD в одном рабочем сценарии.
71%
Поддерживает соседние процессы и усиливает рабочий контур навыка.
71%
Поддерживает соседние процессы и усиливает рабочий контур навыка.
71%
Поддерживает соседние процессы и усиливает рабочий контур навыка.
69%
Вход / Старт

Порог входа

Сейчас на рынке 5 активных junior-вакансий с ArgoCD. Это 4.8% всех вакансий по навыку, поэтому для старта важнее всего смотреть на реальный объём junior-окна и на стек, который рынок ждёт рядом.

Junior-вакансии сейчас
5
активных вакансий

4.8% всех вакансий по навыку • Senior / Junior 10.3x

Доля junior
4.8%
% всех вакансий по навыку

Окно входа узкое: рынок чаще нанимает с опытом.

Что нужно на старте

Стартовый стек

21
навыков в медианной вакансии

Медианная вакансия с ArgoCD ожидает около 21 навыков в стеке. Это широкий стартовый набор: рынок обычно ищет не один изолированный инструмент, а рабочую комбинацию соседних навыков.

Чаще всего требуют вместе

навыки из junior-вакансий, где встречается ArgoCD

Навык Junior-вакансии
Карьера / Резюме

ArgoCD в резюме: что значит "знаю ArgoCD"

Владение ArgoCD означает разный уровень ответственности и задач в зависимости от роли. Вот что показывать в резюме для каждой позиции:

Уровень Что значит Что показать
Beginner
Понимает GitOps-концепцию, умеет развернуть ArgoCD локально и создать Application
Развернул ArgoCD в Kind/Minikube, создал первое Application с автосинхронизацией
Junior developer
Работает с GitOps-репозиториями, создает манифесты и базовые Application
Настроил GitOps-репозиторий, создал Application для dev/staging
Middle developer
Настраивает ApplicationSet, syncPolicy, работает с Helm/Kustomize через ArgoCD
Внедрил ArgoCD для 3 микросервисов, настроил ApplicationSet с Git Generator
QA automation
Настраивает тестовые окружения через Pull Request Generator, понимает hooks
Настроил автоматическое создание окружений на каждый PR через ApplicationSet
Data/ML
Использует ArgoCD для деплоя ML-моделей и data pipeline в K8s
Деплоил ML-сервисы через ArgoCD с Helm-чартами и Kustomize-оверлеями
DevOps junior
Развертывает ArgoCD, создает Application, настраивает базовые политики безопасности
Развернул ArgoCD на 3 кластерах, настроил RBAC и Project для команд
SRE/platform
Управляет платформой ArgoCD, мультикластером, интеграцией с мониторингом и CI
Спроектировал GitOps-платформу на ArgoCD для 50+ микросервисов, настроил метрики
Сравнение / Инструменты

Когда выбирают Argo CD, а когда нет

Решение зависит от зрелости Kubernetes-среды, количества сервисов и того, насколько команде нужен именно GitOps-подход с прозрачным желаемое состояние.

Инструмент За что отвечает Когда нужен Граница

Argo CD

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

Подходит там, где команда уже ведёт приложения через репозиторий и хочет видеть drift, sync и историю конфигурации прозрачно.

Не заменяет сборку, тесты и другие части CI, а живёт рядом с ними.

Jenkins или GitHub Actions

Конвейерные системы для сборки, тестов и служебной автоматизации.

Нужны там, где важно собрать образ, прогнать проверки и выполнить шаги до появления готового релизного артефакта.

Сами по себе не решают задачу постоянного контроля желаемое состояние в кластере.

Helm

Инструмент шаблонизации и упаковки Kubernetes-манифестов.

Полезен, если конфигурацию нужно параметризовать и повторно использовать.

Не заменяет GitOps-синхронизацию и контроль drift, а скорее поставляет форму конфигурации для неё.

Ручной kubectl-деплой

Самый прямой способ применить изменение в кластер.

Уместен только в очень простых или учебных сценариях, где командная дисциплина и повторяемость пока не критичны.

Быстро становится источником хаоса, если сервисов и изменений много.

Навык / Применение

Где используется ArgoCD

ArgoCD применяется в различных сценариях, от управления микросервисами до развертывания тестовых окружений. Вот ключевые варианты использования:

Сценарий 01

DevOps-инженеру: централизованное управление

Управление сотнями микросервисов в нескольких кластерах через ApplicationSet с Git Generator.

Сценарий 02

Backend-разработчику: изоляция конфигурации

Разработчик описывает манифесты в git, ArgoCD автоматически применяет их на dev-окружении.

Сценарий 03

Platform-инженеру: управление инфраструктурой

Развертывание и обновление service mesh, ingress-контроллеров, систем мониторинга и логгирования.

Сценарий 04

QA-инженеру: автоматизация тестовых окружений

Создание изолированных окружений на каждый pull request через Pull Request Generator.

По направлениям

ArgoCD заметен в 3 направлениях рынка с долей выше 5%.

Направление Контекст Доля
Инфраструктура
Централизованное управление платформенными компонентами (Ingress, Service Mesh).
81.1%
Разработка
Управление конфигурациями микросервисов, деплой на dev/staging.
6.2%
Данные и ML
Часть спроса по навыку сосредоточена в этом направлении.
6%
Безопасность
Часть спроса по навыку сосредоточена в этом направлении.
2.9%
Направления показывают, в каких частях IT-рынка навык заметен чаще всего, без разбивки по ролям.
Инструмент / Возможности

Что важно уметь в Argo CD

Рынок ценит не слово GitOps, а способность использовать его так, чтобы выкат и конфигурация были прозрачны для всей команды.

Понимать желаемое состояние

Ясно видеть, какое состояние считается правильным и как оно описано в Git.

Отделять CD от CI

Не путать сборку и тесты с управлением тем, что реально должно жить в кластере после выкатки.

Работать с drift и sync осознанно

Понимать, что именно расходится и почему простое нажатие кнопки sync не всегда решает корневую проблему.

Держать несколько окружений и сервисов в порядке

Строить схему, в которой рост инфраструктуры не превращает GitOps в хаотичный набор исключений.

Сравнение / Контекст

Argo CD, Jenkins, Helm и GitHub Actions: где проходит граница

Чаще всего путаница начинается потому, что читатель сравнивает инструменты с разными ролями в цепочке поставки. Их нужно разводить по месту в процессе.

Argo CD

Управляет желаемым состоянием приложения в Kubernetes и синхронизирует его с Git-репозиторием.

Jenkins

Чаще отвечает за конвейер сборки, тестов и служебных шагов, которые происходят до фактического управления состоянием кластера.

Helm

Помогает шаблонизировать и упаковывать Kubernetes-манифесты, но сам по себе не решает всю задачу GitOps-синхронизации.

GitHub Actions

Даёт конвейерный слой для автоматизационных задач, но роль управления желаемое состояние в кластере у него не такая же, как у Argo CD.

Данные / Стек

С чем Argo CD работает рядом

В реальной среде Argo CD почти всегда связан с Git-репозиторием, Kubernetes-кластером, Helm-шаблонами, образами и общим релизным процессом.

Git-репозиторий

Именно здесь живёт желаемая конфигурация, без которой GitOps-подход теряет основу.

Kubernetes-кластер

Argo CD постоянно сравнивает ожидание из Git с фактическим состоянием среды и опирается на поведение кластера.

Helm и манифесты

Они помогают сформировать конфигурацию приложения, которую потом нужно синхронизировать и сопровождать.

Образы и CI-процесс

Хотя Argo CD не собирает артефакты сам, он живёт рядом с конвейером, который готовит версии для дальнейшего выката.

Практика / Workflow

Как ArgoCD используется в реальном проекте

Этап Что происходит Артефакт
1 Разработка
Разработчик описывает манифесты (Deployment, Service) и commit'ит в git
YAML-манифесты в git
2 CI
CI-система собирает образ и обновляет тег в манифесте (или пушит новый чарт)
Docker-образ + обновленный манифест
3 ArgoCD Sync
ArgoCD видит новый коммит, скачивает манифест и синхронизирует кластер
ArgoCD Application
4 Kubernetes Apply
Application-controller применяет манифест через Kubernetes API
Pod, Service, Deployment
5 Health Check
ArgoCD проверяет, что все ресурсы в статусе Healthy
Healthy Status
6 Откат (Rollback)
При проблеме ArgoCD откатывает к предыдущей версии через git revert или rollback
Предыдущая ревизия
7 Мониторинг
Prometheus/Grafana собирают метрики ArgoCD, алертят при OutOfSync
Дашборды и алерты
Инструмент / Оркестрация

ArgoCD: запуск в локальном Kind-кластере

Для быстрого знакомства с ArgoCD можно развернуть его локально в Kubernetes-кластере с помощью Kind. Это не production-конфигурация, но позволяет изучить интерфейс и базовые операции.

Kind-кластер: локальный K8s

Kind (Kubernetes in Docker) создает локальный кластер для тестирования ArgoCD. Можно использовать Minikube или Docker Desktop.

namespace argocd: изоляция компонентов

ArgoCD устанавливается в отдельный namespace `argocd`, что упрощает управление и очистку.

install.yaml: установка компонентов

ArgoCD устанавливается через `kubectl apply` манифеста install.yaml, который включает api-server, controller, repo-server.

argocd-server: Web UI и gRPC

Сервер ArgoCD предоставляет Web UI и gRPC на одном порту 443 (внутри контейнера — 8080, мультиплексируются по content-type). Для локального доступа используется port-forward.

Пароль администратора

Пароль хранится в secret `argocd-initial-admin-secret` в namespace argocd. Его можно получить через kubectl.

Пример: базовый деплой

Создать Application с репозиторием, путем и namespace. ArgoCD автоматически синхронизирует кластер с git.

Рекомендации по production

Использовать SSO (OIDC/Dex), настроить TLS, включить audit logging. Для production не использовать --insecure.

Практика / ArgoCD

ArgoCD: лучшие практики и типичные ошибки новичков

Практика 01

Использовать ApplicationSet

Не создавать Application вручную — используйте ApplicationSet с Git Generator. Это автоматизирует управление приложениями для разных окружений и кластеров.

Практика 02

Включить prune и selfHeal

Настройте syncPolicy с `prune: true` и `selfHeal: true`. Prune удаляет лишние ресурсы, selfHeal восстанавливает состояние после ручных изменений.

Практика 03

Контролировать syncWindows

Настройте syncWindows для prod-кластера, чтобы деплоить только в рабочее время. Избегайте случайных деплоев в нерабочее время.

Практика 04

Управлять секретами через External Secrets

Не храните секреты в манифестах. Используйте External Secrets Operator или Sealed Secrets, чтобы синхронизировать секреты из Vault или облачных провайдеров.

Практика 05

Настроить RBAC и Project

Ограничьте доступ к кластерам и namespace через Project. Используйте SSO (OIDC/Dex) и настройте `argocd-rbac-cm` для разграничения прав.

Практика 06

Использовать Sync Waves и Hooks

Настройте порядок применения ресурсов через Sync Waves. Используйте Hooks для миграций БД и проверок перед деплоем.

Практика 07

Мониторить ArgoCD через Prometheus

Экспортируйте метрики ArgoCD в Prometheus. Настройте дашборды в Grafana и алерты на OutOfSync, Degraded, Sync Failure.

Практика 08

Регулярно обновлять ArgoCD

Следите за релизами ArgoCD и обновляйте его. Устаревшая версия может содержать уязвимости и не иметь новых функций.

Практика / Безопасность

Безопасность ArgoCD: что нельзя делать

Риск 01

Использовать SSO и RBAC

Не используйте локальных пользователей. Настройте OIDC/Dex и RBAC через `argocd-rbac-cm`. Это позволит централизованно управлять доступом.

Риск 02

Не использовать admin-аккаунт

Создайте отдельных пользователей с минимально необходимыми правами. Admin-аккаунт используйте только для первоначальной настройки.

Риск 03

Ограничить доступ к кластерам

Используйте Project Roles, чтобы ограничить, какие команды имеют доступ к prod-кластерам. Запретите прямой доступ к кластеру без ArgoCD.

Риск 04

Хранить секреты не в git

Не копируйте пароли и токены в манифесты. Используйте External Secrets Operator, Sealed Secrets или ArgoCD Vault Plugin.

Риск 05

Включить audit logging

Настройте audit logging для API-сервера ArgoCD. Это позволит отслеживать, кто и когда выполнял операции.

Риск 06

Использовать HTTPS и TLS

Настройте TLS для ArgoCD-сервера. Используйте сертификаты от Let's Encrypt или внутреннего CA.

Риск 07

Настроить network policies

Ограничьте сетевой доступ к компонентам ArgoCD. Repo-server должен иметь доступ только к git-репозиториям и API-серверу.

Риск 08

Регулярно обновлять ArgoCD

Устаревшие версии ArgoCD могут содержать уязвимости. Следите за CVE и обновляйте инструмент.

Риск 09

Не использовать --insecure в production

Параметр `--insecure` отключает проверку сертификата. Используйте только для локального тестирования.

Будущее / Роль

Перспективы ArgoCD

Перспективы ArgoCD завязаны не только на текущем спросе, но и на том, как навык встраивается в новые платформы, инструменты и рабочие контуры.

Сигнал 01

ApplicationSet и мультикластер

Развитие ApplicationSet упростит управление сотнями кластеров. Появятся новые генераторы и улучшится производительность.

Сигнал 02

Глубокая интеграция с платформами

ArgoCD будет глубже интегрироваться с облачными и managed-решениями (EKS, GKE, AKS), упрощая мультиоблачные деплои.

Сигнал 03

Улучшенная безопасность

Появятся встроенные инструменты для сканирования секретов и уязвимостей, улучшится audit logging и compliance-отчеты.

Практика / Портфолио

Портфолио с ArgoCD: с чего начать

Проект 01

GitOps-деплой микросервиса через ArgoCD

Настройте Application с автосинхронизацией для одного микросервиса. Добейтесь, чтобы изменения в git автоматически применялись в кластере.

Проект 02

Мультикластерное управление через ApplicationSet

Создайте ApplicationSet с Git Generator, который разворачивает приложение в dev и staging кластеры. Проверьте, что при изменении структуры папок создаются новые Application.

Проект 03

Тестовое окружение на каждый Pull Request

Настройте ApplicationSet с Pull Request Generator. Убедитесь, что при создании PR создается временное окружение, а при мерже — удаляется.

Проект 04

Production GitOps с безопасностью

Разверните ArgoCD с SSO (Dex/GitHub OAuth), настройте Project Roles и RBAC. Интегрируйте с External Secrets Operator для управления секретами.

Обучение / Маршрут

Как изучить ArgoCD

Изучение ArgoCD — это путь от понимания основ GitOps до настройки production-кластеров. Начните с теории, затем переходите к практическим задачам.

Этап 01

Понять Kubernetes и GitOps

Освоить основы K8s (Pod, Deployment, Service) и принципы GitOps: git как единственный источник истины, pull-модель.

Этап 02

Развернуть ArgoCD локально

Установить ArgoCD в Kind/Minikube. Освоить CLI: login, app create, sync, rollback. Разобраться с UI.

Этап 03

Настроить ApplicationSet

Изучить генераторы: Git, List, Cluster. Создать мультикластерное приложение. Настроить syncPolicy.

Этап 04

Production и безопасность

Настроить SSO, RBAC, Project Roles. Интегрировать с External Secrets. Включить audit logging.

Курсы · по данным рынка

Как обычно растёт навык Argo CD

Прямых курсов по ArgoCD пока нет — показываем смежные: Kubernetes, CI/CD, Linux

Соответствие — доля тем навыка, которые охватывает программа курса

Практика / Первый запуск

С чего начать Argo CD на практике

Начать лучше с одного приложения в Kubernetes: репозиторий с манифестами, объект application, первый sync и специально созданное расхождение между Git и кластером. Такой путь быстрее всего показывает роль Argo CD и не даёт спутать его с обычным инструментом конвейера. После этого уже легче разбирать Helm, несколько окружений и более сложный GitOps-процесс без иллюзии, что достаточно просто нажать кнопку deploy. Ещё полезно руками увидеть один drift и один откат, чтобы схема перестала быть абстрактной. Тогда разница между GitOps и обычным ручным деплоем становится ощутимой даже на одном сервисе.

Шаг 01

Подготовить репозиторий с манифестами

Зафиксировать в Git то состояние приложения, которое команда считает правильным и воспроизводимым.

Шаг 02

Создать application в Argo CD

Связать репозиторий и кластер так, чтобы стало видно, как инструмент читает желаемое состояние.

Шаг 03

Провести sync и посмотреть результат

Увидеть, как конфигурация доходит до кластера и чем фактическое состояние отличается от ожидаемого.

Шаг 04

Искусственно создать drift

Проверить, как система показывает расхождение и почему Git как источник правды важен в ежедневной работе.

Частые вопросы

Вопросы и ответы

Что такое ArgoCD простыми словами?

ArgoCD — это GitOps-оператор для Kubernetes, который автоматически синхронизирует состояние кластера с конфигурацией в git-репозитории. Если вы изменили YAML-файлы в git, ArgoCD сам применит эти изменения к кластеру. Если кто-то вручную изменил что-то в кластере, ArgoCD вернет всё обратно к состоянию из git.

Чем ArgoCD отличается от Jenkins?

Jenkins — это CI-инструмент для сборки и тестирования кода. ArgoCD — это CD-инструмент для доставки готовых артефактов в Kubernetes. Jenkins использует push-модель (сам подключается к кластеру и применяет изменения), а ArgoCD — pull-модель (контроллер внутри кластера сам забирает изменения из git). ArgoCD не заменяет Jenkins, а дополняет его.

Как ArgoCD реализует GitOps?

ArgoCD реализует GitOps через три ключевых принципа: единственный источник истины — git-репозиторий содержит желаемое состояние кластера; pull-модель — ArgoCD сам забирает изменения из git, а не получает команды извне; автоматическая синхронизация — при расхождении между git и кластером ArgoCD автоматически приводит кластер к состоянию из git.

Какие типы приложений поддерживает ArgoCD?

ArgoCD поддерживает любые Kubernetes-ресурсы, которые можно описать YAML-манифестами. Он умеет работать с сырыми YAML-файлами, Helm-чартами, Kustomize-оверлеями, Jsonnet и кастомными форматами через Config Management Plugins.

Как работает pull-модель деплоя?

В pull-модели ArgoCD работает как контроллер внутри кластера. Он постоянно опрашивает git-репозиторий на предмет изменений. Когда в git появляется новый коммит, ArgoCD: скачивает манифесты из репозитория, сравнивает их с текущим состоянием кластера, применяет изменения через Kubernetes API и отслеживает статус развертывания.

В чем отличие ArgoCD от Flux CD?

Основные отличия: у ArgoCD развитый визуальный интерфейс, у Flux — базовый (через Weave GitOps); у ArgoCD есть мощный генератор приложений ApplicationSet, у Flux — аналог через Kustomization; ArgoCD сложнее в настройке, но дает больше контроля; оба инструмента в CNCF, но ArgoCD популярнее.

Как настроить автосинхронизацию?

Автосинхронизация настраивается через syncPolicy в манифесте Application. Основные параметры: prune: true удаляет ресурсы, которых нет в git; selfHeal: true автоматически исправляет ручные изменения в кластере. Дополнительно можно настроить syncOptions, например Validate и ServerSideApply.

Как управлять секретами?

ArgoCD не хранит секреты напрямую. Для управления секретами используются: Sealed Secrets — шифрование секретов в git; External Secrets Operator — синхронизация секретов из Vault, AWS Secrets Manager, GCP Secret Manager; SOPS — шифрование отдельных полей в YAML-файлах; ArgoCD Vault Plugin — интеграция с HashiCorp Vault.

Какие существуют best practices безопасности?

Используйте SSO (OIDC, Dex) вместо локальных пользователей; настройте RBAC через argocd-rbac-cm; ограничьте доступ к проектам через Project Roles; используйте private репозитории с SSH-ключами; включите audit logging; настройте network policies для компонентов ArgoCD; регулярно обновляйте ArgoCD до последней версии.

Как откатить деплой?

Откат в ArgoCD выполняется через Web UI: выбрать приложение → History → Rollback; через CLI: argocd app rollback <app-name> --id <revision-id>; или через git revert: откатить коммит в git, ArgoCD автоматически синхронизирует. ArgoCD хранит историю синхронизаций, что позволяет откатиться к любой предыдущей версии.

Поддерживает ли ArgoCD мультикластер?

Да, ArgoCD поддерживает управление несколькими Kubernetes-кластерами из одного экземпляра. Кластеры добавляются через argocd cluster add или через UI. ApplicationSet позволяет создавать приложения для всех кластеров автоматически.

Интеграция с Helm и Kustomize

ArgoCD нативно поддерживает Helm и Kustomize: для Helm указываете repo URL и путь к чарту, ArgoCD сам выполняет helm template; для Kustomize указываете путь к kustomization.yaml, ArgoCD применяет оверлеи. Можно комбинировать: Helm-чарт с Kustomize-патчами.

Как мониторить работу ArgoCD?

Мониторинг ArgoCD включает метрики Prometheus (количество приложений, статусы синхронизации, latency), Grafana дашборды для визуализации, алерты на OutOfSync, Degraded, Sync Failure, а также встроенную систему уведомлений (Slack, Email, Webhook).

Типичные ошибки при настройке и эксплуатации

OutOfSync после ручных изменений — отключить selfHeal или настроить syncPolicy правильно; Sync Failure из-за невалидных манифестов — проверять YAML перед коммитом; проблемы с доступом к репозиторию — проверить SSH-ключи или токены; Resource quota exceeded — настроить лимиты для namespace; конфликты при параллельной синхронизации — использовать syncWindows.

Вопросы карьерного трека

ArgoCD — один из самых востребованных навыков для DevOps-инженеров. Средняя зарплата специалиста с опытом работы с ArgoCD в Москве — медиана —. Для начала изучения: освоить основы Kubernetes, изучить GitOps-концепцию, развернуть ArgoCD локально, пройти официальные туториалы, создать pet-проект.

В каких случаях ArgoCD избыточен?

ArgoCD избыточен когда: у вас 1-2 микросервиса без Kubernetes; команда не использует GitOps-практики; проект на стадии MVP с частыми изменениями; нет выделенного DevOps-инженера для поддержки; используются managed-решения (Google Cloud Run, AWS App Runner).

Чем ArgoCD отличается от Spinnaker?

Spinnaker — это push-based CD с развитым pipeline-моделированием (canary, blue-green), но сложной настройкой. ArgoCD — pull-based GitOps, проще в настройке, но с менее гибкими pipeline-стратегиями. Spinnaker лучше подходит для сложных deployment-стратегий, ArgoCD — для GitOps-подхода.

Как настроить Project в ArgoCD?

Project — это логическая группа приложений с политиками доступа. Создается через argocd proj create или через манифест AppProject. Позволяет ограничить, какие репозитории, кластеры и типы ресурсов доступны команде.

Что такое Config Management Plugins (CMP)?

CMP — это расширения для поддержки кастомных форматов манифестов. Например, Jsonnet или Kustomize с плагинами. CMP позволяет ArgoCD генерировать манифесты из любых источников, которые можно превратить в YAML.

Как работает Diff в ArgoCD?

Diff — это сравнение желаемого состояния (git) с текущим состоянием кластера. ArgoCD показывает разницу в виде подсвеченных строк YAML в UI. Diff генерируется в момент Refresh и при синхронизации. Позволяет увидеть, что изменится до применения изменений.

Что такое Sync Waves и Hooks в ArgoCD?

Sync Waves — это механизм поэтапного применения ресурсов. Ресурсы группируются по волнам (wave 0, wave 1, ...). Hooks — это ресурсы, выполняемые до, во время или после синхронизации, например для миграций БД. Hooks и Waves позволяют управлять порядком деплоя.

Как интегрировать ArgoCD с CI-системой?

ArgoCD не требует специальной интеграции с CI. CI-система (GitLab CI, GitHub Actions) собирает образ и пушит изменения в git-репозиторий с манифестами. ArgoCD автоматически или по расписанию синхронизирует кластер. Можно использовать webhook'и для ускорения реакции на коммит.

Как работает Refresh в ArgoCD?

Refresh — это принудительная перепроверка git-репозитория на наличие изменений. Отличается от Sync: Refresh только обновляет diff, не применяя изменения. После Refresh видно, какие ресурсы OutOfSync. Sync применяет изменения, если они есть.

Что такое ApplicationSet Generators?

ApplicationSet Generators — это способы генерации списка приложений. Основные типы: List (явный список), Git (сканирование структуры папок), SCM Provider (по репозиториям), Cluster (по кластерам), Matrix (комбинация), Merge (объединение), Pull Request (создание окружений на PR).

Как настроить RBAC в ArgoCD?

RBAC настраивается через ConfigMap argocd-rbac-cm. Можно определить политики для пользователей и групп (SSO или локальных). Пример: разрешить admin доступ к проекту myproject. RBAC позволяет гибко разграничивать права на создание, чтение, синхронизацию и удаление приложений.

Что такое Health Status в ArgoCD?

Health Status — это состояние ресурсов внутри приложения: Healthy (работает корректно), Degraded (проблемы, например, Pod в CrashLoop), Progressing (развертывание), Suspended (приостановлено), Missing (ресурс удален из кластера), Unknown (не удалось определить). Health Status помогает понять, работает ли приложение после деплоя.

Как создать ApplicationSet с Git Generator?

Создаете YAML-манифест ApplicationSet с генератором типа Git. Указываете репозиторий, путь и шаблон Application. Git Generator сканирует структуру папок в репозитории и создает Application для каждой папки. Позволяет автоматически создавать приложения при добавлении нового сервиса.