Überlegungen zu Argo CD - 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.

Überlegungen zu Argo CD

In diesem Thema werden wichtige Überlegungen zur Nutzung der EKS-Funktion für Argo CD behandelt, darunter Planung, Berechtigungen, Authentifizierung und Bereitstellungsmuster für mehrere Cluster.

Planung

Beachten Sie vor der Bereitstellung von Argo CD Folgendes:

Repository-Strategie: Legen Sie fest, wo Ihre Anwendungsmanifeste gespeichert werden (CodeCommit,, GitHub GitLab, Bitbucket). Plane deine Repository-Struktur und Branching-Strategie für verschiedene Umgebungen.

Authentifizierungsmethode: Entscheiden Sie, ob Sie AWS Identity Center für SSO verwenden oder Argo CD-Benutzer direkt verwalten möchten. SSO wird für Produktionsumgebungen empfohlen.

RBAC-Strategie: Planen Sie, welche Teams oder Benutzer Administrator-, Redakteur- oder Viewer-Zugriff haben sollen. Ordnen Sie diese AWS Identity Center-Gruppen oder Argo-CD-Rollen zu.

Multi-Cluster-Architektur: Stellen Sie fest, ob Sie mehrere Cluster von einer einzigen Argo-CD-Instance aus verwalten möchten. Erwägen Sie die Verwendung eines dedizierten Management-Clusters für Argo CD.

Organisation der Anwendungen: Planen Sie, wie Sie Anwendungen strukturieren und ApplicationSets. Erwägen Sie die Verwendung von Projekten, um Anwendungen nach Team oder Umgebung zu organisieren.

Synchronisierungsrichtlinien: Entscheiden Sie, ob Anwendungen automatisch synchronisiert werden sollen oder ob eine manuelle Genehmigung erforderlich ist. Automatisierte Synchronisation ist in der Entwicklung üblich, manuelle in der Produktion.

Berechtigungen

Ausführliche Informationen zu IAM-Fähigkeitsrollen, Vertrauensrichtlinien und bewährten Sicherheitsmethoden finden Sie unter IAM-Rolle für Amazon EKS-Funktionen undSicherheitsüberlegungen für EKS-Funktionen.

Überblick über die IAM-Fähigkeitsrollen

Wenn Sie eine Argo-CD-Funktionsressource erstellen, geben Sie eine IAM-Fähigkeitsrolle an. Im Gegensatz zu ACK verwaltet Argo CD hauptsächlich Kubernetes-Ressourcen, nicht Ressourcen direkt. AWS Die IAM-Rolle ist jedoch erforderlich für:

  • Zugriff auf private Git-Repositorys in CodeCommit

  • Integration mit AWS Identity Center zur Authentifizierung

  • Zugreifen auf AWS Geheimnisse im Secrets Manager (falls konfiguriert)

  • Clusterübergreifende Bereitstellungen auf anderen EKS-Clustern

CodeCommit Integration

Wenn Sie CodeCommit Repositorys verwenden, fügen Sie eine Richtlinie mit Leseberechtigungen hinzu:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codecommit:GitPull" ], "Resource": "*" } ] }
Wichtig

Beschränken Sie das Resource Feld für Produktionszwecke auf ein bestimmtes Repository, ARNs anstatt es zu verwenden"*".

Beispiel:

"Resource": "arn:aws:codecommit:us-west-2:111122223333:my-app-repo"

Dadurch wird der Zugriff von Argo CD nur auf die Repositorys beschränkt, die es verwalten muss.

Integration von Secrets Manager

