Considerazioni su Argo CD - Amazon EKS

Contribuisci a migliorare questa pagina

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

Per contribuire a questa guida per l'utente, scegli il GitHub link Modifica questa pagina nel riquadro destro di ogni pagina.

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

Considerazioni su Argo CD

Questo argomento tratta importanti considerazioni sull'utilizzo del CD EKS Capability for Argo, tra cui pianificazione, autorizzazioni, autenticazione e modelli di distribuzione multicluster.

Pianificazione

Prima di distribuire Argo CD, considerate quanto segue:

Strategia di archiviazione: stabilite dove verranno archiviati i manifesti dell'applicazione (CodeCommit,, GitHub, GitLab Bitbucket). Pianifica la struttura del repository e la strategia di ramificazione per diversi ambienti.

Metodo di autenticazione: decidi se utilizzare AWS Identity Center for SSO o gestire direttamente gli utenti di Argo CD. L'SSO è consigliato per gli ambienti di produzione.

Strategia RBAC: pianifica quali team o utenti devono avere accesso come amministratore, editor o visualizzatore. Associali ai gruppi di AWS Identity Center o ai ruoli di Argo CD.

Architettura multicluster: stabilisci se gestirai più cluster da una singola istanza Argo CD. Prendi in considerazione l'utilizzo di un cluster di gestione dedicato per Argo CD.

Organizzazione delle applicazioni: pianifica come strutturerai le applicazioni e ApplicationSets. Prendi in considerazione l'utilizzo di progetti per organizzare le applicazioni per team o ambiente.

Criteri di sincronizzazione: decidi se le applicazioni devono sincronizzarsi automaticamente o richiedere l'approvazione manuale. La sincronizzazione automatica è comune per lo sviluppo, quella manuale per la produzione.

Permissions

Per informazioni dettagliate su IAM Capability Roles, sulle policy di fiducia e sulle best practice di sicurezza, consulta Funzionalità Amazon EKS, ruolo IAM eConsiderazioni sulla sicurezza per EKS Capabilities.

Panoramica del ruolo di IAM Capability

Quando crei una risorsa di funzionalità Argo CD, fornisci un ruolo di capacità IAM. A differenza di ACK, Argo CD gestisce principalmente le risorse Kubernetes, non le risorse direttamente. AWS Tuttavia, il ruolo IAM è necessario per:

  • Accesso agli archivi Git privati in CodeCommit

  • Integrazione con AWS Identity Center per l'autenticazione

  • Accesso ai AWS segreti in Secrets Manager (se configurato)

  • Implementazioni tra cluster su altri cluster EKS

CodeCommit integrazione

Se utilizzi i CodeCommit repository, allega una policy con autorizzazioni di lettura:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codecommit:GitPull" ], "Resource": "*" } ] }
Importante

Per uso in produzione, limita il Resource campo a un repository specifico ARNs invece di utilizzarlo. "*"

Esempio:

"Resource": "arn:aws:codecommit:us-west-2:111122223333:my-app-repo"

Ciò limita l'accesso di Argo CD solo ai repository che deve gestire.

Integrazione di Secrets Manager

