Enregistrer les clusters cibles - 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 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.

Enregistrer les clusters cibles

Enregistrez les clusters pour permettre à Argo CD d'y déployer des applications. Vous pouvez enregistrer le même cluster sur lequel Argo CD est en cours d'exécution (cluster local) ou des clusters distants dans différents comptes ou régions.

Conditions préalables

  • Création d'un cluster EKS doté de la fonctionnalité Argo CD

  • kubectlconfiguré pour communiquer avec votre cluster

  • Pour les clusters distants : autorisations IAM et entrées d'accès appropriées

Enregistrez le cluster local

Pour déployer des applications sur le même cluster que celui sur lequel Argo CD est exécuté, enregistrez-le en tant que cible de déploiement.

Note

La fonctionnalité Argo CD n'enregistre pas automatiquement le cluster local. Vous devez l'enregistrer explicitement pour déployer des applications sur le même cluster.

À l'aide de l'Argo CD CLI :

argocd cluster add <cluster-context-name> \ --aws-cluster-name arn:aws:eks:us-west-2:111122223333:cluster/my-cluster \ --name local-cluster

À l'aide d'un secret Kubernetes :

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

Appliquez la configuration :

kubectl apply -f local-cluster.yaml
Note

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. La valeur par défaut n'kubernetes.default.svcest pas prise en charge.

Enregistrer des clusters distants

Pour effectuer un déploiement sur des clusters distants, vous devez :

  1. Créez une entrée d'accès sur le cluster distant pour votre rôle Argo CD IAM Capability

  2. Associer une politique d'accès aux autorisations appropriées

  3. Enregistrez le cluster dans Argo CD

Étape 1 : créer l'entrée d'accès sur le cluster distant

Remplacez region-code par la AWS région dans laquelle se trouve votre cluster distant, remplacez remote-cluster par le nom de votre cluster distant et remplacez l'ARN par l'ARN de votre rôle de fonctionnalité Argo CD.

aws eks create-access-entry \ --region region-code \ --cluster-name remote-cluster \ --principal-arn arn:aws:iam::[.replaceable]111122223333:role/ArgoCDCapabilityRole \ --type STANDARD

Étape 2 : associer une politique d'accès

aws eks associate-access-policy \ --region region-code \ --cluster-name remote-cluster \ --principal-arn arn:aws:iam::[.replaceable]111122223333:role/ArgoCDCapabilityRole \ --policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy \ --access-scope type=cluster
Note

Pour les environnements de production, envisagez d'utiliser des politiques d'accès plus restrictives. Voir Considérations relatives à la sécurité relatives aux fonctionnalités EKS pour les configurations avec le moindre privilège.

Étape 3 : enregistrer le cluster dans Argo CD

À l'aide de l'Argo CD CLI :

argocd cluster add <cluster-context-name> \ --aws-cluster-name arn:aws:eks:us-west-2:111122223333:cluster/remote-cluster \ --name remote-cluster

À l'aide d'un secret Kubernetes :

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

Appliquez la configuration :

kubectl apply -f remote-cluster.yaml

Clusters multicomptes et interrégionaux

Pour effectuer un déploiement sur des clusters situés dans différents AWS comptes ou régions, procédez comme suit :

  1. Ajoutez le rôle Argo CD Capability en tant qu'entrée d'accès sur le cluster distant

  2. Associez la politique d'accès appropriée (généralementAmazonEKSClusterAdminPolicy)

  3. Enregistrez le cluster à l'aide de son ARN complet (qui inclut la région)

Le format ARN du cluster inclut la région. Il n'y a donc aucune différence entre l'enregistrement entre comptes et entre régions : les deux utilisent le même processus.

Pour une configuration inter-comptes détaillée, y compris les politiques de confiance et les autorisations IAM, voir. Considérations relatives à Argo CD

Vérifier l'enregistrement du cluster

Afficher les clusters enregistrés :

kubectl get secrets -n argocd -l argocd.argoproj.io/secret-type=cluster

Ou vérifiez l'état du cluster dans l'interface utilisateur d'Argo CD sous Paramètres → Clusters.

Clusters privés

La fonctionnalité Argo CD fournit 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.

AWS gère automatiquement la connectivité entre la fonctionnalité Argo CD et les clusters distants privés.

Enregistrez simplement le cluster privé à l'aide de son ARN, aucune configuration réseau supplémentaire n'est requise.

Restreindre l'accès au cluster avec Projects

Utilisez les projets pour contrôler les clusters sur lesquels les applications peuvent être déployées :

apiVersion: argoproj.io/v1alpha1 kind: AppProject metadata: name: production namespace: argocd spec: destinations: - server: arn:aws:eks:us-west-2:111122223333:cluster/prod-cluster namespace: '*' - server: arn:aws:eks:eu-west-1:111122223333:cluster/prod-eu-cluster namespace: '*' sourceRepos: - 'https://github.com/example/production-apps'

Pour en savoir plus, consultez Travailler avec des projets Argo CD.

Ressources supplémentaires