Confronto tra EKS Capability for Argo CD e Argo CD autogestito - Amazon EKS

View a markdown version of this page

Confronto tra EKS Capability for Argo CD e Argo CD autogestito - 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 su che si trova 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 EKS Capability for Argo CD e Argo CD autogestito

Il CD EKS Capability for Argo offre un'esperienza Argo CD completamente gestita che viene eseguita in EKS. Per un confronto generale tra EKS Capabilities e soluzioni autogestite, vedere. Considerazioni sulle funzionalità EKS Questo argomento si concentra sulle CD-specific differenze di Argo, tra cui l'autenticazione, la gestione multi-cluster e il supporto delle funzionalità upstream.

Differenze rispetto al CD Argo originale

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

RBAC e autenticazione: la funzionalità include tre ruoli RBAC (admin, editor, viewer) 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 Argo CD, non tramite i CD Argo. argocd-rbac-cm ConfigMap L'interfaccia utente di Argo CD è ospitata con un proprio URL diretto (lo trovi nella console EKS nella scheda Capabilities del cluster) e l'accesso all'API utilizza l' AWS autenticazione e l'autorizzazione tramite IAM.

Configurazione del cluster: la funzionalità non configura automaticamente le topologie locali di cluster o hub-and-spoke. È 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 gli ARN del cluster EKS (non gli URL del server API Kubernetes). La funzionalità non aggiunge automaticamente il cluster locale (kubernetes.default.svc) come destinazione di distribuzione: per distribuirlo nello stesso cluster in cui viene creata la funzionalità, registra esplicitamente quel cluster utilizzando il relativo ARN.

Accesso remoto semplificato al 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 i ruoli IAM per gli account di servizio (IRSA) o impostare presupposti di ruolo IAM tra account. La funzionalità fornisce inoltre un accesso trasparente a 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.

Integrazione diretta dei AWS servizi: la funzionalità fornisce l'integrazione diretta con i AWS servizi tramite le autorizzazioni IAM del Capability Role. È possibile fare riferimento ai CodeCommit repository, ai grafici ECR Helm e CodeConnections direttamente nelle risorse dell'applicazione senza creare configurazioni del 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 singolo namespace in cui è necessario creare Argo CD Application e 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 in qualsiasi namespace in qualsiasi cluster di destinazione. Ad esempio, se si crea la funzionalità con namespaceargocd, tutti i CR delle applicazioni devono essere creati nello spazio dei nomi, ma tali applicazioni possono distribuire carichi di lavoro in,, o in qualsiasi altro argocd namespace. default production staging

Nota

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

  • Quando si utilizza l'Argo CD CLI, specificate 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 impostato 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:

  • Config Management Plugins (CMP) per la generazione di manifesti personalizzati

  • 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

  • È supportato l'accesso diretto argocd-params e la maggior parte delle configurazioni ConfigMaps (un sottoinsieme di argocd-cm campi). VediConfigurare le impostazioni del CD Argo)

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

Compatibilità: le applicazioni e il ApplicationSets funzionamento sono identici a quelli del CD Argo originale senza modifiche ai manifesti. La funzionalità utilizza le stesse API e CRD di Kubernetes, quindi strumenti come questi funzionano allo stesso modo. kubectl La funzionalità supporta completamente applicazioni e ApplicationSets GitOps flussi di lavoro con sincronizzazione automatica, implementazioni multi-cluster, politiche di sincronizzazione (automatizzate, prune, self-heal), onde e hook di sincronizzazione, valutazione dello stato delle risorse Kubernetes standard, funzionalità di rollback, fonti di repository Git (HTTPS e SSH), Helm, Kustomize e semplici manifesti YAML, credenziali delle GitHub app, progetti per multi-tenancy ed esclusioni e inclusioni di risorse.

Utilizzo dell'Argo CD CLI con la funzionalità gestita

L'Argo CD CLI funziona come l'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. https://argo-cd.readthedocs.io/en/stable/cli_installation/

Configurazione

Configura la CLI utilizzando le variabili di ambiente:

  1. Ottieni l'URL del server CD Argo dalla console EKS (nella scheda Capacità del cluster) o utilizzando la CLI AWS . 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 (Impostazioni Account admin Genera nuovo token), quindi impostalo come variabile di ambiente:

    export ARGOCD_AUTH_TOKEN="your-token-here"
Importante

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

  1. Impostate l'opzione gRPC richiesta:

    export ARGOCD_OPTS="--grpc-web"

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

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. Controlla la tua attuale configurazione del CD Argo per individuare le funzionalità non supportate (controller delle notifiche, CMP, controlli di integrità personalizzati, 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 del repository (repocreds)

  6. Se utilizzi chiavi GPG, certificati TLS o host noti SSH, esegui la migrazione anche di queste configurazioni

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

  8. Applicali all'istanza Argo CD gestita

  9. Verifica che le applicazioni si sincronizzino correttamente

  10. Disattiva l'installazione autogestita del CD Argo

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

Fasi successive