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'un cluster EKS doté de la fonctionnalité Argo CD
-
Accès au référentiel configuré (voirConfiguration de l'accès au référentiel)
-
Cluster cible enregistré (voirEnregistrer les clusters cibles)
-
kubectlconfiguré pour communiquer avec votre cluster
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-nametargetRevision:chart-versionchart: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-nametargetRevision: 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/hookles 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
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
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
-
Travailler avec des projets Argo CD- Organisez les applications avec des projets pour les environnements à locataires multiples
-
Utiliser ApplicationSets- Déployez sur plusieurs clusters à l'aide de modèles
-
Spécification de l'application
- Référence complète de l'API de l'application -
Options de synchronisation
- Configuration de synchronisation avancée