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
Informieren Sie sich über wichtige Überlegungen zur Verwendung der verwalteten EKS-Funktion für KRO, 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 Infrastrukturmuster und benutzerdefinierter APIs entwickelt, die das komplexe Ressourcenmanagement vereinfachen.
Verwenden Sie kro, wenn Sie:
-
Erstellen Sie Self-Service-Plattformen mit vereinfachten APIs für Anwendungsteams
-
Standardisieren Sie die Infrastrukturmuster teamübergreifend (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 benutzerdefinierte APIs definieren.
Erforderliche Berechtigungen:
-
Erstellen, aktualisieren, löschen ResourceGraphDefinitions
-
Verwalten Sie die zugrunde liegenden Ressourcentypen (Bereitstellungen, Dienste, ACK-Ressourcen)
-
Zugriff auf alle Namespaces, in denen RGDs verwendet werden
Beispiel für ein Plattformteam: ClusterRole
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 durch RGDs definiert werden, ohne die zugrunde liegende 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 APIs auf hoher Ebene
-
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 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 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 sowohl RGDs als auch Instanzen für kleinere Organisationen
Überlegungen:
-
Stellen Sie RGDs vor den Instanzen bereit (Argo CD Sync Waves können 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: Über 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 in RGDs, um zu steuern, wo Instanzen erstellt werden können
Versionierung und Updates
Planen Sie die RGD-Entwicklung und die Instanzmigration ein.
RGD-Aktualisierungen:
-
Non-breaking Änderungen: RGD an Ort und Stelle aktualisieren (optionale Felder hinzufügen, neue Ressourcen mit includeWhen hinzufügen)
-
Bahnbrechende Änderungen: Erstelle ein neues RGD mit einem anderen Namen (webapp-v2)
-
Veraltet: Markiere alte RGDs mit Anmerkungen, teile den Zeitplan für die Migration mit
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 Produktionsumgebung
-
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 Sie RGDs, bevor Sie sie in der Produktion einsetzen.
Strategien zur Validierung:
-
Schemavalidierung: kro validiert die RGD-Struktur automatisch
-
Dry-run Instanzen: 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 — Problembehandlung
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- Stellen Sie RGDs und Instanzen bereit mit GitOps