Distribuzioni di applicazioni con GitOps (Argo CD) per il servizio Azure Kubernetes e Kubernetes abilitato per Azure Arc

Quando si usa Argo CD per GitOps nel servizio Azure Kubernetes e nei cluster Kubernetes abilitati per Azure Arc, il repository Git diventa l'origine della verità per lo stato desiderato delle applicazioni e delle configurazioni del cluster. Questo approccio offre diversi vantaggi:

  • Sincronizzazione continua: Argo CD viene eseguito in modo nativo all'interno del cluster, estraendo manifesti, grafici Helm o configurazioni Kustomize direttamente da Git.
  • Rilevamento e correzione della deriva: il sistema monitora costantemente lo stato attivo del cluster rispetto allo stato desiderato in Git. Rileva immediatamente eventuali deviazioni e la riconcilia in base ai criteri di automazione specifici.
  • Modello di pull orientato alla sicurezza: a differenza del CI/CD tradizionale, Argo CD usa un'architettura pura basata su pull. Poiché il cluster avvia la connessione, non è necessario aprire le porte del firewall in ingresso o concedere ai repository Git l'accesso alla rete ai cluster privati. Questa architettura rende Argo CD ideale per ambienti a sicurezza elevata, edge computing e enormi scalabilità cloud ibride. 

Estensione del cluster Argo CD

Per semplificare la gestione, Azure fornisce Argo CD come estensione del cluster gestito (Microsoft.KubernetesConfiguration/extensions/microsoft.argocd). Per gestire le applicazioni tramite GitOps, distribuire l'estensione Argo CD nel cluster.

Componenti gestiti e controller

L'estensione Argo CD gestisce i pacchetti e i componenti di base necessari per GitOps di livello aziendale.

Nome componente Nome del servizio Kubernetes Responsabilità primaria
Controller dell'applicazione argocd-application-controller Monitora continuamente le applicazioni in esecuzione e confronta lo stato attivo con lo stato di destinazione desiderato in Git.
Server API argocd-server Funge da server gRPC/REST che espone l'API usata dall'interfaccia utente Web, dall'interfaccia della riga di comando e dai sistemi CI/CD esterni.
Server repository argocd-repo-server Gestisce una cache locale di repository Git ed è responsabile della generazione di manifesti Kubernetes dall'origine (Helm, Kustomize e così via).
Redis argocd-redis Fornisce un archivio dati temporaneo in memoria usato per memorizzare nella cache i risultati della generazione del manifesto e lo stato dell'applicazione.
Dex e notifiche argocd-dex-server Provider OpenID Connect open source che gestisce le identità da provider esterni come GitHub, SAML o LDAP.
Controllore delle notifiche argocd-notifications-controller Monitora le modifiche dello stato dell'applicazione e attiva avvisi a servizi esterni come Slack, Posta elettronica o Webhook.
Controller di ApplicationSet argocd-applicationset-controller Automatizza la creazione di più applicazioni in più cluster.

Costrutti di Argo CD

Dopo aver distribuito l'estensione Argo CD nel cluster, è possibile gestire i carichi di lavoro usando costrutti di Argo CD, ad esempio:

  • Application e ApplicationSet: definire singole applicazioni per distribuzioni a destinazione singola o usare ApplicationSets per automatizzare la creazione di più applicazioni in cluster e ambienti diversi in base ai modelli.

  • Interfacce di gestione: gestire e monitorare le risorse tramite l'interfaccia utente Web di Argo CD per una rappresentazione visiva dell'integrità del cluster o usando l'interfaccia della riga di comando di Argo CD per operazioni e automazione basate su terminale.

Per altre informazioni, vedere la documentazione di Argo CD.

Identità e accesso

Per allinearsi ai requisiti di sicurezza aziendali, l'estensione Argo CD si integra con l'identità di Azure sia per i cluster AKS che per quelli Kubernetes abilitati per Azure Arc.

L'estensione supporta la federazione delle identità del carico di lavoro, che consente a Argo CD di accedere in modo sicuro alle risorse di Azure, ad esempio Registro Azure Container (ACR) e Azure DevOps senza basarsi su segreti di lunga durata. L'estensione Argo CD supporta anche l'accesso Single Sign-On (SSO) usando Microsoft Entra ID, che consente agli utenti di eseguire l'autenticazione a Argo CD usando le identità aziendali esistenti. Usando questo modello, Azure regola centralmente le credenziali e i criteri di accesso, invece di incorporarli direttamente nella configurazione del cluster o nei repository Git.

Passaggi successivi