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.
Erstellen Sie eine Kro-Fähigkeit mit der CLI AWS
In diesem Thema wird beschrieben, wie Sie mit der CLI eine KRO-Funktion (Kube Resource Orchestrator) erstellen. AWS
Voraussetzungen
-
AWS CLI — Version
2.12.3oder höher. Führen Sie den Befehl aus, um Ihre Version zu überprüfenaws --version. Weitere Informationen finden Sie im Benutzerhandbuch für die AWS Befehlszeilenschnittstelle unter Installation. -
kubectl– Ein Befehlszeilentool für die Arbeit mit Kubernetes-Clustern. Weitere Informationen finden Sie unter kubectl und eksctl einrichten.
Schritt 1: Erstellen Sie eine IAM-Capability-Rolle
Erstellen Sie eine Vertrauensrichtliniendatei:
cat > kro-trust-policy.json << 'EOF' { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "capabilities.eks.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:TagSession" ] } ] } EOF
Erstellen Sie die IAM-Rolle:
aws iam create-role \ --role-name KROCapabilityRole \ --assume-role-policy-document file://kro-trust-policy.json
Anmerkung
Im Gegensatz zu ACK und Argo CD benötigt kro keine zusätzlichen IAM-Berechtigungen. kro arbeitet vollständig innerhalb Ihres Clusters und führt keine API-Aufrufe durch. AWS Die Rolle wird nur benötigt, um die Vertrauensstellung mit dem EKS-Capabilities Service herzustellen.
Schritt 2: Erstellen Sie die Kro-Fähigkeit
Erstellen Sie die Kro-Capability-Ressource auf Ihrem Cluster. region-codeErsetzen Sie es durch die AWS Region, in der sich Ihr Cluster befindet (z. B.us-west-2), und my-cluster durch Ihren Clusternamen.
aws eks create-capability \ --regionregion-code\ --cluster-namemy-cluster\ --capability-name my-kro \ --type KRO \ --role-arn arn:aws:iam::$(aws sts get-caller-identity --query Account --output text):role/KROCapabilityRole \ --delete-propagation-policy RETAIN
Der Befehl wird sofort zurückgegeben, aber es dauert einige Zeit, bis die Funktion aktiv wird, da EKS die erforderliche Fähigkeitsinfrastruktur und die erforderlichen Komponenten erstellt. EKS installiert die benutzerdefinierten Kubernetes-Ressourcendefinitionen, die sich auf diese Funktion beziehen, in Ihrem Cluster, während dieser erstellt wird.
Anmerkung
Wenn Sie eine Fehlermeldung erhalten, dass der Cluster nicht existiert oder Sie keine Berechtigungen haben, überprüfen Sie Folgendes:
-
Der Clustername ist korrekt
-
Ihre AWS CLI ist für die richtige Region konfiguriert
-
Sie verfügen über die erforderlichen IAM-Berechtigungen
Schritt 3: Stellen Sie sicher, dass die Funktion aktiv ist
Warten Sie, bis die Funktion aktiv wird. region-codeErsetzen Sie es durch die AWS Region, in der sich Ihr Cluster befindet, und my-cluster ersetzen Sie es durch den Namen Ihres Clusters.
aws eks describe-capability \ --regionregion-code\ --cluster-namemy-cluster\ --capability-name my-kro \ --query 'capability.status' \ --output text
Die Funktion ist bereit, wenn der Status angezeigt wirdACTIVE.
Sie können sich auch die vollständigen Funktionsdetails ansehen:
aws eks describe-capability \ --regionregion-code\ --cluster-namemy-cluster\ --capability-name my-kro
Schritt 4: Erteilen Sie Berechtigungen zur Verwaltung von Kubernetes-Ressourcen
Wenn Sie eine Kro-Funktion erstellen, wird automatisch ein EKS-Zugriffseintrag mit dem erstelltAmazonEKSKROPolicy, sodass Kro und ihre Instanzen verwalten ResourceGraphDefinitions können. Es werden jedoch standardmäßig keine Berechtigungen zum Erstellen der zugrunde liegenden Kubernetes-Ressourcen (wie Bereitstellungen, Dienste usw.) gewährt, die in ConfigMaps Ihrem definiert sind. ResourceGraphDefinitions
Dieses absichtliche Design folgt dem Prinzip der geringsten Rechte ResourceGraphDefinitions — unterschiedliche Rechte erfordern unterschiedliche Berechtigungen. Beispiel: * Ein System ResourceGraphDefinition , das nur ConfigMaps Secrets erstellt, benötigt andere Berechtigungen als ein System, das Deployments und Services erstellt. * Ein System ResourceGraphDefinition , das ACK-Ressourcen erstellt, benötigt Berechtigungen für diese spezifischen benutzerdefinierten Ressourcen. * Manche Benutzer lesen ResourceGraphDefinitions möglicherweise nur vorhandene Ressourcen, ohne neue zu erstellen
Sie müssen die Berechtigungen, die kro benötigt, explizit auf der Grundlage der Ressourcen konfigurieren, die Sie verwalten ResourceGraphDefinitions werden.
Quick Setup
Verwenden AmazonEKSClusterAdminPolicy Sie für einen schnellen Einstieg in Test- oder Entwicklungsumgebungen:
Rufen Sie den ARN der Funktionsrolle ab:
CAPABILITY_ROLE_ARN=$(aws eks describe-capability \ --regionregion-code\ --cluster-namemy-cluster\ --capability-name my-kro \ --query 'capability.roleArn' \ --output text)
Ordnen Sie die Cluster-Admin-Richtlinie zu:
aws eks associate-access-policy \ --regionregion-code\ --cluster-namemy-cluster\ --principal-arn $CAPABILITY_ROLE_ARN \ --policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy \ --access-scope type=cluster
Wichtig
Das AmazonEKSClusterAdminPolicy gewährt umfassende Berechtigungen zum Erstellen und Verwalten aller Kubernetes-Ressourcen, einschließlich der Möglichkeit, beliebige Ressourcentypen in allen Namespaces zu erstellen. Dies ist praktisch für die Entwicklung, sollte POCs aber nicht in der Produktion verwendet werden. Erstellen Sie für die Produktion benutzerdefinierte RBAC-Richtlinien, die nur die Berechtigungen gewähren, die für die spezifischen Ressourcen erforderlich sind, die Sie verwalten ResourceGraphDefinitions werden. Anleitungen zur Konfiguration von Berechtigungen mit den geringsten Rechten finden Sie unter und. Kro-Berechtigungen konfigurieren Sicherheitsüberlegungen für EKS-Funktionen
Schritt 5: Stellen Sie sicher, dass benutzerdefinierte Ressourcen verfügbar sind
Nachdem die Funktion aktiviert ist, stellen Sie sicher, dass benutzerdefinierte KRO-Ressourcen in Ihrem Cluster verfügbar sind:
kubectl api-resources | grep kro.run
Der ResourceGraphDefinition Ressourcentyp sollte aufgeführt sein.
Nächste Schritte
-
Kro-Konzepte- Verstehen Sie die KRO-Konzepte und die Zusammensetzung der Ressourcen
-
Kro-Konzepte- Erfahren Sie mehr über SimpleSchema CEL-Ausdrücke und Kompositionsmuster
-
Mit Capability-Ressourcen arbeiten- Verwalte deine Ressourcen für Kro-Fähigkeiten