View a markdown version of this page

Comparaison de la capacité EKS d'Argo CD à celle d'Argo CD autogéré - Amazon EKS

Aidez à améliorer cette page

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Pour contribuer à ce guide de l'utilisateur, cliquez sur le GitHub lien Modifier cette page qui se trouve dans le volet droit de chaque page.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Comparaison de la capacité EKS d'Argo CD à celle d'Argo CD autogéré

La fonctionnalité EKS pour Argo CD fournit une expérience Argo CD entièrement gérée qui s'exécute dans EKS. Pour une comparaison générale entre les capacités d'EKS et les solutions autogérées, consultezConsidérations relatives aux fonctionnalités EKS. Cette rubrique se concentre sur les CD-specific différences d'Argo, notamment l'authentification, la gestion multi-clusters et la prise en charge des fonctionnalités en amont.

Différences par rapport à Argo CD en amont

La fonctionnalité EKS pour Argo CD est basée sur Argo CD en amont, mais elle diffère quant à la manière dont elle est accessible, configurée et intégrée aux AWS services.

RBAC et authentification  : cette fonctionnalité comprend trois rôles RBAC (administrateur, éditeur, afficheur) et utilise AWS Identity Center pour l'authentification au lieu de l'authentification intégrée d'Argo CD. Configurez les mappages de rôles via le rbacRoleMapping paramètre de la fonctionnalité pour mapper les groupes Identity Center aux rôles Argo CD, et non via Argo CD. argocd-rbac-cm ConfigMap L'interface utilisateur d'Argo CD est hébergée avec sa propre URL directe (vous la trouverez dans la console EKS, sous l'onglet Capabilities de votre cluster), et l'accès à l'API utilise AWS l'authentification et l'autorisation via IAM.

