ACK-Überlegungen für EKS - 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.

ACK-Überlegungen für EKS

In diesem Thema werden wichtige Überlegungen zur Nutzung der EKS-Funktion für ACK behandelt, darunter die IAM-Konfiguration, Muster für mehrere Konten und die Integration mit anderen EKS-Funktionen.

IAM-Konfigurationsmuster

Die ACK-Fähigkeit verwendet eine IAM-Fähigkeitsrolle zur Authentifizierung. AWS Wählen Sie das richtige IAM-Muster, das Ihren Anforderungen entspricht.

Einfach: Eine einzige Capability-Rolle

Erteilen Sie der Capability-Rolle direkt alle erforderlichen Berechtigungen für Entwicklung, Tests oder einfache Anwendungsfälle.

Wann sollte Folgendes verwendet werden:

  • Erste Schritte mit ACK

  • Bereitstellungen mit einem einzigen Konto

  • Alle Ressourcen werden von einem Team verwaltet

  • Entwicklungs- und Testumgebungen

Beispiel: Fügen Sie Ihrer Capability Role S3- und RDS-Berechtigungen mit Bedingungen für die Kennzeichnung von Ressourcen hinzu:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["s3:*"], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestedRegion": ["us-west-2", "us-east-1"] } } }, { "Effect": "Allow", "Action": ["rds:*"], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestedRegion": ["us-west-2", "us-east-1"] }, } } ] }

Dieses Beispiel beschränkt die S3- und RDS-Operationen auf bestimmte Regionen und erfordert, dass RDS-Ressourcen über ein ManagedBy: ACK Tag verfügen.

Produktion: IAM-Rollenselektoren

Verwenden Sie in Produktionsumgebungen IAM-Rollenselektoren, um den Zugriff mit den geringsten Rechten und die Isolierung auf Namespace-Ebene zu implementieren.

Wann sollte Folgendes verwendet werden:

  • Produktionsumgebungen

  • Cluster mit mehreren Teams

  • Ressourcenverwaltung für mehrere Konten

  • Sicherheitsanforderungen mit den geringsten Rechten

  • Verschiedene Dienste benötigen unterschiedliche Berechtigungen

Vorteile:

  • Jeder Namespace erhält nur die Berechtigungen, die er benötigt

  • Teamisolierung — Team A kann die Berechtigungen von Team B nicht verwenden

  • Einfachere Prüfung und Einhaltung von Vorschriften

  • Erforderlich für kontenübergreifendes Ressourcenmanagement

Eine ausführliche Konfiguration des IAM-Rollenauswahlsystems finden Sie unter. ACK-Berechtigungen konfigurieren

Integration mit anderen EKS-Funktionen

GitOps mit Argo CD

Verwenden Sie die EKS-Funktion für Argo CD, um ACK-Ressourcen aus Git-Repositorys bereitzustellen und GitOps Workflows für das Infrastrukturmanagement zu ermöglichen.

Überlegungen:

  • Speichern Sie ACK-Ressourcen zusammen mit Anwendungsmanifesten für end-to-end GitOps

  • Organisieren Sie auf der Grundlage Ihrer Teamstruktur nach Umgebung, Service oder Ressourcentyp

  • Verwenden Sie die automatische Synchronisation von Argo CD für einen kontinuierlichen Abgleich

  • Aktivieren Sie das Bereinigen, um gelöschte Ressourcen automatisch zu entfernen

  • Ziehen Sie hub-and-spoke Muster für das Infrastrukturmanagement mehrerer Cluster in Betracht

GitOps bietet Prüfpfade, Rollback-Funktionen und deklaratives Infrastrukturmanagement. Weitere Informationen zu Argo CD finden Sie unter. Arbeiten mit Argo CD

Ressourcenzusammensetzung mit Kro

Verwenden Sie die EKS-Funktion für kro (Kube Resource Orchestrator), um mehrere ACK-Ressourcen in abstrakte und benutzerdefinierte Elemente auf höherer Ebene zusammenzustellen. APIs