Wenn Sie Repository-Anmeldeinformationen in Secrets Manager speichern, fügen Sie eine Richtlinie mit Leseberechtigungen hinzu:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret" ], "Resource": "arn:aws:secretsmanager:*:*:secret:argocd/*" } ] }

Grundlegende Einrichtung

Für die grundlegende Funktionalität von Argo CD mit öffentlichen Git-Repositorys sind außer der Vertrauensrichtlinie keine zusätzlichen IAM-Richtlinien erforderlich.

Authentifizierung

AWS Identity Center-Integration

Die verwaltete Funktion von Argo CD lässt sich direkt in AWS Identity Center (früher AWS SSO) integrieren, sodass Sie Ihren vorhandenen Identitätsanbieter für die Authentifizierung verwenden können.

Wenn Sie die AWS Identity Center-Integration konfigurieren:

  1. Benutzer greifen über die EKS-Konsole auf die Benutzeroberfläche von Argo CD zu

  2. Sie authentifizieren sich mithilfe von AWS Identity Center (das eine Verbindung zu Ihrem Corporate Identity Provider herstellen kann)

  3. AWS Identity Center stellt Benutzer- und Gruppeninformationen für Argo CD bereit

  4. Argo CD ordnet Benutzer und Gruppen basierend auf Ihrer Konfiguration RBAC-Rollen zu

  5. Benutzer sehen nur die Anwendungen und Ressourcen, für deren Zugriff sie berechtigt sind

Vereinfachung des Zugriffs mit Identity Center-Berechtigungssätzen

AWS Identity Center bietet bei der Arbeit mit Argo CD zwei unterschiedliche Authentifizierungspfade:

Argo CD API-Authentifizierung: Identity Center bietet SSO-Authentifizierung für die Benutzeroberfläche und API von Argo CD. Dies wird über die RBAC-Rollenzuordnungen der Argo-CD-Funktion konfiguriert.

EKS-Clusterzugriff: Die Argo-CD-Funktion verwendet die vom Kunden bereitgestellte IAM-Rolle, um sich über Zugriffseinträge bei EKS-Clustern zu authentifizieren. Diese Zugriffseinträge können manuell konfiguriert werden, um Berechtigungen hinzuzufügen oder zu entfernen.

Sie können Identity Center-Berechtigungssätze verwenden, um das Identitätsmanagement zu vereinfachen, indem Sie einer einzigen Identität den Zugriff auf Argo CD- und EKS-Cluster ermöglichen. Dies reduziert den Aufwand, da Sie nur eine Identität auf beiden Systemen verwalten müssen, anstatt separate Anmeldeinformationen für den Argo-CD-Zugriff und den Clusterzugriff zu verwalten.

RBAC-Rollenzuordnungen

Argo CD verfügt über integrierte Rollen, die Sie AWS Identity Center-Benutzern und Gruppen zuordnen können:

ADMIN: Voller Zugriff auf alle Anwendungen und Einstellungen. Kann Anwendungen erstellen, aktualisieren und löschen. Kann die Argo-CD-Konfiguration verwalten.

EDITOR: Kann Anwendungen erstellen und ändern. Die Argo-CD-Einstellungen können nicht geändert oder Anwendungen gelöscht werden.

VIEWER: Schreibgeschützter Zugriff auf Anwendungen. Kann den Status und den Verlauf der Bewerbung einsehen. Es können keine Änderungen vorgenommen werden.

Anmerkung

Bei Rollennamen wird zwischen Groß- und Kleinschreibung unterschieden und sie müssen in Großbuchstaben geschrieben werden (ADMIN, EDITOR, VIEWER).

Wichtig

Die Integration von EKS Capabilities in AWS Identity Center unterstützt bis zu 1.000 Identitäten pro Argo-CD-Funktion. Eine Identität kann ein Benutzer oder eine Gruppe sein.

Bereitstellungen mit mehreren Clustern

Die verwaltete Argo-CD-Funktion unterstützt Bereitstellungen mit mehreren Clustern, sodass Sie Anwendungen für Entwicklungs-, Staging- und Produktionscluster von einer einzigen Argo-CD-Instance aus verwalten können.

So funktioniert Multi-Cluster

Wenn Sie zusätzliche Cluster bei Argo CD registrieren:

  1. Sie erstellen Clustergeheimnisse, die per ARN auf EKS-Zielcluster verweisen

  2. Sie erstellen Anwendungen oder ApplicationSets die auf verschiedene Cluster abzielen

  3. Argo CD stellt eine Verbindung zu jedem Cluster her, um Anwendungen bereitzustellen und Ressourcen zu überwachen

  4. Sie können alle Cluster von einer einzigen Argo CD-Benutzeroberfläche aus anzeigen und verwalten

Voraussetzungen für Multi-Cluster

Bevor Sie weitere Cluster registrieren:

  • Erstellen Sie einen Access-Eintrag auf dem Zielcluster für die Argo-CD-Capability-Rolle

  • Stellen Sie die Netzwerkkonnektivität zwischen der Argo-CD-Funktion und den Zielclustern sicher

  • Überprüfen Sie die IAM-Berechtigungen für den Zugriff auf die Zielcluster

Registrieren Sie einen Cluster

Registrieren Sie Cluster mithilfe von Kubernetes Secrets im argocd Namespace.

Rufen Sie den Zielcluster-ARN ARN. region-codeErsetzen Sie es durch die AWS Region, in der sich Ihr Zielcluster befindet, und target-cluster ersetzen Sie es durch den Namen Ihres Zielclusters.

aws eks describe-cluster \ --region region-code \ --name target-cluster \ --query 'cluster.arn' \ --output text

Erstellen Sie mit dem Cluster-ARN ein Cluster-Geheimnis:

apiVersion: v1 kind: Secret metadata: name: target-cluster namespace: argocd labels: argocd.argoproj.io/secret-type: cluster type: Opaque stringData: name: target-cluster server: arn:aws:eks:us-west-2:111122223333:cluster/target-cluster project: default
Wichtig

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

Wenden Sie das Geheimnis an:

kubectl apply -f cluster-secret.yaml

Access Entry auf dem Zielcluster konfigurieren

Der Zielcluster muss über einen Access-Eintrag verfügen, der der Argo-CD-Capability-Rolle die Berechtigung zur Bereitstellung von Anwendungen erteilt. region-codeErsetzen Sie es durch die AWS Region, in der sich Ihr Zielcluster befindet, target-cluster ersetzen Sie es durch den Namen Ihres Zielclusters und ersetzen Sie den ARN durch den ARN Ihrer Argo-CD-Funktionsrolle.

aws eks create-access-entry \ --region region-code \ --cluster-name target-cluster \ --principal-arn arn:aws:iam::[.replaceable]111122223333:role/ArgoCDCapabilityRole \ --type STANDARD \ --kubernetes-groups system:masters
Anmerkung

Für den Einsatz in der Produktion sollten Sie erwägen, restriktivere Kubernetes-Gruppen anstelle von zu verwenden. system:masters

Privater Cluster-Zugriff

Die verwaltete Argo-CD-Funktion kann auf vollständig privaten EKS-Clustern bereitgestellt werden, ohne dass VPC-Peering oder eine spezielle Netzwerkkonfiguration erforderlich sind. AWS verwaltet automatisch die Konnektivität zwischen der Argo-CD-Funktion und privaten Remote-Clustern.

Kontenübergreifende Bereitstellungen

Für kontoübergreifende Bereitstellungen fügen Sie die Argo CD IAM Capability Role aus dem Quellkonto zum EKS-Zugriffseintrag des Zielclusters hinzu:

  1. Erstellen Sie im Zielkonto einen Access-Eintrag auf dem EKS-Zielcluster

  2. Verwenden Sie den Argo CD IAM Capability Role ARN aus dem Quellkonto als Principal

  3. Konfigurieren Sie die entsprechenden Kubernetes-RBAC-Berechtigungen für den Access-Eintrag

  4. Registrieren Sie den Zielcluster in Argo CD mit seinem EKS-Cluster-ARN

Es ist keine zusätzliche IAM-Rollenerstellung oder Konfiguration von Vertrauensrichtlinien erforderlich — EKS Access Entries kümmern sich um den kontoübergreifenden Zugriff.

Best Practices

Verwenden Sie deklarative Quellen als Informationsquelle: Speichern Sie alle Ihre Anwendungsmanifeste in Git-Repositorys, Helm-Registern oder OCI-Images, um Versionskontrolle, Audit-Trails und Zusammenarbeit zu ermöglichen.

Richtiges RBAC implementieren: Verwenden Sie die AWS Identity Center-Integration, um zu kontrollieren, wer auf Anwendungen in Argo CD zugreifen und diese verwalten kann. Argo CD unterstützt eine differenzierte Zugriffskontrolle auf Ressourcen innerhalb von Anwendungen (Deployments, Pods, Secrets). ConfigMaps

Verwendung ApplicationSets für Bereitstellungen in mehreren Umgebungen: Wird verwendet, ApplicationSets um Anwendungen in mehreren Clustern oder Namespaces mit unterschiedlichen Konfigurationen bereitzustellen.

Lebenszyklusmanagement

Richtlinien zur Anwendungssynchronisierung

Steuern Sie, wie Argo CD Anwendungen synchronisiert:

Manuelle Synchronisierung: Anwendungen müssen manuell genehmigt werden, um Änderungen zu synchronisieren. Für Produktionsumgebungen empfohlen.

Automatische Synchronisierung: Anwendungen werden automatisch synchronisiert, wenn Git-Änderungen erkannt werden. Häufig in Entwicklungs- und Staging-Umgebungen.

Selbstheilung: Manuelle Änderungen am Cluster werden automatisch rückgängig gemacht. Stellt sicher, dass der Clusterstatus mit Git übereinstimmt.

Bereinigen: Automatisches Löschen von Ressourcen, die aus Git entfernt wurden. Verwenden Sie dies mit Vorsicht, da dadurch Ressourcen gelöscht werden können.

Integrität der Anwendung

Argo CD überwacht kontinuierlich den Zustand der Anwendung:

  • Fehlerfrei: Alle Ressourcen laufen wie erwartet

  • Fortschritt: Ressourcen werden erstellt oder aktualisiert

  • Eingeschränkt: Einige Ressourcen sind nicht funktionsfähig

  • Ausgesetzt: Die Anwendung wurde angehalten

  • Fehlt: Ressourcen fehlen im Cluster

Synchronisieren Sie Fenster

Konfigurieren Sie Synchronisierungsfenster, um zu steuern, wann Anwendungen synchronisiert werden können:

  • Synchronisierungen nur während Wartungsfenstern zulassen

  • Blockieren Sie Synchronisierungen während der Geschäftszeiten

  • Planen Sie automatische Synchronisierungen für bestimmte Zeiten

  • Verwenden Sie Synchronisierungsfenster für außergewöhnliche Szenarien, in denen Sie alle Synchronisierungen vorübergehend beenden müssen

Webhook-Konfiguration für eine schnellere Synchronisierung

Standardmäßig fragt Argo CD alle 6 Minuten Git-Repositorys ab, um Änderungen zu erkennen. Für reaktionsschnellere Bereitstellungen konfigurieren Sie Git-Webhooks so, dass sie sofortige Synchronisierungen auslösen, wenn Änderungen übertragen werden.

Webhooks bieten mehrere Vorteile:

  • Sofortige Synchronisierungsreaktion, wenn Code übertragen wird (Sekunden statt Minuten)

  • Reduzierter Mehraufwand für Abfragen und verbesserte Systemleistung

  • Effizientere Nutzung von API-Ratenbegrenzungen

  • Bessere Benutzererfahrung mit schnellerem Feedback

Webhook-Endpunkt

Die Argo-CD-Funktion bietet einen Webhook-Endpunkt für den Empfang von Git-Benachrichtigungen. Suchen Sie die Webhook-URL in der EKS-Konsole auf der Registerkarte Capabilities Ihres Clusters oder rufen Sie sie mit der AWS CLI ab:

aws eks describe-capability \ --cluster-name my-cluster \ --capability-name my-argocd \ --query 'capability.configuration.argoCd.webhookUrl' \ --output text \ --region region-code

Webhooks nach Git-Anbieter konfigurieren

GitHub: Fügen Sie in Ihren Repository-Einstellungen einen Webhook mit der Argo CD-Webhook-URL hinzu. Stellen Sie den Inhaltstyp auf ein application/json und wählen Sie „Nur das Push-Ereignis“.

GitLab: Fügen Sie in Ihren Projekteinstellungen einen Webhook mit der Argo CD-Webhook-URL hinzu. Aktivieren Sie „Push-Ereignisse“ und optional „Tag-Push-Ereignisse“.

Bitbucket: Fügen Sie in Ihren Repository-Einstellungen einen Webhook mit der Argo CD-Webhook-URL hinzu. Wählen Sie „Repository-Push“ als Auslöser aus.

CodeCommit: Erstellen Sie eine EventBridge Amazon-Regel, die bei Änderungen des CodeCommit Repository-Status ausgelöst wird und Benachrichtigungen an den Argo CD-Webhook-Endpunkt sendet.

Eine ausführliche Anleitung zur Webhook-Konfiguration finden Sie unter Argo CD Webhook-Konfiguration.

Anmerkung

Webhooks ergänzen das Polling — sie ersetzen es nicht. Argo CD fragt weiterhin Repositorys als Ausweichmechanismus für den Fall ab, dass Webhook-Benachrichtigungen übersehen werden.

Nächste Schritte