Se stai archiviando le credenziali del repository in Secrets Manager, allega una policy con autorizzazioni di lettura:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret" ], "Resource": "arn:aws:secretsmanager:*:*:secret:argocd/*" } ] }

Configurazione di base

Per le funzionalità di base di Argo CD con repository Git pubblici, non sono richieste policy IAM aggiuntive oltre alla policy di trust.

Autenticazione

AWS Integrazione con Identity Center

La funzionalità gestita da Argo CD si integra direttamente con AWS Identity Center (precedentemente AWS SSO), consentendoti di utilizzare il tuo provider di identità esistente per l'autenticazione.

Quando configuri l'integrazione con Identity Center: AWS

  1. Gli utenti accedono all'interfaccia utente di Argo CD tramite la console EKS

  2. Si autenticano utilizzando AWS Identity Center (che può essere collegato al vostro provider di identità aziendale)

  3. AWS Identity Center fornisce informazioni su utenti e gruppi su Argo CD

  4. Argo CD associa utenti e gruppi ai ruoli RBAC in base alla configurazione dell'utente

  5. Gli utenti vedono solo le applicazioni e le risorse a cui hanno il permesso di accedere

Semplificazione dell'accesso con i set di autorizzazioni di Identity Center

AWS Identity Center offre due percorsi di autenticazione distinti quando si lavora con Argo CD:

Autenticazione tramite API Argo CD: Identity Center fornisce l'autenticazione SSO all'interfaccia utente e all'API di Argo CD. Questo viene configurato tramite le mappature dei ruoli RBAC della funzionalità Argo CD.

Accesso al cluster EKS: la funzionalità Argo CD utilizza il ruolo IAM fornito dal cliente per l'autenticazione con i cluster EKS tramite voci di accesso. Queste voci di accesso possono essere configurate manualmente per aggiungere o rimuovere autorizzazioni.

È possibile utilizzare i set di autorizzazioni di Identity Center per semplificare la gestione delle identità consentendo a una singola identità di accedere sia ai cluster Argo CD che EKS. Ciò riduce il sovraccarico richiedendo di gestire una sola identità su entrambi i sistemi, anziché mantenere credenziali separate per l'accesso ad Argo CD e l'accesso al cluster.

Mappature dei ruoli RBAC

Argo CD dispone di ruoli integrati che è possibile mappare agli utenti e ai gruppi di AWS Identity Center:

ADMIN: accesso completo a tutte le applicazioni e le impostazioni. Può creare, aggiornare ed eliminare applicazioni. Può gestire la configurazione di Argo CD.

EDITOR: Può creare e modificare applicazioni. Non è possibile modificare le impostazioni di Argo CD o eliminare applicazioni.

VIEWER: accesso in sola lettura alle applicazioni. Può visualizzare lo stato e la cronologia dell'applicazione. Non è possibile apportare modifiche.

Nota

I nomi dei ruoli fanno distinzione tra maiuscole e minuscole e devono essere maiuscole (ADMIN, EDITOR, VIEWER).

Importante

L'integrazione di EKS Capabilities con AWS Identity Center supporta fino a 1.000 identità per funzionalità Argo CD. Un'identità può essere un utente o un gruppo.

Implementazioni multicluster

La funzionalità gestita da Argo CD supporta implementazioni multi-cluster, consentendo di gestire le applicazioni in cluster di sviluppo, staging e produzione da una singola istanza Argo CD.

Come funziona il multicluster

Quando si registrano cluster aggiuntivi con Argo CD:

  1. Crei segreti del cluster che fanno riferimento ai cluster EKS di destinazione tramite ARN

  2. Create applicazioni o destinate a ApplicationSets cluster diversi

  3. Argo CD si connette a ciascun cluster per distribuire applicazioni e controllare le risorse

  4. Puoi visualizzare e gestire tutti i cluster da un'unica interfaccia utente di Argo CD

Prerequisiti per il multicluster

Prima di registrare cluster aggiuntivi:

  • Crea una voce di accesso sul cluster di destinazione per il ruolo di funzionalità Argo CD

  • Garantite la connettività di rete tra la funzionalità Argo CD e i cluster di destinazione

  • Verifica le autorizzazioni IAM per accedere ai cluster di destinazione

Registra un cluster

Registra i cluster utilizzando Kubernetes Secrets nel namespace. argocd

Ottieni l'ARN del cluster di destinazione. Sostituiscilo region-code con la AWS regione in cui si trova il cluster di destinazione e target-cluster sostituiscilo con il nome del cluster di destinazione.

aws eks describe-cluster \ --region region-code \ --name target-cluster \ --query 'cluster.arn' \ --output text

Crea un segreto del cluster utilizzando l'ARN del cluster:

apiVersion: v1 kind: Secret metadata: name: target-cluster namespace: argocd labels: argocd.argoproj.io/secret-type: cluster type: Opaque stringData: name: target-cluster server: arn:aws:eks:us-west-2:111122223333:cluster/target-cluster project: default
Importante

Utilizza l'ARN del cluster EKS nel server campo, non l'URL del server API Kubernetes. La funzionalità gestita richiede l'identificazione dei cluster ARNs di destinazione.

Applica il segreto:

kubectl apply -f cluster-secret.yaml

Configura Access Entry sul cluster di destinazione

Il cluster di destinazione deve disporre di un Access Entry che conceda al ruolo di funzionalità Argo CD l'autorizzazione a distribuire le applicazioni. Sostituisci region-code con la AWS regione in cui si trova il cluster di destinazione, sostituisci target-cluster con il nome del cluster di destinazione e sostituisci l'ARN con il tuo ruolo di funzionalità Argo CD ARN.

aws eks create-access-entry \ --region region-code \ --cluster-name target-cluster \ --principal-arn arn:aws:iam::[.replaceable]111122223333:role/ArgoCDCapabilityRole \ --type STANDARD \ --kubernetes-groups system:masters
Nota

Per l'uso in produzione, prendi in considerazione l'utilizzo di gruppi Kubernetes più restrittivi anziché. system:masters

Accesso privato al cluster

La funzionalità gestita da Argo CD può essere implementata su cluster EKS completamente privati senza richiedere peering VPC o configurazioni di rete specializzate. AWS gestisce automaticamente la connettività tra la funzionalità Argo CD e i cluster remoti privati.

Implementazioni tra account

Per le distribuzioni tra account, aggiungi l'Argo CD IAM Capability Role dall'account di origine all'EKS Access Entry del cluster di destinazione:

  1. Nell'account di destinazione, create un Access Entry sul cluster EKS di destinazione

  2. Usa l'ARN Argo CD IAM Capability Role dell'account di origine come principale

  3. Configura le autorizzazioni RBAC Kubernetes appropriate per l'Access Entry

  4. Registra il cluster di destinazione in Argo CD utilizzando il relativo ARN del cluster EKS

Non è richiesta la creazione di ruoli IAM aggiuntivi o la configurazione delle policy di fiducia: EKS Access Entries gestisce l'accesso tra account.

Best practice

Usa fonti dichiarative come fonte di verità: archivia tutti i manifesti delle tue applicazioni in repository Git, registri Helm o immagini OCI, abilitando il controllo delle versioni, gli audit trail e la collaborazione.

Implementa un RBAC adeguato: utilizza l'integrazione di AWS Identity Center per controllare chi può accedere e gestire le applicazioni in Argo CD. Argo CD supporta un controllo granulare degli accessi alle risorse all'interno delle applicazioni (implementazioni, pod e segreti). ConfigMaps

Utilizzo ApplicationSets per implementazioni multiambiente: da utilizzare per distribuire applicazioni su più cluster o namespace ApplicationSets con configurazioni diverse.

Gestione del ciclo di vita

Politiche di sincronizzazione delle applicazioni

Controlla il modo in cui Argo CD sincronizza le applicazioni:

Sincronizzazione manuale: le applicazioni richiedono l'approvazione manuale per sincronizzare le modifiche. Consigliata per ambienti di produzione.

Sincronizzazione automatica: le applicazioni si sincronizzano automaticamente quando vengono rilevate modifiche a Git. Comune per gli ambienti di sviluppo e gestione temporanea.

Correzione automatica: ripristina automaticamente le modifiche manuali apportate al cluster. Assicura che lo stato del cluster corrisponda a Git.

Potatura: elimina automaticamente le risorse rimosse da Git. Usalo con cautela in quanto ciò può eliminare le risorse.

Integrità dell'applicazione

Argo CD monitora continuamente lo stato delle applicazioni:

  • Salutare: tutte le risorse funzionano come previsto

  • Progressione: le risorse vengono create o aggiornate

  • Degradate: alcune risorse non sono salutari

  • Sospesa: l'applicazione è in pausa

  • Mancante: le risorse non sono presenti nel cluster

Sincronizza finestre

Configura le finestre di sincronizzazione per controllare quando le applicazioni possono essere sincronizzate:

  • Consenti le sincronizzazioni solo durante le finestre di manutenzione

  • Blocca le sincronizzazioni durante l'orario lavorativo

  • Pianifica le sincronizzazioni automatiche per orari specifici

  • Utilizza le finestre di sincronizzazione per scenari imprevedibili in cui è necessario interrompere temporaneamente tutte le sincronizzazioni

Configurazione Webhook per una sincronizzazione più rapida

Per impostazione predefinita, Argo CD esegue il polling dei repository Git ogni 6 minuti per rilevare le modifiche. Per implementazioni più reattive, configura i webhook Git per attivare sincronizzazioni immediate quando vengono inviate le modifiche.

I webhook offrono diversi vantaggi:

  • Risposta di sincronizzazione immediata quando viene inviato il codice (secondi anziché minuti)

  • Sovraccarico di polling ridotto e prestazioni di sistema migliorate

  • Uso più efficiente dei limiti di velocità delle API

  • Esperienza utente migliore con feedback più rapidi

Endpoint Webhook

La funzionalità Argo CD fornisce un endpoint webhook per ricevere notifiche Git. Trova l'URL del webhook nella console EKS nella scheda Capacità del cluster o recuperalo utilizzando la CLI AWS :

aws eks describe-capability \ --cluster-name my-cluster \ --capability-name my-argocd \ --query 'capability.configuration.argoCd.webhookUrl' \ --output text \ --region region-code

Configura i webhook tramite il provider Git

GitHub: Nelle impostazioni del repository, aggiungi un webhook con l'URL del webhook Argo CD. Imposta il tipo di contenuto su application/json e seleziona «Just the push event».

GitLab: Nelle impostazioni del progetto, aggiungi un webhook con l'URL del webhook di Argo CD. Abilita «Eventi push» e, facoltativamente, «Tag eventi push».

Bitbucket: nelle impostazioni del repository, aggiungi un webhook con l'URL del webhook di Argo CD. Seleziona «Repository push» come trigger.

CodeCommit: crea una EventBridge regola Amazon che si attiva in base alle modifiche dello stato del CodeCommit repository e invia notifiche all'endpoint webhook Argo CD.

Per istruzioni dettagliate sulla configurazione dei webhook, consulta Argo CD Webhook Configuration.

Nota

I webhook completano il polling, non lo sostituiscono. Argo CD continua a sondare gli archivi come meccanismo di riserva nel caso in cui le notifiche dei webhook vengano perse.

Fasi successive