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.
Argo CD-Konzepte
Argo CD implementiert, GitOps indem es Git als zentrale Informationsquelle für Ihre Anwendungsbereitstellungen behandelt. In diesem Thema wird ein praktisches Beispiel vorgestellt und anschließend die Kernkonzepte erläutert, die Sie bei der Arbeit mit der EKS-Funktion für Argo CD verstehen müssen.
Erste Schritte mit Argo CD
Nachdem Sie die Argo-CD-Funktion erstellt haben (sieheErstellen einer Argo CD-Funktion), können Sie mit der Bereitstellung von Anwendungen beginnen. In diesem Beispiel werden die Registrierung eines Clusters und die Erstellung einer Anwendung beschrieben.
Schritt 1: Einrichten von
Registrieren Sie Ihren Cluster (erforderlich)
Registrieren Sie den Cluster, in dem Sie Anwendungen bereitstellen möchten. In diesem Beispiel registrieren wir denselben Cluster, auf dem Argo CD läuft (Sie können den Namen aus in-cluster Kompatibilitätsgründen mit den meisten Argo-CD-Beispielen verwenden):
# Get your cluster ARN CLUSTER_ARN=$(aws eks describe-cluster \ --name my-cluster \ --query 'cluster.arn' \ --output text) # Register the cluster using Argo CD CLI argocd cluster add $CLUSTER_ARN \ --aws-cluster-name $CLUSTER_ARN \ --name in-cluster \ --project default
Anmerkung
Informationen zur Konfiguration der Argo-CD-CLI für die Verwendung mit der Argo-CD-Funktion in EKS finden Sie unter. Verwenden der Argo-CD-CLI mit der verwalteten Funktion
Alternativ können Sie den Cluster mit einem Kubernetes Secret registrieren (Einzelheiten finden Sie unterZielcluster registrieren).
Konfigurieren Sie den Repository-Zugriff (optional)
In diesem Beispiel wird ein öffentliches GitHub Repository verwendet, sodass keine Repository-Konfiguration erforderlich ist. Für private Repositorys konfigurieren Sie den Zugriff mit AWS Secrets Manager oder Kubernetes Secrets (weitere Informationen finden Sie unterRepository-Zugriff konfigurieren). CodeConnections
AWS Dienste (ECR für Helm-Diagramme und CodeCommit) können Sie direkt in den Anwendungsressourcen referenzieren, ohne ein Repository zu erstellen. CodeConnections Die Capability-Rolle muss über die erforderlichen IAM-Berechtigungen verfügen. Details dazu finden Sie unter Repository-Zugriff konfigurieren.
Schritt 2: Eine Anwendung erstellen
Erstellen Sie dieses Anwendungsmanifest inmy-app.yaml:
apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: guestbook namespace: argocd spec: project: default source: repoURL: https://github.com/argoproj/argocd-example-apps.git targetRevision: HEAD path: guestbook destination: name: in-cluster namespace: guestbook syncPolicy: automated: prune: true selfHeal: true syncOptions: - CreateNamespace=true
Wenden Sie die Anwendung an:
kubectl apply -f my-app.yaml
Nach dem Anwenden dieser Anwendung, Argo CD: 1. Synchronisiert die Anwendung von Git mit Ihrem Cluster (erste Bereitstellung) 2. Überwacht das Git-Repository auf Änderungen 3. Synchronisiert nachfolgende Änderungen automatisch mit Ihrem Cluster 4. Erkennt und korrigiert jede Abweichung vom gewünschten Zustand 5. Zeigt den Gesundheitsstatus und den Synchronisierungsverlauf auf der Benutzeroberfläche an
Den Status der Anwendung anzeigen:
kubectl get application guestbook -n argocd
Sie können die Anwendung auch über die Argo-CD-CLI (argocd app get guestbook) oder die Argo-CD-Benutzeroberfläche (zugänglich über die EKS-Konsole auf der Registerkarte Capabilities Ihres Clusters) anzeigen.
Anmerkung
Verwenden Sie den Clusternamen in destination.name (den Namen, den Sie bei der Registrierung des Clusters verwendet haben). Die verwaltete Funktion unterstützt nicht die lokale Standardeinstellung im Cluster (kubernetes.default.svc).
Schlüsselkonzepte
GitOps Prinzipien und Quelltypen
Argo CD implementiert GitOps, wobei Ihre Anwendungsquelle die zentrale Informationsquelle für Implementierungen ist:
-
Deklarativ — Der gewünschte Status wird mithilfe von YAML-Manifesten, Helm-Diagrammen oder Kustomize-Overlays deklariert
-
Versioniert — Jede Änderung wird anhand eines vollständigen Prüfprotokolls nachverfolgt
-
Automatisiert — Argo CD überwacht kontinuierlich die Quellen und synchronisiert Änderungen automatisch
-
Selbstheilung — Erkennt und korrigiert Abweichungen zwischen dem gewünschten und dem tatsächlichen Clusterstatus
Unterstützte Quelltypen:
-
Git-Repositorien - GitHub, GitLab, Bitbucket, CodeCommit (HTTPS, SSH oder) CodeConnections
-
Helm-Register — HTTP-Register (wie
https://aws.github.io/eks-charts) und OCI-Register (wie)public.ecr.aws -
OCI-Images — Container-Images, die Manifeste oder Helm-Charts (ähnlich) enthalten
oci://registry-1.docker.io/user/my-app
Diese Flexibilität ermöglicht es Unternehmen, Quellen auszuwählen, die ihren Sicherheits- und Compliance-Anforderungen entsprechen. Beispielsweise können Organisationen, die den Git-Zugriff von Clustern aus einschränken, ECR für Helm-Diagramme oder OCI-Images verwenden.
Weitere Informationen finden Sie in der Argo-CD-Dokumentation unter Anwendungsquellen
Synchronisieren und Abgleichen
Argo CD überwacht kontinuierlich Ihre Quellen und Cluster, um Unterschiede zu erkennen und zu korrigieren:
-
Fragt Quellen nach Änderungen ab (Standard: alle 6 Minuten)
-
Vergleicht den gewünschten Status mit dem Clusterstatus
-
Markiert Anwendungen als
SyncedoderOutOfSync -
Synchronisiert Änderungen automatisch (falls konfiguriert) oder wartet auf die manuelle Genehmigung
-
Überwacht den Zustand der Ressourcen nach der Synchronisierung
Synchronisierungswellen steuern die Reihenfolge der Ressourcenerstellung mithilfe von Anmerkungen:
metadata: annotations: argocd.argoproj.io/sync-wave: "0" # Default if not specified
Ressourcen werden in der Reihenfolge der Wellen angewendet (niedrigere Zahlen zuerst, einschließlich negativer Zahlen wie-1). Auf diese Weise können Sie vor Bereitstellungen (Wave) Abhängigkeiten wie Namespaces (Wave-1) erstellen. 0
Durch die Selbstheilung werden manuelle Änderungen automatisch rückgängig gemacht:
spec: syncPolicy: automated: selfHeal: true
Anmerkung
Die verwaltete Funktion verwendet eine auf Anmerkungen basierende Ressourcenverfolgung (nicht labelbasiert), um die Kompatibilität mit Kubernetes-Konventionen und anderen Tools zu verbessern.
Integrität der Anwendung
Argo CD überwacht den Zustand aller Ressourcen in Ihrer Anwendung:
Integritätsstatus: * Fehlerfrei — Alle Ressourcen laufen wie erwartet * Fortschritt — Ressourcen werden erstellt oder aktualisiert * Heruntergestuft — Einige Ressourcen sind nicht fehlerfrei (Pods stürzen ab, Jobs schlagen fehl) * Suspendiert — Anwendung wurde absichtlich angehalten * Fehlt — In Git definierte Ressourcen sind nicht im Cluster vorhanden
Argo CD verfügt über integrierte Integritätsprüfungen für gängige Kubernetes-Ressourcen (Deployments StatefulSets, Jobs usw.) und unterstützt benutzerdefinierte Integritätsprüfungen für. CRDs
Der Zustand einer Anwendung wird durch all ihre Ressourcen bestimmt — wenn es eine Ressource gibtDegraded, ist es auch die Anwendung. Degraded
Weitere Informationen finden Sie unter Resource Health
Muster mit mehreren Clustern
Argo CD unterstützt zwei Hauptbereitstellungsmuster:
H ub-and-spoke — Führen Sie Argo CD auf einem dedizierten Management-Cluster aus, der auf mehreren Workload-Clustern bereitgestellt wird: * Zentrale Steuerung und Transparenz * Konsistente Richtlinien für alle Cluster * Eine Argo-CD-Instanz zur Verwaltung * Klare Trennung zwischen Steuerungsebene und Workloads
Pro Cluster — Führen Sie Argo CD auf jedem Cluster aus und verwalten Sie nur die Anwendungen dieses Clusters: * Clustertrennung (ein Fehler hat keine Auswirkungen auf andere) * Einfachere Vernetzung (keine clusterübergreifende Kommunikation) * Einfachere Ersteinrichtung (keine Clusterregistrierung)
Wählen Sie hub-and-spoke für Plattformteams, die viele Cluster verwalten, oder pro Cluster für unabhängige Teams oder wenn Cluster vollständig isoliert werden müssen.
Eine detaillierte Konfiguration mehrerer Cluster finden Sie unter. Überlegungen zu Argo CD
Projekte
Projekte bieten logische Gruppierung und Zugriffskontrolle für Anwendungen:
-
Quellenbeschränkungen — Beschränken Sie, welche Git-Repositorys verwendet werden können
-
Zielbeschränkungen — Beschränken Sie, welche Cluster und Namespaces als Ziel ausgewählt werden können
-
Ressourceneinschränkungen — Beschränken Sie, welche Kubernetes-Ressourcentypen bereitgestellt werden können
-
RBAC-Integration — Ordnen Sie Projekte AWS Identity Center-Benutzern und Gruppen zu IDs
Alle Anwendungen gehören zu einem Projekt. Wenn nicht angegeben, verwenden sie das default Projekt (für das keine Einschränkungen gelten). Erstellen Sie für die Produktion Projekte mit entsprechenden Einschränkungen.
Informationen zur Projektkonfiguration und zu RBAC-Mustern finden Sie unter. Argo-CD-Berechtigungen konfigurieren
Organisation des Repositoriums
Die meisten Teams verwenden eine verzeichnisbasierte Organisation mit Kustomize-Overlays oder Helm-Wertedateien für verschiedene Umgebungen:
my-app/ ├── base/ │ ├── deployment.yaml │ └── service.yaml └── overlays/ ├── dev/ │ └── kustomization.yaml ├── staging/ │ └── kustomization.yaml └── prod/ └── kustomization.yaml
Dieser Ansatz bietet Flexibilität und Klarheit und behält gleichzeitig alle Umgebungskonfigurationen in einem einzigen Repository bei.
Detaillierte Strukturmuster und bewährte Methoden für Repositorys finden Sie in der Dokumentation zu den bewährten Methoden von Argo CD
Synchronisierungsoptionen
Optimieren Sie das Synchronisierungsverhalten mit gängigen Optionen:
-
CreateNamespace=true— Automatisch einen Ziel-Namespace erstellen -
ServerSideApply=true- Verwenden Sie serverseitiges Anwenden für eine bessere Konfliktlösung -
SkipDryRunOnMissingResource=true- Überspringe den Testlauf, wenn er noch CRDs nicht existiert (nützlich für Kro-Instanzen)
spec: syncPolicy: syncOptions: - CreateNamespace=true - ServerSideApply=true
Eine vollständige Liste der Synchronisierungsoptionen finden Sie in der Dokumentation zu den Argo-CD-Synchronisierungsoptionen
Nächste Schritte
-
Repository-Zugriff konfigurieren- Git-Repository-Zugriff konfigurieren
-
Zielcluster registrieren- Registrieren Sie Zielcluster für die Bereitstellung
-
Anwendungen erstellen- Erstellen Sie Ihre erste Anwendung
-
Überlegungen zu Argo CD- EKS-spezifische Muster, Identity Center-Integration und Multi-Cluster-Konfiguration
-
Argo-CD-Dokumentation
— Umfassende Argo-CD-Dokumentation mit Sync-Hooks, Integritätsprüfungen und erweiterten Mustern