Практика Argo CD и GitOps: выпуск, синхронизация и откат
Вы исправили ресурс в кластере, а Argo CD вернул прежнее значение. Или нажали rollback, но следующая синхронизация снова выкатила неудачную версию. В GitOps нужно договориться, где хранится желаемое состояние и кто имеет право его менять. Эта подборка помогает пройти путь изменения от Git до кластера и понять, почему он иногда останавливается.
Как работать с подборкой
Для практики нужен учебный кластер и репозиторий с приложением, которое вы уже умеете разворачивать обычным способом. Сначала убедитесь, что манифесты работают без Argo CD. Затем подключайте автоматическую доставку: так ошибку приложения будет проще отличить от ошибки процесса синхронизации.
Ниже — статьи с объяснениями и примерами. Практические эксперименты выполняются в вашем учебном окружении; это не встроенный автоматический экзамен.
1. Соединить Git, приложение и окружение
Начните с доступа к репозиторию и разрешённых назначений. Затем проверьте, откуда берутся значения Helm и какой объект является источником настроек при использовании ApplicationSet.
- Argo CD не читает репозиторий: credentials, URL и доступ repo-server
- Argo CD запрещает destination или ресурс: ограничения AppProject
- Argo CD и Helm: где искать values, которые реально попали в релиз
- ApplicationSet отменяет ручные изменения Application: где редактировать шаблон
2. Объяснить различия и ограничения синхронизации
Статус OutOfSync не объясняет причину сам по себе. Посмотрите на конкретное отличие и определите, кто меняет поле. Отдельно разберите удаление лишних ресурсов, восстановление состояния и разрешённое время синхронизации.
- Argo CD снова показывает OutOfSync после синхронизации: как прочитать diff
- Prune и selfHeal в Argo CD: какие изменения они исправляют
- Argo CD не запускает Sync: проверяем sync windows и ручной запуск
3. Выпустить связанные изменения
Миграция базы и новая версия приложения должны появиться в нужном порядке. Разберите поведение hooks и waves на учебном примере, включая неуспешный шаг. Важно увидеть, где выпуск остановится и что останется в кластере.
- Миграция базы перед приложением в Argo CD: hooks и sync waves
- Helm Job завис при установке через Argo CD: hooks, имена и жизненный цикл
4. Вернуть рабочую версию
Продумайте откат вместе с автоматической синхронизацией. Цель — согласовать рабочее состояние кластера с источником в Git, чтобы исправление не отменилось при следующем цикле.
Соберите результат в одну рабочую процедуру
Выпустите две версии учебного приложения и верните первую через изменение репозитория. После этого проверьте повторную синхронизацию и сравните фактическую версию с Git. Затем повторите эксперимент со сбоем промежуточного шага: именно такие ситуации показывают, насколько понятен процесс выпуска.
Продолжить обучение
Последовательный разбор доставки из Git в Kubernetes — в программе курса Argo CD и GitOps: деплой в Kubernetes. На странице курса — программа, условия доступа и покупки. Сопоставьте их со своей ближайшей рабочей задачей.
Если пока не хватает базы или нужен соседний инструмент, выберите другой маршрут в путеводителе по практике DevOps.
Продолжить на практике
- Argo CD и GitOps: деплой в Kubernetes ↗
Превратите Git в источник правды для Kubernetes. Настройте Argo CD, управляемую синхронизацию и окружения, научитесь находить drift и откатывать изменения через Git. Итог — воспроизводимый GitOps-процесс для приложения.