Wann sollte Kro mit ACK verwendet werden:

  • Erstellen Sie wiederverwendbare Muster für gängige Infrastruktur-Stacks (Datenbank + Backup + Überwachung)

  • Erstellen Sie Self-Service-Plattformen mit vereinfachten Funktionen APIs für Anwendungsteams

  • Ressourcenabhängigkeiten verwalten und Werte zwischen Ressourcen übergeben (S3-Bucket-ARN an Lambda-Funktion)

  • Standardisieren Sie die Infrastrukturkonfigurationen teamübergreifend

  • Reduzieren Sie die Komplexität, indem Sie Implementierungsdetails hinter benutzerdefinierten Ressourcen verstecken

Beispielmuster:

  • Anwendungsstapel: S3-Bucket + SQS-Warteschlange + Benachrichtigungskonfiguration

  • Datenbank-Setup: RDS-Instanz + Parametergruppe + Sicherheitsgruppe + Geheimnisse

  • Netzwerk: VPC + Subnetze + Routentabellen + Sicherheitsgruppen

kro kümmert sich um die Reihenfolge der Abhängigkeiten, die Statusweiterleitung und das Lebenszyklusmanagement für zusammengesetzte Ressourcen. Weitere Informationen zu Kro finden Sie unter. Kro-Konzepte

Organisieren Sie Ihre Ressourcen

Organisieren Sie ACK-Ressourcen mithilfe von Kubernetes-Namespaces und AWS Ressourcen-Tags für eine bessere Verwaltung, Zugriffskontrolle und Kostenverfolgung.

Organisation des Namespaces

Verwenden Sie Kubernetes-Namespaces, um ACK-Ressourcen logisch nach Umgebung (Produktion, Staging, Entwicklung), Team (Plattform, Daten, ML) oder Anwendung zu trennen.

Vorteile:

  • RBAC mit Namespace-Gültigkeitsbereich für die Zugriffskontrolle

  • Legen Sie mithilfe von Anmerkungen Standardregionen pro Namespace fest

  • Einfachere Ressourcenverwaltung und Bereinigung

  • Logische Trennung im Einklang mit der Organisationsstruktur

Ressourcen-Markierung

EKS wendet automatisch Tags auf AWS Ressourcen an, die von ACK verwaltet werden, einschließlich der Funktionsressource ARN. Fügen Sie zusätzliche Tags für die Kostenzuweisung, die Nachverfolgung der Eigentumsverhältnisse und für organisatorische Zwecke hinzu.

Empfohlene Schlagworte:

  • Umwelt (Produktion, Inszenierung, Entwicklung)

  • Eigentümer des Teams oder der Abteilung

  • Kostenstelle für die Fakturierung

  • Name der Anwendung oder des Dienstes

  • ManagedBy: ACK (zur Identifizierung von ACK-verwalteten Ressourcen)

Migration von anderen Tools Infrastructure-as-code

Viele Unternehmen halten es für sinnvoll, Kubernetes über ihre Workload-Orchestrierung hinaus zu standardisieren. Durch die Migration des Infrastruktur- und AWS Ressourcenmanagements zu ACK können Sie das Infrastrukturmanagement mithilfe von Kubernetes zusammen mit Ihren Anwendungs-Workloads standardisieren. APIs

Vorteile der Standardisierung auf Kubernetes für die Infrastruktur:

  • Zentrale Informationsquelle: Verwalten Sie sowohl Anwendungen als auch Infrastruktur in Kubernetes und ermöglichen Sie so eine Praxis end-to-end GitOps

  • Einheitliches Tooling: Teams nutzen die Ressourcen und Tools von Kubernetes, anstatt mehrere Tools und Frameworks zu erlernen

  • Konsistenter Abgleich: ACK gleicht AWS Ressourcen kontinuierlich ab, wie es Kubernetes für Workloads tut, und erkennt und korrigiert Abweichungen im Vergleich zu unverzichtbaren Tools

  • Systemeigene Kompositionen: Wenn Kro und ACK zusammen verwendet werden, können AWS Ressourcen direkt in Anwendungs- und Ressourcenmanifesten referenziert werden, wobei Verbindungszeichenfolgen und zwischen Ressourcen weitergegeben werden ARNs

  • Vereinfachter Betrieb: Eine Steuerungsebene für Bereitstellungen, Rollbacks und Beobachtbarkeit im gesamten System

ACK unterstützt die Übernahme vorhandener AWS Ressourcen, ohne sie neu zu erstellen, und ermöglicht so eine Migration ohne Ausfallzeiten von CloudFormation Terraform oder Ressourcen außerhalb des Clusters.

