Практикум GitOps — итоги
Практикум построен вокруг цикла: Git описывает желаемое состояние, Argo CD сравнивает его с кластером и выполняет sync. Ниже — ключевые выводы по каждому блоку.
1. GitOps и источник правды
GitOps — подход, при котором изменения инфраструктуры и приложений проходят через merge в репозиторий манифестов. Кластер подстраивается под Git, а не наоборот. Теория и сравнение с push-based deploy — GitOps.
Вы на практике:
- Хранили манифесты в
infra-gitops-lab/apps/demo/. - Подключили repo через Application
demo-nginx. - Выпустили релиз commit без
kubectl applyна prod.
2. Kubernetes и Argo CD на стенде
| Компонент | Что сделали | Ссылка |
|---|---|---|
| kind / minikube | Локальный кластер | 8.06 K8s |
namespace argocd | Установка Argo CD | Шаг 1 |
namespace demo | Учебное приложение | Шаг 1 |
| Deployment + Service | nginx, 2 replicas | Шаг 2 |
| Application | auto-sync, prune, selfHeal | Шаг 2 |
3. Релиз и rolling update
Релиз — изменение поля image: (или digest) в Git. Argo CD запускает rolling update: новые Pod поднимаются, старые гасятся по одному. Наблюдение — kubectl rollout status, History в UI Argo CD.
Рекомендации для production:
- Pin образа по digest — Supply chain.
- CI обновляет манифест после сборки — /lab/Примеры/1134.
- 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 + selfHeal | dev, staging |
| manual sync, sync windows | production |
Подробно — шаг 4.
5. Секреты и следующий практикум
Секреты в plaintext в public Git не хранят. Варианты:
- HashiCorp Vault + External Secrets.
- Sealed Secrets, SOPS с ключом в CI.
- Private repo + credentials только в Argo CD.
GitOps-репозиторий описывает что монтировать, Vault — значения credentials.
6. Что проверить перед собеседованием или exam
- Объяснить ресурс Application (source, destination, syncPolicy).
- Различить OutOfSync (diff с Git) и Degraded (Pod сломан).
- Описать rolling update при смене образа через Git.
- Назвать preferred rollback (
git revert) и рискrollout undoбез commit. - Перечислить отличия 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 |
| Самопроверка | Чек-лист |