Configuration du cluster  : cette fonctionnalité ne configure pas automatiquement les topologies en cluster local ou en étoile. Vous configurez les clusters cibles de votre déploiement et les entrées d'accès EKS. Cette fonctionnalité prend uniquement en charge les clusters Amazon EKS en tant que cibles de déploiement à l'aide des ARN des clusters EKS (et non des URL de serveurs d'API Kubernetes). La fonctionnalité n'ajoute pas automatiquement le cluster local (kubernetes.default.svc) en tant que cible de déploiement. Pour déployer sur le même cluster que celui où la fonctionnalité est créée, enregistrez explicitement ce cluster à l'aide de son ARN.

Accès aux clusters distants simplifié  : cette fonctionnalité simplifie les déploiements multi-clusters en utilisant EKS Access Entries pour accorder à Argo CD l'accès aux clusters distants, éliminant ainsi le besoin de configurer les rôles IAM pour les comptes de service (IRSA) ou de définir des hypothèses de rôles IAM entre comptes. Cette fonctionnalité fournit également un accès transparent à des clusters EKS entièrement privés sans nécessiter de peering VPC ou de configuration réseau spécialisée. Elle AWS gère automatiquement la connectivité entre la fonctionnalité Argo CD et les clusters distants privés.

Intégration directe des AWS services  : cette fonctionnalité permet une intégration directe avec AWS les services via les autorisations IAM du rôle Capability. Vous pouvez référencer des CodeCommit référentiels, des diagrammes ECR Helm et accéder CodeConnections directement aux ressources de l'application sans créer de configurations de référentiel. Cela simplifie l'authentification et élimine le besoin de gérer des informations d'identification distinctes pour les AWS services. Consultez Configuration de l'accès au référentiel pour plus de détails.

Prise en charge des espaces de noms  : cette fonctionnalité vous oblige à spécifier un espace de noms unique dans lequel l'application Argo CD et ApplicationSet les ressources AppProject personnalisées doivent être créées.

Note

Cette restriction d'espace de noms s'applique uniquement aux ressources personnalisées d'Argo CD (Application, ApplicationSet, AppProject). Les charges de travail de vos applications peuvent être déployées dans n'importe quel espace de noms de n'importe quel cluster cible. Par exemple, si vous créez la fonctionnalité avec un espace de nomsargocd, tous les CR d'application doivent être créés dans cet argocd espace de noms, mais ces applications peuvent déployer des charges de travail versdefault, productionstaging, ou tout autre espace de noms.

Note

La fonctionnalité gérée présente des exigences spécifiques en matière d'utilisation et de AppProject configuration de l'interface de ligne de commande :

  • Lorsque vous utilisez l'interface de ligne de commande Argo CD, spécifiez les applications avec le préfixe d'espace de noms : argocd app sync namespace/appname

  • AppProject les ressources doivent spécifier .spec.sourceNamespaces pour définir les espaces de noms que le projet peut surveiller pour les applications (généralement définis sur l'espace de noms que vous avez spécifié lors de la création de la fonctionnalité)

  • Les annotations de suivi des ressources utilisent le format suivant : namespace_appname:group/kind:namespace/name

Fonctionnalités non prises en charge  : les fonctionnalités suivantes ne sont pas disponibles dans la fonctionnalité gérée :

  • Plugins de gestion de configuration (CMP) pour la génération de manifestes personnalisés

  • Contrôleur des notifications

  • Fournisseurs SSO personnalisés (seul AWS Identity Center est pris en charge, y compris l'identité fédérée tierce via AWS Identity Center)

  • Extensions d'interface utilisateur et bannières personnalisées

  • L'accès direct argocd-params et la plupart des configurations ConfigMaps (un sous-ensemble de argocd-cm champs) sont pris en charge. VoirConfiguration des paramètres d'Argo CD)

  • Modification du délai de synchronisation (fixé à 120 secondes)

Compatibilité  : les applications et le ApplicationSets fonctionnement sont identiques à ceux d'Argo CD en amont, sans aucune modification de vos manifestes. Cette fonctionnalité utilise les mêmes API et CRD Kubernetes, de sorte que des outils comme celui-ci kubectl fonctionnent de la même manière. Cette fonctionnalité prend entièrement en charge les applications et ApplicationSets les GitOps flux de travail avec synchronisation automatique, les déploiements multi-clusters, les politiques de synchronisation (automatisées, prunelles, auto-guérison), les ondes de synchronisation et les hooks, l'évaluation de l'état des ressources Kubernetes standard, les fonctionnalités de restauration, les sources des référentiels Git (HTTPS et SSH), Helm, Kustomize et les manifestes YAML simples, les informations d'identification des GitHub applications, les projets de mutualisation et les exclusions et inclusions de ressources.

Utilisation de l'interface de ligne de commande Argo CD avec la fonctionnalité gérée

L'interface de ligne de commande Argo CD fonctionne de la même manière que l'Argo CD en amont pour la plupart des opérations, mais l'authentification et l'enregistrement du cluster diffèrent.

Conditions préalables

Installez l'interface de ligne de commande Argo CD en suivant les instructions d'installation en amont.

Configuration

Configurez la CLI à l'aide de variables d'environnement :

  1. Obtenez l'URL du serveur Argo CD depuis la console EKS (sous l'onglet Capabilities de votre cluster) ou via l' AWS interface de ligne de commande. Le https:// préfixe doit être supprimé :

    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. Générez un jeton de compte depuis l'interface utilisateur d'Argo CD (Paramètres Comptes admin Générer un nouveau jeton), puis définissez-le comme variable d'environnement :

    export ARGOCD_AUTH_TOKEN="your-token-here"
Important

Cette configuration utilise le jeton du compte administrateur pour la configuration initiale et les flux de travail de développement. Pour les cas d'utilisation en production, utilisez des rôles et des jetons spécifiques au projet afin de respecter le principe du moindre privilège. Pour plus d'informations sur la configuration des rôles de projet et du RBAC, consultezConfigurer les autorisations d'Argo CD.

  1. Définissez l'option gRPC requise :

    export ARGOCD_OPTS="--grpc-web"

Une fois ces variables d'environnement définies, vous pouvez utiliser l'interface de ligne de commande Argo CD sans la argocd login commande.

Principales différences

La fonctionnalité gérée présente les limites suivantes de l'interface de ligne de commande :

  • argocd adminles commandes ne sont pas prises en charge (elles nécessitent un accès direct au pod)

  • argocd loginn'est pas pris en charge (utilisez plutôt des jetons de compte ou de projet)

  • argocd cluster addnécessite le --aws-cluster-name drapeau avec l'ARN du cluster EKS

Exemple : enregistrer un cluster

Enregistrez un cluster EKS pour le déploiement d'applications :

# 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

Pour consulter la documentation complète de l'interface de ligne de commande Argo CD, consultez la référence de l'interface de ligne de commande Argo CD.

Voie de migration

Vous pouvez migrer d'Argo CD autogéré vers la fonctionnalité gérée :

  1. Vérifiez votre configuration Argo CD actuelle pour détecter les fonctionnalités non prises en charge (contrôleur de notifications, CMP, contrôles de santé personnalisés, extensions d'interface utilisateur)

  2. Faites évoluer vos contrôleurs Argo CD autogérés jusqu'à ce qu'il n'y ait aucune réplication pour éviter les conflits

  3. Créez une ressource de fonctionnalités Argo CD sur votre cluster

  4. Exportez vos applications existantes ApplicationSets, et AppProjects

  5. Migrer les informations d'identification du référentiel, les secrets de cluster et les modèles d'informations d'identification du référentiel (rapports)

  6. Si vous utilisez des clés GPG, des certificats TLS ou des hôtes SSH connus, migrez également ces configurations

  7. Mettre à jour destination.server les champs pour utiliser les noms de clusters ou les ARN des clusters EKS

  8. Appliquez-les à l'instance Argo CD gérée

  9. Vérifiez que les applications se synchronisent correctement

  10. Mettez hors service votre installation Argo CD autogérée

La fonctionnalité gérée utilise les mêmes API et définitions de ressources Argo CD, de sorte que vos manifestes existants fonctionnent avec un minimum de modifications.

Étapes suivantes