Flux (FluxCD)
Flux (často nazývaný také FluxCD) je oblíbený open-source nástroj pro GitOps, který slouží k automatickému nasazování a správě aplikací v Kubernetes clusterech. Funguje jako agent uvnitř clusteru, který neustále hlídá Git nebo OCI repozitáře a zajišťuje, že aktuální stav v produkci přesně odpovídá definici v kódu.
Jak Flux funguje?
Flux je navržen jako sada specializovaných Kubernetes kontrolérů (tzv. operators). Místo jednoho monolitického nástroje využívá nativní mechanismy Kubernetes a rozšiřuje je o vlastní kontejnerové objekty (Custom Resources).
| Komponenta / Kontrolér | Popis |
|---|---|
| Source Controller | Stahuje a ověřuje data z externích zdrojů (Git repozitáře, Helm charty, S3 úložiště). |
| Kustomize Controller | Aplikuje konfigurace pomocí nástroje Kustomize a zajišťuje jejich nasazení do clusteru. |
| Helm Controller | Spravuje životní cyklus aplikací instalovaných pomocí balíčků Helm (chartů). |
| Notification Controller | Zajišťuje odesílání notifikací (např. do Slacku nebo Webhooků) o stavu synchronizace. |
Hlavní vlastnosti Fluxu
* Deklarativní přístup: Celá infrastruktura je popsaná pomocí manifestů (nejčastěji YAML), které Flux sleduje a udržuje v chodu. * Podpora pro Helm a Kustomize: Umožňuje snadno spravovat jak čisté Kubernetes manifesty, tak složitější Helm balíčky. * Automatické aktualizace obrazů (Image Automation): Flux umí sledovat registry kontejnerů a automaticky vytvářet commity do Gitu, když se objeví nová verze Docker obrazu. * Bezpečnost (Multi-tenancy): Podporuje přísné řízení přístupů, takže různé týmy mohou bezpečně spravovat své vlastní jmenné prostory (namespaces) v rámci jednoho sdíleného clusteru.
Tip: Flux je oficiálním inkubovaným projektem nadace CNCF (Cloud Native Computing Foundation), což z něj činí standardní a prověřenou součást moderní cloud-native infrastruktury.
