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 sur 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.
Considérations relatives à Argo CD
Cette rubrique aborde les considérations importantes relatives à l'utilisation de la fonctionnalité EKS pour Argo CD, notamment la planification, les autorisations, l'authentification et les modèles de déploiement multi-clusters.
Planification
Avant de déployer Argo CD, tenez compte des points suivants :
Stratégie de dépôt : déterminez où les manifestes de votre application seront stockés (CodeCommit, GitHub, GitLab, Bitbucket). Planifiez la structure de votre référentiel et votre stratégie de branchement pour différents environnements.
Méthode d'authentification : décidez d'utiliser AWS Identity Center pour le SSO ou de gérer directement les utilisateurs d'Argo CD. L'authentification unique est recommandée pour les environnements de production.
Stratégie RBAC : planifiez les équipes ou les utilisateurs qui devraient avoir un accès administrateur, éditeur ou spectateur. Associez-les à des groupes AWS Identity Center ou à des rôles Argo CD.
Architecture multi-clusters : déterminez si vous allez gérer plusieurs clusters à partir d'une seule instance Argo CD. Envisagez d'utiliser un cluster de gestion dédié pour Argo CD.
Organisation des applications : planifiez la manière dont vous allez structurer les applications et ApplicationSets. Envisagez d'utiliser des projets pour organiser les applications par équipe ou par environnement.
Politiques de synchronisation : décidez si les applications doivent être synchronisées automatiquement ou si elles doivent être approuvées manuellement. La synchronisation automatisée est courante pour le développement, manuelle pour la production.
Permissions
Pour des informations détaillées sur les rôles de capacité IAM, les politiques de confiance et les meilleures pratiques de sécurité, consultez Fonctionnalité Amazon EKS : rôle IAM etConsidérations relatives à la sécurité relatives aux fonctionnalités EKS.
Présentation du rôle de capacité IAM
Lorsque vous créez une ressource de capacité Argo CD, vous fournissez un rôle de capacité IAM. Contrairement à ACK, Argo CD gère principalement les ressources Kubernetes, et non les ressources directement. AWS Toutefois, le rôle IAM est requis pour :
-
Accès aux référentiels Git privés dans CodeCommit
-
Intégration à AWS Identity Center pour l'authentification
-
Accès aux AWS secrets dans Secrets Manager (si configuré)
-
Déploiements entre clusters vers d'autres clusters EKS
CodeCommit intégration
Si vous utilisez des CodeCommit référentiels, joignez une politique avec des autorisations de lecture :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codecommit:GitPull" ], "Resource": "*" } ] }
Important
Pour une utilisation en production, limitez le Resource champ à un référentiel spécifique ARNs au lieu de l'utiliser"*".
Exemple :
"Resource": "arn:aws:codecommit:us-west-2:111122223333:my-app-repo"
Cela limite l'accès d'Argo CD aux seuls référentiels qu'il doit gérer.
Intégration de Secrets Manager
Si vous stockez les informations d'identification du dépôt dans Secrets Manager, joignez une politique avec des autorisations de lecture :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret" ], "Resource": "arn:aws:secretsmanager:*:*:secret:argocd/*" } ] }
Configuration de base
Pour les fonctionnalités de base d'Argo CD avec les référentiels Git publics, aucune politique IAM supplémentaire n'est requise au-delà de la politique de confiance.
Authentification
AWS Intégration à Identity Center
La fonctionnalité gérée d'Argo CD s'intègre directement à AWS Identity Center (anciennement AWS SSO), ce qui vous permet d'utiliser votre fournisseur d'identité existant pour l'authentification.
Lorsque vous configurez AWS l'intégration d'Identity Center :
-
Les utilisateurs accèdent à l'interface utilisateur du CD Argo via la console EKS
-
Ils s'authentifient à l'aide AWS d'Identity Center (qui peut être fédéré auprès de votre fournisseur d'identité d'entreprise)
-
AWS Identity Center fournit des informations sur les utilisateurs et les groupes à Argo CD
-
Argo CD associe les utilisateurs et les groupes aux rôles RBAC en fonction de votre configuration
-
Les utilisateurs ne voient que les applications et les ressources auxquelles ils sont autorisés à accéder
Simplification de l'accès grâce aux ensembles d'autorisations Identity Center
AWS Identity Center propose deux chemins d'authentification distincts lorsque vous travaillez avec Argo CD :
Authentification via l'API Argo CD : Identity Center fournit une authentification SSO à l'interface utilisateur et à l'API d'Argo CD. Ceci est configuré via les mappages de rôles RBAC de la fonctionnalité Argo CD.
Accès au cluster EKS : la fonctionnalité Argo CD utilise le rôle IAM fourni par le client pour s'authentifier auprès des clusters EKS par le biais d'entrées d'accès. Ces entrées d'accès peuvent être configurées manuellement pour ajouter ou supprimer des autorisations.
Vous pouvez utiliser les ensembles d'autorisations Identity Center pour simplifier la gestion des identités en autorisant une seule identité à accéder à la fois aux clusters Argo CD et EKS. Cela réduit les frais généraux en vous obligeant à gérer une seule identité sur les deux systèmes, plutôt que de conserver des informations d'identification distinctes pour l'accès au CD Argo et l'accès au cluster.
Mappages de rôles RBAC
Argo CD possède des rôles intégrés que vous pouvez associer aux utilisateurs et aux groupes AWS d'Identity Center :
ADMINISTRATEUR : accès complet à toutes les applications et à tous les paramètres. Peut créer, mettre à jour et supprimer des applications. Peut gérer la configuration d'Argo CD.
EDITEUR : Peut créer et modifier des applications. Impossible de modifier les paramètres d'Argo CD ou de supprimer des applications.
VIEWER : accès en lecture seule aux applications. Peut consulter l'état et l'historique de la demande. Impossible d'apporter des modifications.
Note
Les noms de rôles distinguent les majuscules des minuscules et doivent être en majuscules (ADMIN, EDITOR, VIEWER).
Important
L'intégration d'EKS Capabilities à AWS Identity Center prend en charge jusqu'à 1 000 identités par fonctionnalité Argo CD. Une identité peut être un utilisateur ou un groupe.
Déploiements multiclusters
La fonctionnalité gérée d'Argo CD prend en charge les déploiements multi-clusters, ce qui vous permet de gérer des applications dans des clusters de développement, de préparation et de production à partir d'une seule instance Argo CD.
Comment fonctionne le multi-cluster
Lorsque vous enregistrez des clusters supplémentaires avec Argo CD :
-
Vous créez des secrets de cluster qui font référence aux clusters EKS cibles par ARN
-
Vous créez des applications ou ApplicationSets qui ciblent différents clusters
-
Argo CD se connecte à chaque cluster pour déployer des applications et surveiller les ressources
-
Vous visualisez et gérez tous les clusters à partir d'une seule interface utilisateur Argo CD
Prérequis pour le multi-cluster
Avant d'enregistrer des clusters supplémentaires :
-
Créez une entrée d'accès sur le cluster cible pour le rôle de fonctionnalité Argo CD
-
Garantir la connectivité réseau entre la fonctionnalité Argo CD et les clusters cibles
-
Vérifiez les autorisations IAM pour accéder aux clusters cibles
Enregistrer un cluster
Enregistrez les clusters à l'aide de Kubernetes Secrets dans l'espace de noms. argocd
Obtenez l'ARN du cluster cible. Remplacez region-code par la AWS région dans laquelle se trouve votre cluster cible et remplacez target-cluster par le nom de votre cluster cible.
aws eks describe-cluster \ --regionregion-code\ --nametarget-cluster\ --query 'cluster.arn' \ --output text
Créez un secret de cluster à l'aide de l'ARN du 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
Important
Utilisez l'ARN du cluster EKS server sur le terrain, et non l'URL du serveur d'API Kubernetes. La fonctionnalité gérée nécessite ARNs d'identifier les clusters cibles.
Appliquez le secret :
kubectl apply -f cluster-secret.yaml
Configurer l'entrée d'accès sur le cluster cible
Le cluster cible doit disposer d'une entrée d'accès qui accorde au rôle Argo CD l'autorisation de déployer des applications. Remplacez region-code par la AWS région dans laquelle se trouve votre cluster cible, remplacez target-cluster par le nom de votre cluster cible et remplacez l'ARN par l'ARN de votre rôle de capacité Argo CD.
aws eks create-access-entry \ --regionregion-code\ --cluster-nametarget-cluster\ --principal-arn arn:aws:iam::[.replaceable]111122223333:role/ArgoCDCapabilityRole\ --type STANDARD \ --kubernetes-groups system:masters
Note
Pour une utilisation en production, pensez à utiliser des groupes Kubernetes plus restrictifs au lieu de. system:masters
Accès au cluster privé
La fonctionnalité gérée par Argo CD peut être déployée sur des clusters EKS entièrement privés sans nécessiter de peering VPC ou de configuration réseau spécialisée. AWS gère automatiquement la connectivité entre la fonctionnalité Argo CD et les clusters distants privés.
Déploiements entre comptes
Pour les déploiements entre comptes, ajoutez le rôle de capacité Argo CD IAM du compte source à l'entrée d'accès EKS du cluster cible :
-
Dans le compte cible, créez une entrée d'accès sur le cluster EKS cible
-
Utilisez l'Argo CD IAM Capability Role (ARN) du compte source comme principal
-
Configurer les autorisations RBAC Kubernetes appropriées pour l'entrée d'accès
-
Enregistrez le cluster cible dans Argo CD à l'aide de son ARN de cluster EKS
Aucune création de rôle IAM ou configuration de politique de confiance supplémentaire n'est requise : les entrées d'accès EKS gèrent l'accès entre comptes.
Bonnes pratiques
Utilisez des sources déclaratives comme source de vérité : stockez tous les manifestes de vos applications dans des référentiels Git, des registres Helm ou des images OCI, afin de permettre le contrôle des versions, les pistes d'audit et la collaboration.
Mettez en œuvre un RBAC approprié : utilisez AWS l'intégration d'Identity Center pour contrôler qui peut accéder aux applications dans Argo CD et les gérer. Argo CD prend en charge un contrôle d'accès précis aux ressources des applications (déploiements, modules, ConfigMaps secrets).
Utilisation ApplicationSets pour les déploiements multi-environnements : ApplicationSets à utiliser pour déployer des applications sur plusieurs clusters ou espaces de noms avec différentes configurations.
Gestion du cycle de vie
Politiques de synchronisation des applications
Contrôlez la façon dont Argo CD synchronise les applications :
Synchronisation manuelle : les applications nécessitent une approbation manuelle pour synchroniser les modifications. Recommandé pour les environnements de production.
Synchronisation automatique : les applications se synchronisent automatiquement lorsque des modifications de Git sont détectées. Commun pour les environnements de développement et de mise en scène.
Réparation automatique : annule automatiquement les modifications manuelles apportées au cluster. Garantit que l'état du cluster correspond à Git.
Élagage : Supprime automatiquement les ressources supprimées de Git. À utiliser avec prudence car cela peut supprimer des ressources.
État de santé des applications
Argo CD surveille en permanence l'état des applications :
-
Sain : toutes les ressources fonctionnent comme prévu
-
Progression : des ressources sont en cours de création ou de mise à jour
-
Dégradé : certaines ressources ne sont pas saines
-
Suspendu : l'application est suspendue
-
Manquant : des ressources sont absentes du cluster
Synchroniser les fenêtres
Configurez les fenêtres de synchronisation pour contrôler le moment où les applications peuvent être synchronisées :
-
Autoriser les synchronisations uniquement pendant les fenêtres de maintenance
-
Bloquer les synchronisations pendant les heures ouvrables
-
Programmez des synchronisations automatiques à des heures spécifiques
-
Utilisez les fenêtres de synchronisation pour les scénarios critiques dans lesquels vous devez arrêter temporairement toutes les synchronisations
Configuration du webhook pour une synchronisation plus rapide
Par défaut, Argo CD interroge les référentiels Git toutes les 6 minutes pour détecter les modifications. Pour des déploiements plus réactifs, configurez les webhooks Git pour déclencher des synchronisations immédiates lorsque des modifications sont apportées.
Les webhooks offrent plusieurs avantages :
-
Réponse de synchronisation immédiate lorsque le code est envoyé (secondes au lieu de minutes)
-
Réduction des frais de sondage et amélioration des performances du système
-
Utilisation plus efficace des limites de débit des API
-
Meilleure expérience utilisateur grâce à des commentaires plus rapides
Point de terminaison Webhook
La fonctionnalité Argo CD fournit un point de terminaison Webhook pour recevoir les notifications Git. Recherchez l'URL du webhook dans la console EKS sous l'onglet Capabilities de votre cluster, ou récupérez-la à l'aide de la AWS CLI :
aws eks describe-capability \ --cluster-namemy-cluster\ --capability-namemy-argocd\ --query 'capability.configuration.argoCd.webhookUrl' \ --output text \ --regionregion-code
Configurer les webhooks par le fournisseur Git
GitHub: Dans les paramètres de votre dépôt, ajoutez un webhook avec l'URL du webhook Argo CD. Définissez le type de contenu sur application/json et sélectionnez « Juste l'événement push ».
GitLab: Dans les paramètres de votre projet, ajoutez un webhook avec l'URL du webhook Argo CD. Activez les « événements push » et éventuellement « Tag les événements push ».
Bitbucket : Dans les paramètres de votre dépôt, ajoutez un webhook avec l'URL du webhook Argo CD. Sélectionnez « Repository push » comme déclencheur.
CodeCommit: Créez une EventBridge règle Amazon qui déclenche les changements d'état CodeCommit du référentiel et envoie des notifications au point de terminaison du webhook Argo CD.
Pour obtenir des instructions détaillées sur la configuration du webhook, voir Configuration du webhook sur Argo CD
Note
Les webhooks complètent les sondages, ils ne les remplacent pas. Argo CD continue d'interroger les référentiels comme mécanisme de secours au cas où les notifications du webhook seraient manquées.
Étapes suivantes
-
Travailler avec Argo CD- Apprenez à créer et à gérer des applications Argo CD
-
Résoudre les problèmes liés aux fonctionnalités d'Argo CD- Résoudre les problèmes liés à Argo CD
-
Utilisation des ressources en matière de capacités- Gérez vos ressources de capacités Argo CD