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 Kro für EKS
In diesem Thema werden wichtige Überlegungen zur Verwendung der EKS-Funktion für KRO behandelt, einschließlich der Frage, wann die Ressourcenzusammensetzung, RBAC-Muster und die Integration mit anderen EKS-Funktionen verwendet werden sollten.
Wann sollte Kro verwendet werden
kro wurde für die Erstellung wiederverwendbarer und benutzerdefinierter Infrastrukturmuster entwickelt APIs , die das komplexe Ressourcenmanagement vereinfachen.
Verwenden Sie kro, wenn Sie:
-
Erstellen Sie Self-Service-Plattformen mit vereinfachten Funktionen APIs für Anwendungsteams
-
Standardisieren Sie die Infrastrukturmuster für alle Teams (Datenbank + Backup + Überwachung)
-
Verwalten Sie Ressourcenabhängigkeiten und geben Sie Werte zwischen Ressourcen weiter
-
Erstellen Sie benutzerdefinierte Abstraktionen, die die Komplexität der Implementierung verbergen
-
Stellen Sie mehrere ACK-Ressourcen zu übergeordneten Bausteinen zusammen
-
Ermöglichen Sie GitOps Workflows für komplexe Infrastruktur-Stacks
Verwenden Sie Kro nicht, wenn:
-
Verwaltung einfacher, eigenständiger Ressourcen (verwenden Sie ACK- oder Kubernetes-Ressourcen direkt)
-
Sie benötigen eine dynamische Laufzeitlogik (kro ist deklarativ, nicht zwingend erforderlich)
-
Ressourcen haben keine Abhängigkeiten oder eine gemeinsame Konfiguration
kro zeichnet sich durch die Schaffung von „gepflasterten Pfaden“ aus — eigensinnige, wiederverwendbare Muster, die es Teams leicht machen, komplexe Infrastrukturen korrekt bereitzustellen.
RBAC-Muster
kro ermöglicht die Trennung von Problemen zwischen Plattformteams, die Instanzen erstellen, ResourceGraphDefinitions und Anwendungsteams, die Instanzen erstellen.
Verantwortlichkeiten des Plattformteams
Plattformteams erstellen und verwalten ResourceGraphDefinitions (RGDs), die benutzerdefiniert definieren APIs.
Erforderliche Berechtigungen:
-
Erstellen, aktualisieren, löschen ResourceGraphDefinitions
-
Verwalten Sie die zugrunde liegenden Ressourcentypen (Bereitstellungen, Dienste, ACK-Ressourcen)
-
Zugriff auf alle Namespaces, in denen sie verwendet werden RGDs
Beispiel ClusterRole für ein Plattformteam:
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: platform-kro-admin rules: - apiGroups: ["kro.run"] resources: ["resourcegraphdefinitions"] verbs: ["*"] - apiGroups: ["*"] resources: ["*"] verbs: ["get", "list", "watch"]
Eine ausführliche RBAC-Konfiguration finden Sie unter. Kro-Berechtigungen konfigurieren
Verantwortlichkeiten des Anwendungsteams
Anwendungsteams erstellen Instanzen von benutzerdefinierten Ressourcen, die von definiert sind, RGDs ohne die zugrundeliegende Komplexität verstehen zu müssen.
Erforderliche Berechtigungen:
-
Instanzen von benutzerdefinierten Ressourcen erstellen, aktualisieren und löschen
-
Lesezugriff auf ihren Namespace
-
Kein Zugriff auf zugrunde liegende Ressourcen oder RGDs
Vorteile:
-
Teams verwenden einfache, hochrangige APIs
-
Plattformteams kontrollieren die Implementierungsdetails
-
Geringeres Risiko einer Fehlkonfiguration
-
Schnelleres Onboarding für neue Teammitglieder
Integration mit anderen EKS-Funktionen
Zusammenstellung von ACK-Ressourcen
Kro ist besonders leistungsfähig, wenn es mit ACK kombiniert wird, um Infrastrukturmuster zu erstellen.
Allgemeine Muster:
-
Anwendung mit Speicher: S3-Bucket + SQS-Warteschlange + Benachrichtigungskonfiguration
-
Datenbank-Stack: RDS-Instanz + Parametergruppe + Sicherheitsgruppe + Secrets Manager Secret
-
Netzwerk: VPC + Subnetze + Routentabellen + Sicherheitsgruppen + NAT-Gateways
-
Datenverarbeitung mit Speicher: EC2 Instanz + EBS-Volumes + IAM-Instanzprofil
kro kümmert sich um die Reihenfolge der Abhängigkeiten, übergibt Werte zwischen Ressourcen (wie Zeichenketten ARNs und Verbindungszeichenfolgen) und verwaltet den gesamten Lebenszyklus als eine einzige Einheit.
Beispiele für das Zusammenstellen von ACK-Ressourcen finden Sie unter. ACK-Konzepte
GitOps mit Argo CD
Verwenden Sie die EKS-Funktion für Argo CD, um sowohl RGDs Instanzen als auch Instanzen aus Git-Repositorys bereitzustellen.
Organisation des Repositorys:
-
Plattform-Repo: Enthält, die vom Plattformteam ResourceGraphDefinitions verwaltet werden
-
Anwendungs-Repos: Enthalten Instanzen von benutzerdefinierten Ressourcen, die von App-Teams verwaltet werden
-
Gemeinsames Repo: Enthält RGDs sowohl als auch Instanzen für kleinere Organisationen
Überlegungen:
-
RGDs Vor den Instanzen bereitstellen (Argo CD Sync Waves kann helfen)
-
Verwenden Sie separate Argo-CD-Projekte für Plattform- und Anwendungsteams
-
Das Plattformteam kontrolliert den Zugriff auf das RGD-Repository
-
Anwendungsteams haben nur Lesezugriff auf RGD-Definitionen
Weitere Informationen zu Argo CD finden Sie unter. Arbeiten mit Argo CD
Organisieren ResourceGraphDefinitions
Organisieren Sie RGDs nach Zweck, Komplexität und Eigentümerschaft.
Nach Zweck:
-
Infrastruktur: Datenbank-Stacks, Netzwerke, Speicher
-
Anwendung: Web-Apps APIs, Batch-Jobs
-
Plattform: Gemeinsame Dienste, Überwachung, Protokollierung
Nach Komplexität:
-
Einfach: 2-3 Ressourcen mit minimalen Abhängigkeiten
-
Moderat: 5-10 Ressourcen mit einigen Abhängigkeiten
-
Komplex: Mehr als 10 Ressourcen mit komplexen Abhängigkeiten
Benennungskonventionen:
-
Verwenden Sie beschreibende Namen:
webapp-with-database,s3-notification-queue -
Fügen Sie bei wichtigen Änderungen die Version in den Namen ein:
webapp-v2 -
Verwenden Sie konsistente Präfixe für verwandte RGDs:
platform-,app-
Namespace-Strategie:
-
RGDs sind clusterbezogen (nicht namespaces)
-
Instanzen haben einen Namespace
-
Verwenden Sie Namespace-Selektoren, RGDs um zu steuern, wo Instanzen erstellt werden können
Versionierung und Updates
Planen Sie die RGD-Entwicklung und die Instanzmigration ein.
RGD-Aktualisierungen:
-
Wichtige Änderungen: RGD wurde bereits aktualisiert (optionale Felder und neue Ressourcen mit includeWhen hinzufügen)
-
Bahnbrechende Änderungen: Erstelle eine neue RGD mit einem anderen Namen (webapp-v2)
-
Veraltet: Veraltete Version mit Anmerkungen markieren, Zeitplan für die Migration RGDs mitteilen
Migration von Instanzen:
-
Erstellen Sie neue Instanzen mit aktualisiertem RGD
-
Stellen Sie sicher, dass neue Instanzen korrekt funktionieren
-
Löschen Sie alte Instanzen
-
kro verarbeitet die Aktualisierungen der zugrunde liegenden Ressourcen automatisch
Bewährte Verfahren:
-
Testen Sie RGD-Änderungen zunächst in Umgebungen außerhalb der Produktion
-
Verwenden Sie für größere Änderungen die semantische Versionierung in RGD-Namen
-
Dokumentieren Sie wichtige Änderungen und Migrationspfade
-
Stellen Sie Migrationsbeispiele für Anwendungsteams bereit
Validierung und Testen
Validieren RGDs Sie vor der Bereitstellung in der Produktion.
Strategien zur Validierung:
-
Schemavalidierung: kro validiert die RGD-Struktur automatisch
-
Testinstanzen: Erstellen Sie Testinstanzen in Entwicklungs-Namespaces
-
Integrationstests: Stellen Sie sicher, dass zusammengesetzte Ressourcen zusammenarbeiten
-
Durchsetzung von Richtlinien: Setzen Sie Zugangscontroller ein, um Unternehmensstandards durchzusetzen
Häufig zu testende Probleme:
-
Abhängigkeiten und Reihenfolge von Ressourcen
-
Werteübergabe zwischen Ressourcen (CEL-Ausdrücke)
-
Bedingte Einbeziehung von Ressourcen (includeWhen)
-
Weitergabe des Status anhand der zugrunde liegenden Ressourcen
-
RBAC-Berechtigungen für die Instanzerstellung
Upstream-Dokumentation
Ausführliche Informationen zur Verwendung von kro finden Sie unter
-
Erste Schritte mit Kro
— Erstellen ResourceGraphDefinitions -
CEL-Ausdrücke
— CEL-Ausdrücke schreiben -
kro Guides
- Kompositionsmuster für Fortgeschrittene -
Problembehandlung — Problembehebung
und Debugging
Nächste Schritte
-
Kro-Berechtigungen konfigurieren- Konfigurieren Sie RBAC für Plattform- und Anwendungsteams
-
Kro-Konzepte- Verstehen Sie die KRO-Konzepte und den Ressourcenlebenszyklus
-
Probleme mit KRO-Funktionen beheben- Beheben Sie Kro-Probleme
-
ACK-Konzepte- Erfahren Sie mehr über ACK-Ressourcen für die Komposition
-
Arbeiten mit Argo CD- Bereitstellung RGDs und Instanzen mit GitOps