Flusso - AWS Guida prescrittiva

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Flusso

Flux è un altro strumento per Kubernetes che GitOps implementa i principi in un modo unico.

GitOps supporto

Area funzionalità dello strumento

Git come unica fonte di verità

Flux utilizza i repository Git come fonte definitiva per definire lo stato desiderato del sistema. Tutte le configurazioni per le applicazioni e l'infrastruttura sono archiviate in Git.

Configurazione dichiarativa

Flux funziona con descrizioni dichiarative dello stato desiderato del cluster. Queste descrizioni sono in genere manifesti di Kubernetes, grafici Helm o sovrapposizioni di Kustomize.

Sincronizzazione automatizzata

Flux monitora continuamente il repository Git per rilevare eventuali modifiche. Quando rileva le modifiche, le applica automaticamente al cluster.

Nativo per Kubernetes

Flux è costruito come un set di controller Kubernetes e risorse personalizzate. Utilizza i meccanismi di estensione di Kubernetes per fornire funzionalità. GitOps

Modello di implementazione basato su Pull

A differenza dei tradizionali CI/CD sistemi basati su push, Flux utilizza un modello basato su pull. Il cluster recupera lo stato desiderato da Git invece di utilizzare un sistema esterno per inviare le modifiche.

Riconciliazione continua

Flux confronta costantemente lo stato attuale del cluster con lo stato desiderato in Git. Corregge automaticamente qualsiasi deriva rilevata tra questi stati.

Multilocazione

Flux supporta la multi-tenancy attraverso i suoi concetti di Kustomizations e. HelmReleases Diversi team possono gestire le proprie parti della configurazione in modo indipendente.

Consegna progressiva

Flux supporta strategie di implementazione avanzate, come le versioni Canary e i A/B test, tramite il componente Flagger.

Integrazione con Helm

Flux include il supporto nativo per Helm, in modo da poter gestire facilmente le versioni di Helm. GitOps

Automazione dell'aggiornamento delle immagini

Flux può aggiornare automaticamente le immagini dei contenitori in Git quando sono disponibili nuove versioni nel registro dei contenitori.

Personalizza il supporto

Puoi utilizzare il supporto nativo fornito da Flux per Kustomize per personalizzare e correggere i manifesti di Kubernetes.

Sicurezza e RBAC

Flux si integra con Kubernetes RBAC per il controllo degli accessi. Supporta la gestione dei segreti attraverso vari backend.

Osservabilità

Flux fornisce informazioni sullo stato e metriche sulla riconciliazione e sulle operazioni. Si integra con gli strumenti di monitoraggio per una migliore osservabilità.

Architettura basata su eventi

Flux utilizza un approccio basato sugli eventi per implementare riconciliazioni e aggiornamenti.

Estensibilità

Lo strumento è progettato per essere estensibile, in modo da poter aggiungere controller e risorse personalizzati.

Sincronizzazione tra cluster

Flux supporta la gestione di più cluster da un unico set di repository.

Gestione delle dipendenze

Consente di definire le dipendenze tra le diverse parti del sistema e garantisce il corretto ordine delle operazioni.

Ricevitori Webhook

Puoi configurare Flux per ricevere webhook dai provider Git o da altri sistemi per avviare la riconciliazione immediata.

Implementando questi GitOps principi, Flux fornisce un sistema robusto e flessibile per la gestione di cluster e applicazioni Kubernetes. Garantisce che l'infrastruttura e le applicazioni siano sempre sincronizzate con i repository Git e offre coerenza, affidabilità e facilità di gestione in ambienti Kubernetes complessi. L'approccio nativo di Kubernetes dello strumento e l'attenzione all'automazione lo rendono particolarmente adatto per gli ambienti nativi del cloud.

Per gli scenari e i requisiti che Flux può soddisfare, consulta i casi d'uso di Flux più avanti in questa guida. Per un confronto tra Argo CD e Flux, consultate la sezione Confronto delle funzionalità più avanti in questa guida.

Per ulteriori informazioni, consultate la documentazione di Flux.

Architettura

Il diagramma seguente illustra un flusso di lavoro GitOps basato su CD che utilizza Flux all'interno di un cluster EKS. Per informazioni dettagliate, consultate la documentazione di Flux.

Architettura Flux e flusso di lavoro attivi. AWS

dove:

  • Fase 1: unione delle pull request (PR). Uno sviluppatore esegue modifiche ai manifesti di Kubernetes o ai grafici Helm archiviati in un repository Git. Quando il PR è stato esaminato e unito al ramo principale, lo stato desiderato dell'applicazione viene aggiornato nel controllo del codice sorgente.

  • Fase 2: Sincronizzazione del repository. Flux viene eseguito all'interno di un namespace dedicato nel cluster EKS e monitora continuamente il repository Git configurato. Quando rileva le modifiche, estrae gli ultimi aggiornamenti per riconciliare lo stato dichiarato.

  • Fase 3: Distribuzione nel namespace di destinazione. Flux confronta lo stato desiderato di Git con lo stato live nel cluster. Quindi applica le modifiche necessarie allo spazio dei nomi del carico di lavoro di destinazione in modo che l'applicazione venga distribuita o aggiornata di conseguenza.