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.
AWSSupport-SetupK8sApiProxyForEKS
Beschreibung
Das AWSSupport-SetupK8sApiProxyForEKS Automatisierungs-Runbook bietet die Möglichkeit, eine AWS Lambda Funktion zu erstellen, die als Proxy für API-Aufrufe der Steuerungsebene an den Amazon Elastic Kubernetes Service-Cluster-Endpunkt dient. Es dient als Baustein für Runbooks, die API-Aufrufe auf Steuerungsebene erfordern, um Aufgaben zu automatisieren und Probleme mit einem Amazon EKS-Cluster zu beheben.
Wichtig
Alle durch diese Automatisierung erstellten Ressourcen sind mit Tags versehen, sodass sie leicht gefunden werden können. Die verwendeten Tags sind:
-
AWSSupport-SetupK8sApiProxyForEKS: true
Anmerkung
-
Die Automatisierung ist ein Hilfs-Runbook und kann nicht als eigenständiges Runbook ausgeführt werden. Sie wird als untergeordnete Automatisierung für Runbooks aufgerufen, die API-Aufrufe der Steuerungsebene an den Amazon EKS-Cluster erfordern.
-
Bitte stellen Sie sicher, dass der
CleanupBetrieb nach der Verwendung ausgeführt wird, um unerwünschte Kosten zu vermeiden.
Art des Dokuments
Automatisierung
Eigentümer
Amazon
Plattformen
Linux
Parameter
-
AutomationAssumeRole
Typ: Zeichenfolge
Beschreibung: (Optional) Der Amazon-Ressourcenname (ARN) der AWS Identity and Access Management (IAM) -Rolle, die es Systems Manager Automation ermöglicht, die Aktionen in Ihrem Namen auszuführen. Wenn keine Rolle angegeben ist, verwendet Systems Manager Automation die Berechtigungen des Benutzers, der dieses Runbook startet.
-
ClusterName
Typ: Zeichenfolge
Beschreibung: (Erforderlich) Der Name des Amazon Elastic Kubernetes Service-Clusters.
-
Operation
Typ: Zeichenfolge
Beschreibung: (Erforderlich) Durchzuführender Vorgang:
SetupStellt die Lambda-Funktion im Konto bereit und deaktiviert die Bereitstellung von Ressourcen,Cleanupdie im Rahmen der Einrichtungsphase erstellt wurden.Zulässige Werte: |
SetupCleanupStandard: Setup
-
LambdaRoleArn
Typ: Zeichenfolge
Beschreibung: (Optional) Der ARN der IAM-Rolle, der der AWS Lambda Funktion den Zugriff auf die erforderlichen AWS Dienste und Ressourcen ermöglicht. Wenn keine Rolle angegeben ist, erstellt diese Systems Manager Automation eine IAM-Rolle für Lambda in Ihrem Konto mit dem Namen
Automation-K8sProxy-Role-<ExecutionId>, der die verwalteten Richtlinien enthält: und.AWSLambdaBasicExecutionRoleAWSLambdaVPCAccessExecutionRole
Wie funktioniert das?
Das Runbook führt die folgenden Schritte aus:
-
Überprüft, ob die Automatisierung als untergeordnete Ausführung ausgeführt wird. Das Runbook funktioniert nicht, wenn es als eigenständiges Runbook aufgerufen wird, da es alleine keine sinnvolle Arbeit ausführt.
-
Prüft, ob der CloudFormation Stack für die Proxy-Lambda-Funktion für den angegebenen Cluster vorhanden ist.
-
Wenn der Stack existiert, wird die vorhandene Infrastruktur wiederverwendet, anstatt sie neu zu erstellen.
-
Ein Referenzzähler wird mithilfe von Tags verwaltet, um sicherzustellen, dass ein Runbook die Infrastruktur nicht löscht, wenn sie von einem anderen Runbook für denselben Cluster wiederverwendet wird.
-
-
Führen Sie den für den Aufruf angegebenen Operationstyp (
Setup/Cleanup) aus:-
Setup: Erstellt oder beschreibt vorhandene Ressourcen.
Bereinigung: Entfernt bereitgestellte Ressourcen, wenn die Infrastruktur nicht von einem anderen Runbook verwendet wird.
-
Erforderliche IAM-Berechtigungen
Für den AutomationAssumeRole Parameter sind die folgenden erteilten Berechtigungen erforderlich, er wurde nicht weitergegeben LambdaRoleArn:
-
cloudformation:CreateStack -
cloudformation:DescribeStacks -
cloudformation:DeleteStack -
cloudformation:UpdateStack -
ec2:CreateNetworkInterface -
ec2:DescribeNetworkInterfaces -
ec2:DescribeRouteTables -
ec2:DescribeSecurityGroups -
ec2:DescribeSubnets -
ec2:DescribeVpcs -
ec2:DeleteNetworkInterface -
eks:DescribeCluster -
lambda:CreateFunction -
lambda:DeleteFunction -
lambda:ListTags -
lambda:GetFunction -
lambda:ListTags -
lambda:TagResource -
lambda:UntagResource -
lambda:UpdateFunctionCode -
logs:CreateLogGroup -
logs:PutRetentionPolicy -
logs:TagResource -
logs:UntagResource -
logs:DescribeLogGroups -
logs:DescribeLogStreams -
logs:ListTagsForResource -
iam:CreateRole -
iam:AttachRolePolicy -
iam:DetachRolePolicy -
iam:PassRole -
iam:GetRole -
iam:DeleteRole -
iam:TagRole -
iam:UntagRole -
tag:GetResources -
tag:TagResources
Wenn LambdaRoleArn angegeben, muss die Rolle nicht von der Automatisierung erstellt werden, und die folgenden Berechtigungen können ausgeschlossen werden:
-
iam:CreateRole -
iam:DeleteRole -
iam:TagRole -
iam:UntagRole -
iam:AttachRolePolicy -
iam:DetachRolePolicy
Im Folgenden finden Sie ein Beispiel für eine Richtlinie, die zeigt, welche Berechtigungen erforderlich sind
AutomationAssumeRole, wenn sie LambdaRoleArn nicht weitergegeben werden:
Falls sie bestanden LambdaRoleArn wird, stellen Sie bitte sicher, dass ihr eine AWSLambdaBasicExecutionRole
Ressourcen wurden erstellt
Die folgenden Ressourcen werden während des Setup Betriebs erstellt:
-
AWS Lambda Funktion
-
IAM-Rolle: Lambda-Ausführungsrolle, falls nicht angegeben.
-
CloudWatch Protokollgruppe (Lambda-Protokolle)
Die Lambda-Funktion und die Ausführungsrolle bleiben erhalten, bis der Cleanup Vorgang ausgeführt wird. Die Lambda-Protokollgruppe wird 30 Tage lang aufbewahrt oder bis sie manuell gelöscht wird.
Anweisungen
Das Runbook ist ein Hilfsprogramm, das so konzipiert ist, dass es als untergeordnete Automatisierung in anderen Runbooks ausgeführt werden kann. Es erleichtert die Erstellung einer Infrastruktur, die es dem übergeordneten Runbook ermöglicht, API-Aufrufe der Steuerungsebene von Amazon EKS K8 durchzuführen. Um das Runbook zu verwenden, können Sie die folgenden Schritte im Kontext der übergeordneten Automatisierung ausführen.
-
Einrichtungsphase: Rufen Sie die Automatisierung mithilfe einer
aws:executeAutomationAktionsoperation aus dem Runbook auf, das Amazon EKS K8s Control-Plane-API-Aufrufe mit der Einstellung Operation auf ausführen möchte.SetupBeispiel für Eingabeparameter:
{ "AutomationAssumeRole": "<role-arn>", "ClusterName": "<eks-cluster-name>", "Operation": "Setup" }Die Ausgabe des
aws:executeAutomationSchritts wird den ARN der Proxy-Lambda-Funktion enthalten. -
Den Lambda-Proxy verwenden: Rufen Sie die Lambda-Funktion innerhalb der
aws:executeScriptAktionLambda.Client.invoke(...)mithilfeboto3einer Liste von API-Aufrufpfaden und einem Bearer-Token auf. Die Lambda-Funktion führtGETHTTP-Aufrufe an den angegebenen Pfad durch, indem sie das Bearer-Token als Teil des Autorisierungs-Headers übergibt.Beispiel für ein Lambda-Aufrufereignis:
{ "ApiCalls": ["/api/v1/pods/", ...], "BearerToken": "..." }Anmerkung
Das Bearer-Token muss als Teil des übergeordneten Automatisierungsskripts generiert werden. Sie müssen sicherstellen, dass der Principal, der das übergeordnete Runbook ausführt, nur Leseberechtigungen für den angegebenen Amazon EKS-Cluster hat.
-
Bereinigungsphase: Rufen Sie die Automatisierung mithilfe einer
aws:executeAutomationAktionsoperation aus dem Runbook auf, das Amazon EKS K8s Control-Plane-API-Aufrufe mit der Einstellung Operation auf ausführen möchte.CleanupBeispiel für Eingabeparameter:
{ "AutomationAssumeRole": "<role-arn>", "ClusterName": "<eks-cluster-name>", "Operation": "Cleanup" }
Schritte zur Automatisierung
-
ValidateExecution
-
Stellt sicher, dass die Automatisierung nicht als eigenständige Ausführung ausgeführt wird.
-
-
CheckForExistingStack
-
Prüft, ob bereits ein CloudFormation Stack für den angegebenen Clusternamen bereitgestellt wurde.
-
Gibt den Status der Stack-Existenz zurück und gibt an, ob das Löschen sicher ist.
-
-
BranchOnIsStackExists
-
Entscheidungsschritt, bei dem anhand der Existenz des Stacks eine Verzweigung stattfindet.
-
Routen, um entweder den vorhandenen Stacknamen zu aktualisieren oder mit der Verzweigungsoperation fortzufahren.
-
-
UpdateStackName
-
Aktualisiert die
StackNameVariable mit dem Namen des vorhandenen Stacks. -
Wird nur ausgeführt, wenn der Stack bereits existiert.
-
-
BranchOnOperation
-
Leitet die Automatisierung basierend auf dem
OperationParameter (Setup/Cleanup) weiter. -
Für
Setup: Routen, um entweder einen neuen Stack zu erstellen oder vorhandene Ressourcen zu beschreiben. -
Für
Cleanup: Fährt mit dem Löschen des Stapels fort, sofern das Löschen sicher ist.
-
-
GetClusterNetworkConfig
-
Beschreibt den Amazon EKS-Cluster zum Abrufen der VPC-Konfiguration.
-
Ruft Endpunkt-, VPC-ID, Subnetz-IDs, Sicherheitsgruppen-ID und CA-Daten ab.
-
-
ProvisionResources
-
Erstellt einen CloudFormation Stack mit den erforderlichen Ressourcen.
-
Stellt die Lambda-Funktion mit der erforderlichen Netzwerkkonfiguration bereit.
-
Kennzeichnet alle Ressourcen für die Nachverfolgung und Verwaltung.
-
-
DescribeStackResources
-
Ruft Informationen über den created/existing Stapel ab.
-
Ruft den ARN der bereitgestellten Lambda-Funktion ab.
-
-
BranchOnIsLambdaDeploymentRequired
-
Ermittelt, ob die Bereitstellung von Lambda-Code erforderlich ist.
-
Geht nur für neu erstellte Stacks zur Bereitstellung über.
-
-
DeployLambdaFunctionCode
-
Stellt den Lambda-Funktionscode mithilfe des Bereitstellungspakets bereit.
-
Aktualisiert die Funktion mit der Proxyimplementierung.
-
-
AssertLambdaAvailable
-
Überprüft, ob die Aktualisierung des Lambda-Funktionscodes erfolgreich war.
-
Wartet darauf, dass die Funktion ihren Status hat.
Successful
-
-
PerformStackCleanup
-
Löscht den CloudFormation Stack und die zugehörigen Ressourcen.
-
Wird während des
CleanupBetriebs oder beiSetupBetriebsausfall ausgeführt.
-
Ausgaben
LambdaFunctionArn: ARN der Proxy-Lambda-Funktion
Referenzen
Systems Manager Automation