Confronto tra la funzionalità EKS per Argo CD e Argo CD autogestita - 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à.

Confronto tra la funzionalità EKS per Argo CD e Argo CD autogestita

EKS Capability for Argo CD offre un'esperienza Argo CD completamente gestita che può essere eseguita in EKS. Per un confronto generale tra EKS Capabilities e soluzioni autogestite, vedi. Considerazioni sulle funzionalità EKS Questo argomento si concentra sulle differenze specifiche di Argo CD, tra cui l'autenticazione, la gestione di più cluster e il supporto delle funzionalità upstream.

Differenze rispetto alla versione upstream di Argo CD

EKS Capability for Argo CD si basa sull'upstream Argo CD, ma differisce nel modo in cui è accessibile, configurato e integrato con i servizi. AWS

RBAC e autenticazione: la funzionalità include tre ruoli RBAC (amministratore, editor, visualizzatore) e utilizza AWS Identity Center per l'autenticazione anziché l'autenticazione integrata di Argo CD. Configura le mappature dei ruoli tramite il rbacRoleMapping parametro della funzionalità per mappare i gruppi di Identity Center ai ruoli di Argo CD, non tramite Argo CD. argocd-rbac-cm ConfigMap L'interfaccia utente di Argo CD è ospitata con un proprio URL diretto (lo trovi nella console EKS nella scheda Capacità del cluster) e l'accesso all'API utilizza l' AWS autenticazione e l'autorizzazione tramite IAM.

Configurazione del cluster: la funzionalità non configura automaticamente il cluster o le hub-and-spoke topologie locali. È possibile configurare i cluster di destinazione della distribuzione e le voci di accesso EKS. La funzionalità supporta solo i cluster Amazon EKS come obiettivi di distribuzione utilizzando il cluster EKS ARNs (non il server API Kubernetes). URLs La funzionalità non aggiunge automaticamente il cluster locale (kubernetes.default.svc) come obiettivo di distribuzione: per eseguire la distribuzione nello stesso cluster in cui viene creata la funzionalità, è necessario registrare esplicitamente quel cluster utilizzando il relativo ARN.

Accesso remoto semplificato ai cluster: la funzionalità semplifica le implementazioni multi-cluster utilizzando EKS Access Entries per concedere l'accesso Argo CD ai cluster remoti, eliminando la necessità di configurare IAM Roles for Service Accounts (IRSA) o impostare ipotesi di ruoli IAM tra account. La funzionalità fornisce inoltre un accesso trasparente a cluster EKS completamente privati senza richiedere il peering VPC o una configurazione di rete specializzata AWS : gestisce automaticamente la connettività tra la funzionalità Argo CD e i cluster remoti privati.

Integrazione diretta dei AWS servizi: la funzionalità fornisce l'integrazione diretta con i AWS servizi tramite le autorizzazioni IAM di Capability Role. È possibile fare riferimento ai CodeCommit repository, ai grafici ECR Helm e CodeConnections direttamente nelle risorse dell'applicazione senza creare configurazioni di repository. Ciò semplifica l'autenticazione ed elimina la necessità di gestire credenziali separate per i servizi. AWS Per informazioni dettagliate, vedi Configurare l'accesso al repository.

Supporto per lo spazio dei nomi: la funzionalità richiede di specificare un unico spazio dei nomi in cui creare l'applicazione Argo CD e le risorse personalizzate ApplicationSet. AppProject

Nota

Questa restrizione dello spazio dei nomi si applica solo alle risorse personalizzate di Argo CD (Application,,). ApplicationSet AppProject I carichi di lavoro delle applicazioni possono essere distribuiti su qualsiasi namespace in qualsiasi cluster di destinazione. Ad esempio, se si crea la funzionalità con lo spazio dei nomiargocd, tutte le applicazioni CRs devono essere create nello spazio dei argocd nomi, ma tali applicazioni possono distribuire carichi di lavoro in,, o qualsiasi altro spazio dei nomi. default production staging

Nota

La funzionalità gestita ha requisiti specifici per l'utilizzo e AppProject la configurazione della CLI:

  • Quando si utilizza l'Argo CD CLI, specificare le applicazioni con il prefisso dello spazio dei nomi: argocd app sync namespace/appname

  • AppProject le risorse devono specificare .spec.sourceNamespaces per definire quali namespace il progetto può controllare per le applicazioni (in genere impostate sullo spazio dei nomi specificato durante la creazione della funzionalità)

  • Le annotazioni di tracciamento delle risorse utilizzano il formato: namespace_appname:group/kind:namespace/name

