Компания «ДеплойПро» — 30 микросервисов в Kubernetes. CI/CD у них держался на Jenkins с 45 pipeline-ами. И вот где жало:
- Jenkins — единая точка отказа: обновление Jenkins → все деплои стоят
- Credentials sprawl: kubeconfig в Jenkins для доступа к кластеру
- Push-модель: Jenkins пушит в кластер. Нет гарантии, что состояние кластера = Git
- Drift: kubectl apply вручную + Jenkins = непонятно что реально в кластере
GitOps, как мы его видим, функционирует по pull-модели: это значит, что специальный агент прямо внутри кластера постоянно мониторит Git-репозиторий и самостоятельно следит за тем, чтобы кластер всегда соответствовал тому, что прописано в Git. По сути, Git превращается в наш single source of truth.
| Push (Jenkins) | Pull (FluxCD/ArgoCD) |
|---|---|
| Jenkins → kubectl apply | Flux agent ← git pull → apply |
| Credentials вне кластера | Credentials внутри кластера |
| Нет гарантии consistency | Reconciliation loop (30 сек) |
| Drift возможен | Auto-remediation (drift fix) |

Комментарии 0