CD Argo - 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à.

CD Argo

Argo CD è uno strumento di distribuzione GitOps continua (CD) ampiamente utilizzato per Kubernetes che rispetta diversi principi chiave. GitOps

GitOps supporto

Area funzionalità dello strumento

Configurazione dichiarativa

Argo CD utilizza configurazioni dichiarative archiviate nei repository Git. Lo stato desiderato dell'applicazione e dell'infrastruttura è definito nei file YAML. Queste configurazioni descrivono cosa deve essere distribuito, non come distribuirlo.

Il sistema di controllo delle versioni come unica fonte di verità

I repository Git fungono da unica fonte di verità per l'intero sistema. Tutte le modifiche all'applicazione e all'infrastruttura vengono apportate tramite Git. Ciò garantisce un audit trail completo e la possibilità di tornare a qualsiasi stato precedente.

Sincronizzazione automatizzata

Argo CD monitora continuamente il repository Git per rilevare eventuali modifiche. Quando vengono rilevate modifiche, sincronizza automaticamente lo stato effettivo del cluster con lo stato desiderato definito in Git. Ciò garantisce che il cluster rifletta sempre lo stato descritto nel repository.

Nativo per Kubernetes

Argo CD è progettato specificamente per gli ambienti Kubernetes. Sfrutta la natura dichiarativa e le risorse personalizzate di Kubernetes per la gestione delle applicazioni.

Riparazione automatica e rilevamento della deriva

Argo CD confronta regolarmente lo stato live del cluster con lo stato desiderato in Git. Se rileva eventuali deviazioni (differenze tra lo stato effettivo e quello desiderato), può correggere automaticamente tali discrepanze.

Supporto multi-cluster e multi-tenancy

Argo CD può gestire più cluster Kubernetes da una singola istanza. Supporta la multi-tenancy, in modo che team diversi possano gestire le proprie applicazioni in modo indipendente.

Definizione dell'applicazione

Le applicazioni in Argo CD vengono definite utilizzando l'Application CRD (definizione personalizzata delle risorse). Ciò consente un modo nativo di Kubernetes di definire cosa deve essere distribuito e come.

Separazione tra distribuzione e rilascio

Argo CD separa la distribuzione del codice dal rilascio agli utenti. Ciò si ottiene attraverso varie strategie di implementazione, come le implementazioni di blue/green Or Canary.

Osservabilità e verificabilità

Argo CD fornisce un'interfaccia utente Web e una CLI per osservare lo stato delle applicazioni e dei cluster. Tutte le azioni vengono registrate per fornire una chiara traccia di controllo delle modifiche e delle implementazioni.

Sicurezza e RBAC

Argo CD si integra con il controllo degli accessi basato sui ruoli (RBAC) di Kubernetes. Supporta l'integrazione Single Sign-On per l'autenticazione e l'autorizzazione.

Architettura collegabile

Argo CD supporta vari sistemi di gestione del controllo del codice sorgente, grafici Helm, Kustomize e altri formati manifest Kubernetes. Questa flessibilità gli consente di adattarsi a diversi ambienti e flussi di lavoro.

Distribuzione continua (CD)

Sebbene Argo CD si concentri sulla distribuzione continua, può essere integrato con strumenti di integrazione continua (CI) per creare una CI/CD pipeline completa.

Aderendo a questi GitOps principi, Argo CD offre un modo robusto, scalabile e sicuro per gestire le implementazioni di Kubernetes. Garantisce che lo stato operativo del sistema sia sempre sincronizzato con lo stato desiderato definito nel repository Git e promuove la coerenza, l'affidabilità e la facilità di gestione in ambienti Kubernetes complessi.

Per gli scenari e i requisiti che Argo CD può soddisfare, consulta i casi d'uso di Argo CD 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 Argo CD.

Architettura

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

Architettura e flusso di lavoro di Argo CD 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. Argo CD viene eseguito all'interno di un namespace dedicato (argocd) 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. Argo CD 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. Ciò include la gestione delle risorse Kubernetes come implementazioni ConfigMaps, servizi e segreti per mantenere la coerenza del cluster con la fonte di verità Git.