Création d'applications - 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.

Création d'applications

Les applications représentent des déploiements dans des clusters cibles. Chaque application définit une source (dépôt Git) et une destination (cluster et espace de noms). Une fois appliqué, Argo CD créera les ressources spécifiées par des manifestes dans le référentiel Git dans l'espace de noms du cluster. Les applications spécifient souvent des déploiements de charges de travail, mais elles peuvent gérer toutes les ressources Kubernetes disponibles dans le cluster de destination.

Conditions préalables

Création d'une application de base

Définissez une application déployée à partir d'un dépôt Git :

apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: guestbook namespace: argocd spec: project: default source: repoURL: https://github.com/argoproj/argocd-example-apps targetRevision: HEAD path: guestbook destination: server: arn:aws:eks:us-west-2:111122223333:cluster/my-cluster namespace: default
Important

Utilisez l'ARN du cluster EKS destination.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.

Appliquez l'application :

kubectl apply -f application.yaml

Afficher le statut de la demande :

kubectl get application guestbook -n argocd

Configuration de la source

Référentiel Git :

spec: source: repoURL: https://github.com/example/my-app targetRevision: main path: kubernetes/manifests

Tag ou commit Git spécifique :

spec: source: targetRevision: v1.2.0 # or commit SHA

Tableau du casque :

spec: source: repoURL: https://github.com/example/helm-charts targetRevision: main path: charts/my-app helm: valueFiles: - values.yaml parameters: - name: image.tag value: v1.2.0

Tableau de bord de l'ECR :

spec: source: repoURL: oci://account-id.dkr.ecr.region.amazonaws.com/repository-name targetRevision: chart-version chart: chart-name

Si le rôle de capacité dispose des autorisations ECR requises, le référentiel est utilisé directement et aucune configuration de référentiel n'est requise. Consultez Configuration de l'accès au référentiel pour plus de détails.

Dépôt Git provenant de CodeCommit :

spec: source: repoURL: https://git-codecommit.region.amazonaws.com/v1/repos/repository-name targetRevision: main path: kubernetes/manifests

Si le rôle de capacité dispose des CodeCommit autorisations requises, le référentiel est utilisé directement et aucune configuration de référentiel n'est requise. Consultez Configuration de l'accès au référentiel pour plus de détails.

Dépôt Git provenant de CodeConnections :

spec: source: repoURL: https://codeconnections.region.amazonaws.com/git-http/account-id/region/connection-id/owner/repository.git targetRevision: main path: kubernetes/manifests

Le format de l'URL du référentiel est dérivé de l'ARN de CodeConnections connexion. Si le rôle de capacité dispose des CodeConnections autorisations requises et qu'une connexion est configurée, le référentiel est utilisé directement et aucune configuration de référentiel n'est requise. Consultez Configuration de l'accès au référentiel pour plus de détails.

Personnalisez :

spec: source: repoURL: https://github.com/example/kustomize-app targetRevision: main path: overlays/production kustomize: namePrefix: prod-

Politiques de synchronisation

Contrôlez la façon dont Argo CD synchronise les applications.

Synchronisation manuelle (par défaut) :

Les applications nécessitent une approbation manuelle pour être synchronisées :

spec: syncPolicy: {} # No automated sync

Déclenchez manuellement la synchronisation :

kubectl patch application guestbook -n argocd \ --type merge \ --patch '{"operation": {"initiatedBy": {"username": "admin"}, "sync": {}}}'

Synchronisation automatique :

Les applications se synchronisent automatiquement lorsque des modifications de Git sont détectées :

spec: syncPolicy: automated: {}

Auto-guérison :

Annulez automatiquement les modifications manuelles apportées au cluster :

spec: syncPolicy: automated: selfHeal: true

Lorsqu'il est activé, Argo CD annule toutes les modifications manuelles apportées directement au cluster, garantissant ainsi que Git reste la source de vérité.

Élagage :

Supprimez automatiquement les ressources supprimées de Git :

spec: syncPolicy: automated: prune: true
Avertissement

L'élagage supprimera les ressources de votre cluster. À utiliser avec prudence dans les environnements de production.

Synchronisation automatique combinée :

spec: syncPolicy: automated: prune: true selfHeal: true syncOptions: - CreateNamespace=true

Options de synchronisation

Configuration de synchronisation supplémentaire :

Créez un espace de noms s'il n'existe pas :

spec: syncPolicy: syncOptions: - CreateNamespace=true

Validez les ressources avant de les appliquer :

spec: syncPolicy: syncOptions: - Validate=true

Appliquer de manière désynchronisée uniquement :

spec: syncPolicy: syncOptions: - ApplyOutOfSyncOnly=true

Fonctionnalités de synchronisation avancées

Argo CD prend en charge les fonctionnalités de synchronisation avancées pour les déploiements complexes :

  • Synchronisation des ondes - Contrôlez l'ordre de création des ressources à l'aide d'argocd.argoproj.io/sync-waveannotations

  • Crochets de synchronisation - Exécutez des tâches avant ou après la synchronisation avec argocd.argoproj.io/hook les annotations (PreSync, PostSync, SyncFail)

  • Évaluation de l'état des ressources - Contrôles de santé personnalisés pour les ressources spécifiques à l'application

Pour plus de détails, consultez Sync Waves et Resource Hooks dans la documentation d'Argo CD.

Ignorer les différences

Empêchez Argo CD de synchroniser des champs spécifiques gérés par d'autres contrôleurs (comme la gestion des répliques par HPA) :

spec: ignoreDifferences: - group: apps kind: Deployment jsonPointers: - /spec/replicas

Pour plus de détails sur les modèles d'ignorance et les exclusions de champs, voir Diffing Customization dans la documentation d'Argo CD.

Déploiement dans plusieurs environnements

Déployez la même application dans plusieurs environnements :

Développement :

apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: my-app-dev namespace: argocd spec: project: default source: repoURL: https://github.com/example/my-app targetRevision: develop path: overlays/development destination: server: arn:aws:eks:us-west-2:111122223333:cluster/dev-cluster namespace: my-app

Produktion :

apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: my-app-prod namespace: argocd spec: project: default source: repoURL: https://github.com/example/my-app targetRevision: main path: overlays/production destination: server: arn:aws:eks:us-west-2:111122223333:cluster/prod-cluster namespace: my-app syncPolicy: automated: prune: true selfHeal: true

Surveiller et gérer les applications

Afficher le statut de la demande :

kubectl get application my-app -n argocd

Accédez à l'interface utilisateur d'Argo CD :

Ouvrez l'interface utilisateur du CD Argo via la console EKS pour afficher la topologie de l'application, l'état de synchronisation, l'état des ressources et l'historique des déploiements. Consultez les instructions Travailler avec Argo CD d'accès à l'interface utilisateur.

Applications de rétrogradation :

Revenez à une version précédente à l'aide de l'interface utilisateur du CD Argo ou targetRevision en mettant à jour la spécification de l'application avec un commit ou une balise Git précédent.

Ressources supplémentaires