Flux CD
Тема дорожной карты · Kubernetes
Flux CD — GitOps-оператор для Kubernetes, непрерывно согласующий состояние K8s-кластеров с декларативной конфигурацией, хранящейся в Git; является окончившим инкубацию CNCF-проектом — альтернативой Argo CD для реализации GitOps-рабочих процессов. Flux v2 (также известный как GitOps Toolkit) построен из компонуемых контроллеров: source-controller отслеживает источники GitRepository, HelmRepository и OCIRepository; helm-controller рендерит и применяет ресурсы HelmRelease; kustomize-controller применяет ресурсы Kustomization; а notification-controller отправляет оповещения в Slack, Microsoft Teams или пользовательские вебхуки. Начальная настройка кластера с Flux выполняется командой flux bootstrap github --owner=<org> --repository=<repo> --path=clusters/<env>, которая коммитит манифесты Flux в Git и устанавливает контроллеры как Deployment в пространстве имён flux-system. Flux CD поддерживает изоляцию для мультитенантности через имперсонацию сервисных аккаунтов Kustomization и RBAC-политики, а его контроллеры автоматизации образов (image-reflector-controller и image-automation-controller) могут автоматически обновлять теги образов в Git при публикации новых образов контейнеров в реестре.
Как это работает
Flux CD рассматривает git-репозиторий как источник истины для состояния кластера. Агент внутри кластера (Argo CD, Flux CD) непрерывно сводит состояние кластера к тому, что в git: коммит в main триггерит redeployment; ручной kubectl edit откатывается агентом. Pull request становятся deployment-предложениями с reviewer; audit trail бесплатно из git history.
Когда применять
Принимайте Flux CD когда (а) в команде больше 2-3 инженеров и прямой доступ к кластеру становится рискованным, (б) нужны audit trails для compliance, (в) хотите rollback deployment через git revert вместо ad-hoc kubectl. Пропустите GitOps для очень маленьких команд, где прямой kubectl-доступ достаточно быстрый — overhead превышает выгоду до тех пор, пока координация не становится важной.
Типичные ошибки
GitOps-ловушки: configuration drift между git и кластером (ручные изменения не откатываются, потому что агент неправильно настроен); секреты в plaintext git (используйте sealed-secrets или External Secrets); слишком много сред в одном репо (медленный CI, большой blast radius). Относитесь к GitOps-репо как к production infrastructure: PR review, branch protection, deployment workflows.