View a markdown version of this page

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 unter, 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 Verwendung der EKS-Funktion für ACK behandelt, darunter die IAM-Konfiguration, Muster mit mehreren Konten und die Integration mit anderen EKS-Funktionen.

IAM-Konfigurationsmuster

Die ACK-Funktion verwendet eine IAM-Capability-Rolle zur Authentifizierung. AWS Wählen Sie das richtige IAM-Muster, das Ihren Anforderungen entspricht.

Ganz einfach: Eine einzige Funktionsrolle

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

Wann sollte Folgendes verwendet werden:

  • Erste Schritte mit ACK

  • Single-account Bereitstellungen

  • Alle Ressourcen werden von einem Team verwaltet

  • Entwicklungs- und Testumgebungen

Beispiel: Fügen Sie Ihrer Capability-Rolle 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"], "aws:ResourceTag/ManagedBy": "ACK" } } } ] }

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

Produktion: IAM Role Selectors

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

Wann sollte Folgendes verwendet werden:

  • Produktionsumgebungen

  • Multi-team Cluster

  • Multi-account Verwaltung der Ressourcen

  • Least-privilege Sicherheitsanforderungen

  • 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 die kontoübergreifende Ressourcenverwaltung

Eine ausführliche Konfiguration von IAM Role Selector 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 so GitOps Workflows für das Infrastrukturmanagement zu ermöglichen.

Überlegungen:

  • Speichern Sie ACK-Ressourcen zusammen mit Anwendungsmanifesten für eine durchgängige Nutzung GitOps

  • Organisieren Sie anhand Ihrer Teamstruktur nach Umgebung, Service oder Ressourcentyp

  • Verwenden Sie die automatische Synchronisierung 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 mit mehreren Clustern in Betracht

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

Zusammensetzung der Ressourcen mit Kro

Verwenden Sie die EKS-Funktion für kro (Kube Resource Orchestrator), um mehrere ACK-Ressourcen zu übergeordneten Abstraktionen und benutzerdefinierten APIs zusammenzustellen.

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 APIs für Anwendungsteams

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

  • Standardisieren Sie die Infrastrukturkonfigurationen teamübergreifend

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

Beispielmuster:

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

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

  • Netzwerk: VPC + Subnetze + Routing-Tabellen + Sicherheitsgruppen

kro kümmert sich um die Reihenfolge der Abhängigkeiten, die Statusübertragung 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 von Namespaces

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

Vorteile:

  • Namespace-scoped RBAC für die Zutrittskontrolle

  • Legen Sie mithilfe von Anmerkungen Standardregionen pro Namespace fest

  • Einfachere Ressourcenverwaltung und Bereinigung

  • Logische Trennung im Einklang mit der Organisationsstruktur

Ressourcen-Markierung

Die EKS-ACK-Funktion wendet automatisch Standard-Tags auf alle AWS Ressourcen an, die sie erstellt. Diese Tags unterscheiden sich von selbstverwalteten ACK-Tags und bieten eine verbesserte Rückverfolgbarkeit.

Von der Funktion angewendete Standard-Tags:

Tag-Schlüssel Description

eks:controller-version

Die Version des ACK-Controllers

eks:kubernetes-namespace

Der Kubernetes-Namespace der ACK-Ressource

eks:kubernetes-resource-name

Der Name der Kubernetes-Ressource

eks:kubernetes-api-group

Die Kubernetes-API-Gruppe (zum Beispiel) s3.services.k8s.aws

eks:eks-capability-arn

Der ARN der EKS-ACK-Fähigkeit

Anmerkung

Self-managed ACK verwendet verschiedene Standard-Tags: services.k8s.aws/controller-version undservices.k8s.aws/namespace. Die Tags der Funktion verwenden das eks: Präfix aus Gründen der Konsistenz mit anderen EKS-Funktionen.

Zusätzliche empfohlene Tags:

Fügen Sie benutzerdefinierte Stichwörter für Kostenzuweisung, Eigentumsnachverfolgung und organisatorische Zwecke hinzu:

  • Umwelt (Produktion, Inszenierung, Entwicklung)

  • Verantwortung für das Team oder die Abteilung

  • Kostenstelle für die Rechnungszuweisung

  • Name der Anwendung oder des Dienstes

Migration von anderen Infrastructure-as-code Tools

Viele Unternehmen sehen in der Standardisierung von Kubernetes einen Mehrwert, der über ihre Workload-Orchestrierung hinausgeht. Durch die Migration der Infrastruktur- und AWS Ressourcenverwaltung zu ACK können Sie das Infrastrukturmanagement standardisieren, indem Sie neben Ihren Anwendungsworkloads auch Kubernetes-APIs verwenden.

Vorteile der Standardisierung auf Kubernetes für die Infrastruktur:

  • Eine zentrale Informationsquelle: Verwalten Sie sowohl Anwendungen als auch Infrastruktur in Kubernetes und ermöglichen Sie so eine durchgängige Praxis GitOps

  • Einheitliche Tools: Teams verwenden Kubernetes-Ressourcen und -Tools, anstatt mehrere Tools und Frameworks zu erlernen

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

  • Native Kompositionen: Wenn Kro und ACK zusammen verwendet werden, können Sie direkt in Anwendungs- und AWS Ressourcenmanifesten auf Ressourcen verweisen und Verbindungszeichenfolgen und ARNs zwischen Ressourcen weitergeben

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

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

Eine vorhandene Ressource übernehmen:

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 Einführung 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. Für Ressourcen, die von anderen Teams oder Tools verwaltet werden und die Sie referenzieren, aber nicht ändern möchten, kombinieren Sie die Adoption 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 Einführung 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 (Standardeinstellung)

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

Wann sollte „Löschen“ verwendet werden:

  • Entwicklungs- und Testumgebungen, in denen die Bereinigung wichtig ist

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

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

  • Kostenoptimierung — automatische Bereinigung ungenutzter Ressourcen

  • Umgebungen, die so verwaltet werden GitOps , dass durch das Entfernen von Ressourcen aus Git die Infrastruktur gelöscht werden sollte

Die standardmäßige Löschrichtlinie entspricht dem deklarativen Modell von Kubernetes: Was sich im Cluster befindet, entspricht dem, was darin existiert. 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

  • Long-term Speicher-Buckets mit Konformitäts- 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ückgehaltenen Ressourcen für die Bereinigung nachzuverfolgen.

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

Upstream-Dokumentation

Detaillierte Informationen zur Verwendung von ACK finden Sie auf den folgenden Seiten der ACK-Website:

Nächste Schritte