Перейти к основному содержимому

Практикум GitOps — итоги

Практикум построен вокруг цикла: Git описывает желаемое состояние, Argo CD сравнивает его с кластером и выполняет sync. Ниже — ключевые выводы по каждому блоку.


1. GitOps и источник правды

GitOps — подход, при котором изменения инфраструктуры и приложений проходят через merge в репозиторий манифестов. Кластер подстраивается под Git, а не наоборот. Теория и сравнение с push-based deploy — GitOps.

Вы на практике:

  1. Хранили манифесты в infra-gitops-lab/apps/demo/.
  2. Подключили repo через Application demo-nginx.
  3. Выпустили релиз commit без kubectl apply на prod.

2. Kubernetes и Argo CD на стенде

КомпонентЧто сделалиСсылка
kind / minikubeЛокальный кластер8.06 K8s
namespace argocdУстановка Argo CDШаг 1
namespace demoУчебное приложениеШаг 1
Deployment + Servicenginx, 2 replicasШаг 2
Applicationauto-sync, prune, selfHealШаг 2

3. Релиз и rolling update

Релиз — изменение поля image: (или digest) в Git. Argo CD запускает rolling update: новые Pod поднимаются, старые гасятся по одному. Наблюдение — kubectl rollout status, History в UI Argo CD.

Рекомендации для production:

  1. Pin образа по digest — Supply chain.
  2. CI обновляет манифест после сборки — /lab/Примеры/1134.
  3. Review PR перед merge — DevSecOps.

4. Drift, selfHeal и откат

Drift — расхождение live state и Git. При selfHeal: true Argo CD возвращает кластер к Git (пример — kubectl scale без commit).

Откатgit revert и push. Git и кластер снова совпадают. kubectl rollout undo без commit создаёт drift.

ПолитикаСреда
automated + selfHealdev, staging
manual sync, sync windowsproduction

Подробно — шаг 4.


5. Секреты и следующий практикум

Секреты в plaintext в public Git не хранят. Варианты:

  1. HashiCorp Vault + External Secrets.
  2. Sealed Secrets, SOPS с ключом в CI.
  3. Private repo + credentials только в Argo CD.

GitOps-репозиторий описывает что монтировать, Vault — значения credentials.


6. Что проверить перед собеседованием или exam

  1. Объяснить ресурс Application (source, destination, syncPolicy).
  2. Различить OutOfSync (diff с Git) и Degraded (Pod сломан).
  3. Описать rolling update при смене образа через Git.
  4. Назвать preferred rollback (git revert) и риск rollout undo без commit.
  5. Перечислить отличия kind от managed Kubernetes (control plane на ноутбуке, нет SLA облака).

Расширенный FAQ

Можно ли пройти practicum без GitHub?
Да. Любой Git remote (GitLab, Gitea, local bare repo с SSH) работает, если Argo CD достучится до URL.

Нужен ли Ingress для Argo CD?
В lab достаточно port-forward. В production — Ingress с TLS и SSO.

Сколько Application на один кластер?
Сотни и тысячи — Argo CD рассчитан на fleet; lab использует одну Application.

Что если забыл пароль admin?
Пересоздайте Secret argocd-initial-admin-secret по документации или переустановите Argo CD в lab.

Связь с Helm charts?
Application source может указывать Helm chart из repo — см. 8.12 GitOps.


Маршрут дальше

ТемаКуда идти
СекретыПрактикум Vault
GitOps углублённо8.12/4
YAML справочник8.06/211
СамопроверкаЧек-лист

Чек-лист · GitOps — теория