Funzionalità non supportate: le seguenti funzionalità non sono disponibili nella funzionalità gestita:

  • Plugin di gestione della configurazione (CMPs) per la generazione di manifest personalizzati

  • Script Lua personalizzati per la valutazione dello stato delle risorse (sono supportati i controlli integrati per le risorse standard)

  • Il controller delle notifiche

  • Provider SSO personalizzati (è supportato solo AWS Identity Center, inclusa l'identità federata di terze parti tramite AWS Identity Center)

  • Estensioni dell'interfaccia utente e banner personalizzati

  • Accesso diretto e altre configurazioni argocd-cm argocd-params ConfigMaps

  • Modifica del timeout di sincronizzazione (fissato a 120 secondi)

Compatibilità: le applicazioni ApplicationSets funzionano in modo identico alla versione upstream di Argo CD senza modifiche ai manifesti. La funzionalità utilizza lo stesso Kubernetes APIs e CRDs quindi strumenti come quelli funzionano allo stesso modo. kubectl La funzionalità supporta pienamente applicazioni e GitOps flussi di lavoro con sincronizzazione automatica ApplicationSets, implementazioni multi-cluster, policy di sincronizzazione (automatizzate, prune, self-heal), wave e hook di sincronizzazione, valutazione dello stato di salute per risorse Kubernetes standard, funzionalità di rollback, sorgenti di repository Git (HTTPS e SSH), Helm, Kustomize e semplici manifesti YAML, credenziali delle app, progetti per multi-tenancy ed esclusioni e inclusioni di risorse usioni. GitHub

Utilizzo dell'Argo CD CLI con funzionalità gestite

L'Argo CD CLI funziona allo stesso modo dell'Argo CD upstream per la maggior parte delle operazioni, ma l'autenticazione e la registrazione del cluster sono diverse.

Prerequisiti

Installa l'Argo CD CLI seguendo le istruzioni di installazione upstream.

Configurazione

Configura la CLI utilizzando le variabili di ambiente:

  1. Ottieni l'URL del server Argo CD dalla console EKS (nella scheda Capacità del cluster) o utilizzando la AWS CLI. Il https:// prefisso deve essere rimosso:

    export ARGOCD_SERVER=$(aws eks describe-capability \ --cluster-name my-cluster \ --capability-name my-argocd \ --query 'capability.configuration.argoCd.serverUrl' \ --output text \ --region region-code | sed 's|^https://||')
  2. Genera un token di account dall'interfaccia utente di Argo CD (ImpostazioniAccountamministratoreGenera nuovo token), quindi impostalo come variabile di ambiente:

    export ARGOCD_AUTH_TOKEN="your-token-here"
Importante

Questa configurazione utilizza il token dell'account di amministrazione per i flussi di lavoro iniziali di configurazione e sviluppo. Per i casi d'uso in produzione, utilizza ruoli e token relativi al progetto per seguire il principio del privilegio minimo. Per ulteriori informazioni sulla configurazione dei ruoli di progetto e dell'RBAC, vedere. Configurare le autorizzazioni di Argo CD

  1. Imposta l'opzione gRPC richiesta:

    export ARGOCD_OPTS="--grpc-web"

Con queste variabili di ambiente impostate, è possibile utilizzare l'Argo CD CLI senza argocd login il comando.

Differenze principali

La funzionalità gestita presenta le seguenti limitazioni CLI:

  • argocd admini comandi non sono supportati (richiedono l'accesso diretto al pod)

  • argocd loginnon è supportato (usa invece i token dell'account o del progetto)

  • argocd cluster addrichiede il --aws-cluster-name flag con l'ARN del cluster EKS

Esempio: registrare un cluster

Registra un cluster EKS per la distribuzione delle applicazioni:

# Get the cluster ARN CLUSTER_ARN=$(aws eks describe-cluster \ --name my-cluster \ --query 'cluster.arn' \ --output text) # Register the cluster argocd cluster add $CLUSTER_ARN \ --aws-cluster-name $CLUSTER_ARN \ --name in-cluster \ --project default

Per la documentazione completa della CLI di Argo CD, consultate il riferimento alla CLI di Argo CD.

Percorso di migrazione

È possibile migrare da Argo CD autogestito alla funzionalità gestita:

  1. Controllate la configurazione attuale di Argo CD per verificare la presenza di funzionalità non supportate (controller di notifica, controlli di integrità personalizzati CMPs, estensioni dell'interfaccia utente)

  2. Ridimensiona i controller Argo CD autogestiti fino a zero repliche per evitare conflitti

  3. Crea una risorsa con funzionalità Argo CD sul tuo cluster

  4. Esporta le tue applicazioni esistenti ApplicationSets e AppProjects

  5. Esegui la migrazione delle credenziali del repository, dei segreti del cluster e dei modelli di credenziali di repository (record)

  6. Se utilizzi chiavi GPG, certificati TLS o host noti SSH, migra anche queste configurazioni

  7. Aggiorna destination.server i campi per utilizzare i nomi dei cluster o i cluster EKS ARNs

  8. Applicali all'istanza Argo CD gestita

  9. Verifica che le applicazioni si sincronizzino correttamente

  10. Disattiva l'installazione di Argo CD autogestita

La funzionalità gestita utilizza lo stesso CD di Argo APIs e le stesse definizioni di risorse, quindi i manifesti esistenti funzionano con modifiche minime.

Fasi successive