Unterstützung für die Verbesserung dieser Seite beitragen
Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Um zu diesem Benutzerhandbuch beizutragen, wählen Sie den GitHub Link Diese Seite bearbeiten auf, der sich im rechten Bereich jeder Seite befindet.
Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Benutzen ApplicationSets
ApplicationSets Generieren Sie mehrere Anwendungen aus Vorlagen, sodass Sie dieselbe Anwendung mit einer einzigen Ressourcendefinition in mehreren Clustern, Umgebungen oder Namespaces bereitstellen können.
Voraussetzungen
-
Es wurde ein EKS-Cluster mit der Argo-CD-Funktion erstellt
-
Es wurden mehrere Zielcluster registriert (sieheZielcluster registrieren)
-
Repository-Zugriff konfiguriert (sieheRepository-Zugriff konfigurieren)
-
kubectlfür die Kommunikation mit Ihrem Cluster konfiguriert
Wie ApplicationSets funktioniert
ApplicationSets Verwenden Sie Generatoren, um Parameter zu erzeugen, und wenden Sie diese Parameter dann auf eine Anwendungsvorlage an. Jeder Satz generierter Parameter erstellt eine Anwendung.
Allgemeine Generatoren für EKS-Bereitstellungen:
-
Listengenerator — Definieren Sie explizit Cluster und Parameter für jede Umgebung
-
Cluster-Generator — Automatische Bereitstellung auf allen registrierten Clustern
-
Git Generator - Generieren Sie Anwendungen aus der Repository-Struktur
-
Matrixgenerator — Kombinieren Sie Generatoren für mehrdimensionale Bereitstellungen
Eine vollständige Generator-Referenz finden ApplicationSet Sie in der Dokumentation.
Listengenerator
Bereitstellung auf mehreren Clustern mit expliziter Konfiguration:
apiVersion: argoproj.io/v1alpha1 kind: ApplicationSet metadata: name: guestbook-all-clusters namespace: argocd spec: generators: - list: elements: - cluster: arn:aws:eks:us-west-2:111122223333:cluster/dev-cluster environment: dev replicas: "2" - cluster: arn:aws:eks:us-west-2:111122223333:cluster/staging-cluster environment: staging replicas: "3" - cluster: arn:aws:eks:us-west-2:111122223333:cluster/prod-cluster environment: prod replicas: "5" template: metadata: name: 'guestbook-{{environment}}' spec: project: default source: repoURL: https://github.com/example/guestbook targetRevision: HEAD path: 'overlays/{{environment}}' destination: server: '{{cluster}}' namespace: guestbook syncPolicy: automated: prune: true selfHeal: true
Anmerkung
Verwenden Sie den EKS-Cluster ARNs vor server Ort, wenn Sie auf registrierte EKS-Cluster abzielen. Sie können auch Clusternamen mit destination.name anstelle von verwendendestination.server.
Dadurch werden drei Anwendungen erstellt: guestbook-devguestbook-staging, undguestbook-prod.
Clustergenerator
Automatisch auf allen registrierten Clustern bereitstellen:
apiVersion: argoproj.io/v1alpha1 kind: ApplicationSet metadata: name: cluster-addons namespace: argocd spec: generators: - clusters: {} template: metadata: name: '{{name}}-addons' spec: project: default source: repoURL: https://github.com/example/cluster-addons targetRevision: HEAD path: addons destination: server: '{{server}}' namespace: kube-system syncPolicy: automated: prune: true selfHeal: true
Dadurch wird automatisch eine Anwendung für jeden registrierten Cluster erstellt.
Cluster filtern:
spec: generators: - clusters: selector: matchLabels: environment: production
Git-Generatoren
Git-Generatoren erstellen Anwendungen auf der Grundlage der Repository-Struktur:
-
Verzeichnisgenerator — Stellen Sie jedes Verzeichnis als separate Anwendung bereit (nützlich für Microservices)
-
Dateigenerator — Generieren Sie Anwendungen aus Parameterdateien (nützlich für Bereitstellungen mit mehreren Mandanten)
Beispiel: Bereitstellung von Microservices
apiVersion: argoproj.io/v1alpha1 kind: ApplicationSet metadata: name: microservices namespace: argocd spec: generators: - git: repoURL: https://github.com/example/microservices revision: HEAD directories: - path: services/* template: metadata: name: '{{path.basename}}' spec: project: default source: repoURL: https://github.com/example/microservices targetRevision: HEAD path: '{{path}}' destination: server: arn:aws:eks:us-west-2:111122223333:cluster/my-cluster namespace: '{{path.basename}}' syncPolicy: automated: prune: true selfHeal: true syncOptions: - CreateNamespace=true
Einzelheiten zu Git-Generatoren und dateibasierter Konfiguration finden Sie unter Git Generator
Matrixgenerator
Kombinieren Sie mehrere Generatoren, um sie in mehreren Dimensionen (Umgebungen × Cluster) einzusetzen:
apiVersion: argoproj.io/v1alpha1 kind: ApplicationSet metadata: name: multi-env-multi-cluster namespace: argocd spec: generators: - matrix: generators: - list: elements: - environment: dev - environment: staging - environment: prod - clusters: selector: matchLabels: region: us-west-2 template: metadata: name: 'app-{{environment}}-{{name}}' spec: project: default source: repoURL: https://github.com/example/app targetRevision: HEAD path: 'overlays/{{environment}}' destination: server: '{{server}}' namespace: 'app-{{environment}}'
Einzelheiten zur Kombination von Generatoren finden Sie unter Matrix Generator
Schrittweiser Rollout
Sequenziell in Umgebungen mit unterschiedlichen Synchronisierungsrichtlinien bereitstellen:
apiVersion: argoproj.io/v1alpha1 kind: ApplicationSet metadata: name: progressive-rollout namespace: argocd spec: generators: - list: elements: - environment: dev autoSync: "true" - environment: staging autoSync: "true" - environment: prod autoSync: "false" template: metadata: name: 'app-{{environment}}' spec: project: default source: repoURL: https://github.com/example/app targetRevision: HEAD path: 'overlays/{{environment}}' destination: server: arn:aws:eks:us-west-2:111122223333:cluster/{{environment}}-cluster namespace: app syncPolicy: automated: prune: true selfHeal: '{{autoSync}}'
Entwicklung und Staging werden automatisch synchronisiert, während für die Produktion eine manuelle Genehmigung erforderlich ist.
Einsatz in mehreren Regionen
Bereitstellung auf Clustern in mehreren Regionen:
apiVersion: argoproj.io/v1alpha1 kind: ApplicationSet metadata: name: global-app namespace: argocd spec: generators: - list: elements: - cluster: arn:aws:eks:us-west-2:111122223333:cluster/prod-us-west region: us-west-2 - cluster: arn:aws:eks:us-east-1:111122223333:cluster/prod-us-east region: us-east-1 - cluster: arn:aws:eks:eu-west-1:111122223333:cluster/prod-eu-west region: eu-west-1 template: metadata: name: 'app-{{region}}' spec: project: default source: repoURL: https://github.com/example/app targetRevision: HEAD path: kubernetes helm: parameters: - name: region value: '{{region}}' destination: server: '{{cluster}}' namespace: app syncPolicy: automated: prune: true selfHeal: true
Verwalten ApplicationSets
Anwendungen anzeigen ApplicationSets und generieren:
kubectl get applicationsets -n argocd kubectl get applications -n argocd -l argocd.argoproj.io/application-set-name=<applicationset-name>
Aktualisieren und ApplicationSet:
Ändern Sie die ApplicationSet Spezifikation und wenden Sie sie erneut an. Argo CD aktualisiert automatisch alle generierten Anwendungen:
kubectl apply -f applicationset.yaml
Löschen und: ApplicationSet
kubectl delete applicationset <name> -n argocd
Warnung
Beim Löschen und ApplicationSet Löschen aller generierten Anwendungen werden alle generierten Anwendungen gelöscht. Wenn dies bei diesen Anwendungen der Fall istprune: true, werden ihre Ressourcen ebenfalls aus den Zielclustern gelöscht.
Weitere Ressourcen
-
Zusammenarbeit mit Argo CD Projects- Organisieren Sie ApplicationSets mit Projekten
-
Anwendungen erstellen- Verstehen Sie die Anwendungskonfiguration
-
ApplicationSet Dokumentation
— Vollständige Generatorreferenz und Muster -
Generator-Referenz
— Detaillierte Generatorspezifikationen