Anwendungen erstellen - Amazon EKS

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.

Anwendungen erstellen

Anwendungen stellen Bereitstellungen in Zielclustern dar. Jede Anwendung definiert eine Quelle (Git-Repository) und ein Ziel (Cluster und Namespace). Bei der Anwendung erstellt Argo CD die durch Manifeste im Git-Repository angegebenen Ressourcen für den Namespace im Cluster. Anwendungen spezifizieren häufig Workload-Bereitstellungen, können aber alle im Zielcluster verfügbaren Kubernetes-Ressourcen verwalten.

Voraussetzungen

Erstellen Sie eine Basisanwendung

Definieren Sie eine Anwendung, die aus einem Git-Repository bereitgestellt wird:

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
Wichtig

Verwenden Sie den EKS-Cluster-ARN im destination.server Feld, nicht die Kubernetes-API-Server-URL. Die verwaltete Funktion erfordert die Identifizierung ARNs von Clustern.

Wenden Sie die Anwendung an:

kubectl apply -f application.yaml

Den Status der Bewerbung anzeigen:

kubectl get application guestbook -n argocd

Konfiguration der Quelle

Git-Repository:

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

Spezifisches Git-Tag oder Commit:

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

Helmdiagramm:

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

Helmdiagramm aus ECR:

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

Wenn die Capability-Rolle über die erforderlichen ECR-Berechtigungen verfügt, wird das Repository direkt verwendet und es ist keine Repository-Konfiguration erforderlich. Details dazu finden Sie unter Repository-Zugriff konfigurieren.

Git-Repository von CodeCommit:

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

Wenn die Capability-Rolle über die erforderlichen CodeCommit Berechtigungen verfügt, wird das Repository direkt verwendet und es ist keine Repository-Konfiguration erforderlich. Details dazu finden Sie unter Repository-Zugriff konfigurieren.

Git-Repository von CodeConnections:

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

Das Repository-URL-Format wird vom CodeConnections Verbindungs-ARN abgeleitet. Wenn die Capability-Rolle über die erforderlichen CodeConnections Berechtigungen verfügt und eine Verbindung konfiguriert ist, wird das Repository direkt verwendet und es ist keine Repository-Konfiguration erforderlich. Details dazu finden Sie unter Repository-Zugriff konfigurieren.

Anpassen:

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

Richtlinien synchronisieren

Steuern Sie, wie Argo CD Anwendungen synchronisiert.

Manuelle Synchronisation (Standard):

Für die Synchronisierung von Anwendungen ist eine manuelle Genehmigung erforderlich:

spec: syncPolicy: {} # No automated sync

Synchronisation manuell auslösen:

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

Automatische Synchronisation:

Anwendungen werden automatisch synchronisiert, wenn Git-Änderungen erkannt werden:

spec: syncPolicy: automated: {}

Selbstheilung:

Manuelle Änderungen am Cluster automatisch rückgängig machen:

spec: syncPolicy: automated: selfHeal: true

Wenn diese Option aktiviert ist, macht Argo CD alle manuellen Änderungen rückgängig, die direkt am Cluster vorgenommen wurden, und stellt so sicher, dass Git die Quelle der Wahrheit bleibt.

Beschneiden:

Automatisches Löschen von Ressourcen, die aus Git entfernt wurden:

spec: syncPolicy: automated: prune: true
Warnung

Durch das Bereinigen werden Ressourcen aus Ihrem Cluster gelöscht. In Produktionsumgebungen mit Vorsicht verwenden.

Kombinierte automatische Synchronisierung:

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

Synchronisierungsoptionen

Zusätzliche Synchronisierungskonfiguration:

Erstellen Sie einen Namespace, falls er nicht existiert:

spec: syncPolicy: syncOptions: - CreateNamespace=true

Überprüfen Sie die Ressourcen, bevor Sie sie anwenden:

spec: syncPolicy: syncOptions: - Validate=true

Nur unsynchron anwenden:

spec: syncPolicy: syncOptions: - ApplyOutOfSyncOnly=true

Erweiterte Synchronisierungsfunktionen

Argo CD unterstützt erweiterte Synchronisierungsfunktionen für komplexe Bereitstellungen:

  • Sync Waves — Steuern Sie die Reihenfolge der Ressourcenerstellung mit Anmerkungen argocd.argoproj.io/sync-wave

  • Hooks synchronisieren — Führt Jobs vor oder nach der Synchronisierung mit argocd.argoproj.io/hook Anmerkungen aus (PreSync,, PostSync) SyncFail

  • Bewertung des Ressourcenzustands — Benutzerdefinierte Zustandsprüfungen für anwendungsspezifische Ressourcen

Einzelheiten finden Sie unter Sync Waves und Resource Hooks in der Argo-CD-Dokumentation.

Ignoriere Unterschiede

Verhindern Sie, dass Argo CD bestimmte Felder synchronisiert, die von anderen Controllern verwaltet werden (wie HPA, das Replikate verwaltet):

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

Einzelheiten zu Ignorierungsmustern und Feldausschlüssen finden Sie unter Diffing Customization in der Argo-CD-Dokumentation.

Einsatz in mehreren Umgebungen

Stellen Sie dieselbe Anwendung in mehreren Umgebungen bereit:

Entwicklung:

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

Anwendungen überwachen und verwalten

Status der Bewerbung anzeigen:

kubectl get application my-app -n argocd

Greifen Sie auf die Benutzeroberfläche von Argo CD zu:

Öffnen Sie die Benutzeroberfläche von Argo CD über die EKS-Konsole, um die Anwendungstopologie, den Synchronisierungsstatus, den Zustand der Ressourcen und den Bereitstellungsverlauf einzusehen. Anweisungen Arbeiten mit Argo CD zum Zugriff auf die Benutzeroberfläche finden Sie unter.

Rollback-Anwendungen:

Rollback zu einer früheren Version mithilfe der Argo-CD-Benutzeroberfläche oder durch Aktualisierung der Anwendungsspezifikation targetRevision auf einen früheren Git-Commit oder -Tag.

Weitere Ressourcen