Übernehmen Sie eine bestehende Ressource:

apiVersion: s3.services.k8s.aws/v1alpha1 kind: Bucket metadata: name: existing-bucket annotations: services.k8s.aws/adoption-policy: "adopt-or-create" spec: name: my-existing-bucket-name

Nach der Übernahme wird die Ressource von ACK verwaltet und kann über Kubernetes-Manifeste aktualisiert werden. Sie können schrittweise migrieren, Ressourcen nach Bedarf übernehmen und gleichzeitig die vorhandenen IaC-Tools für andere Ressourcen beibehalten.

ACK unterstützt auch schreibgeschützte Ressourcen. Bei Ressourcen, die von anderen Teams oder Tools verwaltet werden und die Sie referenzieren, aber nicht ändern möchten, kombinieren Sie die Übernahme mit der retain Löschrichtlinie und gewähren Sie nur IAM-Leseberechtigungen. Auf diese Weise können Anwendungen gemeinsam genutzte Infrastrukturen (VPCs, IAM-Rollen, KMS-Schlüssel) über Kubernetes APIs erkennen, ohne Änderungen riskieren zu müssen.

Weitere Informationen zur Nutzung von Ressourcen finden Sie unter. ACK-Konzepte

Richtlinien zum Löschen

Löschrichtlinien steuern, was mit AWS Ressourcen passiert, wenn Sie die entsprechende Kubernetes-Ressource löschen. Wählen Sie die richtige Richtlinie auf der Grundlage des Ressourcenlebenszyklus und Ihrer betrieblichen Anforderungen.

Löschen (Standard)

Die AWS Ressource wird gelöscht, wenn Sie die Kubernetes-Ressource löschen. Dadurch wird die Konsistenz zwischen Ihrem Cluster aufrechterhalten und sichergestellt AWS, dass sich keine Ressourcen ansammeln.

Wann sollte Delete verwendet werden:

  • Entwicklungs- und Testumgebungen, in denen Bereinigung wichtig ist

  • Kurzlebige Ressourcen, die an den Anwendungslebenszyklus gebunden sind (Testdatenbanken, temporäre Buckets)

  • Ressourcen, die die Anwendung nicht überdauern sollten (SQS-Warteschlangen, Cluster) ElastiCache

  • Kostenoptimierung — automatische Bereinigung ungenutzter Ressourcen

  • Umgebungen, die mit verwaltet werden GitOps , in denen das Entfernen von Ressourcen aus Git die Infrastruktur löschen sollte

Die standardmäßige Löschrichtlinie entspricht dem deklarativen Modell von Kubernetes: Was sich im Cluster befindet, entspricht dem, was sich darin befindet. AWS

Beibehalten

Die AWS Ressource wird beibehalten, wenn Sie die Kubernetes-Ressource löschen. Dies schützt wichtige Daten und ermöglicht es Ressourcen, ihre Kubernetes-Repräsentation zu überleben.

Wann sollte Retain verwendet werden:

  • Produktionsdatenbanken mit kritischen Daten, die Clusteränderungen überstehen müssen

  • Langfristige Speicherbereiche mit Compliance- oder Prüfanforderungen

  • Gemeinsam genutzte Ressourcen, die von mehreren Anwendungen oder Teams genutzt werden

  • Ressourcen werden auf verschiedene Verwaltungstools migriert

  • Notfallwiederherstellungsszenarien, in denen Sie die Infrastruktur erhalten möchten

  • Ressourcen mit komplexen Abhängigkeiten, die eine sorgfältige Außerbetriebnahme erfordern

apiVersion: rds.services.k8s.aws/v1alpha1 kind: DBInstance metadata: name: production-db annotations: services.k8s.aws/deletion-policy: "retain" spec: dbInstanceIdentifier: prod-db # ... configuration
Wichtig

Zurückbehaltene Ressourcen sind weiterhin mit AWS Kosten verbunden und müssen manuell gelöscht werden, AWS wenn sie nicht mehr benötigt werden. Verwenden Sie das Ressourcen-Tagging, um die zurückbehaltenen Ressourcen für die Bereinigung nachzuverfolgen.

Weitere Informationen zu Löschrichtlinien finden Sie unter. ACK-Konzepte

Upstream-Dokumentation

Ausführliche Informationen zur Verwendung von ACK finden Sie unter:

Nächste Schritte