Unterstützung für die Verbesserung dieser Seite beitragen
Um zu diesem Benutzerhandbuch beizutragen, klicken Sie auf den Link Diese Seite auf GitHub bearbeiten, der sich im rechten Bereich jeder Seite befindet.
Erstellung eines EKS-Auto-Mode-Clusters mit der AWS-CLI
EKS-Auto-Mode-Cluster automatisieren routinemäßige Cluster-Verwaltungsaufgaben für Rechenleistung, Speicher und Netzwerke. EKS-Auto-Mode-Cluster erkennen beispielsweise automatisch, wenn zusätzliche Knoten erforderlich sind, und stellen neue EC2-Instances bereit, um den Workload-Anforderungen gerecht zu werden.
Dieses Thema führt Sie durch die Erstellung eines neuen EKS-Auto-Mode-Cluster mithilfe der AWS-CLI und optional durch die Bereitstellung eines Beispiel-Workloads.
Voraussetzungen
-
Die neueste Version der AWS-Befehlszeilenschnittstelle (AWS-CLI) muss auf Ihrem Gerät installiert und konfiguriert sein. Um Ihre aktuelle Version zu überprüfen, verwenden Sie
aws --version. Um die neueste Version zu installieren, lesen Sie Installation und Schnellkonfiguration mit aws configure im Benutzerhandbuch zur AWS-Befehlszeilenschnittstelle.-
Melden Sie sich mit ausreichenden IAM-Berechtigungen bei der CLI an, um AWS-Ressourcen wie IAM-Richtlinien, IAM-Rollen und EKS-Cluster zu erstellen.
-
-
Das auf Ihrem Gerät installierte Befehlszeilen-Tool kubectl. AWS schlägt vor, dass Sie dieselbe kubectl-Version wie die Kubernetes-Version Ihres EKS-Clusters verwenden. Informationen zum Installieren von kubectl finden Sie unter kubectl und eksctl einrichten.
Angabe von VPC-Subnetzen
Amazon EKS Auto Mode stellt Knoten in VPC-Subnetzen bereit. Beim Erstellen eines EKS-Clusters müssen Sie die VPC-Subnetze angeben, in denen die Knoten bereitgestellt werden sollen. Sie können die Standard-VPC-Subnetze in Ihrem AWS-Konto verwenden oder eine dedizierte VPC für kritische Workloads erstellen.
-
AWS empfiehlt, eine dedizierte VPC für Ihren Cluster zu erstellen. Weitere Informationen erhalten Sie unter Erstellung einer Amazon VPC für Ihren Amazon-EKS-Cluster.
-
Die EKS-Konsole unterstützt Sie bei der Erstellung einer neuen VPC. Weitere Informationen erhalten Sie unter Erstellung eines EKS-Auto-Mode-Clusters mit AWS-Managementkonsole.
-
Alternativ können Sie die Standard-VPC Ihres AWS-Kontos verwenden. Verwenden Sie die folgenden Anweisungen, um die Subnetz-IDs zu ermitteln.
Verwenden der AWS-CLI:
-
Führen Sie den folgenden Befehl aus, um die Standard-VPC und ihre Subnetze aufzulisten:
aws ec2 describe-subnets --filters "Name=vpc-id,Values=$(aws ec2 describe-vpcs --query 'Vpcs[?IsDefault==`true`].VpcId' --output text)" --query 'Subnets[*].{ID:SubnetId,AZ:AvailabilityZone}' --output table -
Speichern Sie die Ausgabe und notieren Sie sich die Subnetz-IDs.
Beispielausgabe:
---------------------------------------- | DescribeSubnets | ---------------------------------------- | SubnetId | AvailabilityZone | |--------------------|---------------------| | subnet-012345678 | us-west-2a | | subnet-234567890 | us-west-2b | | subnet-345678901 | us-west-2c | ----------------------------------------
IAM-Rollen für Cluster in EKS Auto Mode
Cluster-IAM-Rolle
EKS Auto Mode erfordert eine Cluster-IAM-Rolle, um Aktionen in Ihrem AWS-Konto ausführen zu können, beispielsweise die Bereitstellung neuer EC2-Instances. Sie müssen diese Rolle erstellen, um EKS die erforderlichen Berechtigungen zu gewähren. AWS empfiehlt, die folgenden von AWS verwalteten Richtlinien der Cluster-IAM-Rolle anzufügen:
Knoten-IAM-Rolle
Wenn Sie einen EKS-Auto-Mode-Cluster erstellen, geben Sie eine IAM-Rolle für den Knoten an. Wenn EKS Auto Mode Knoten zur Verarbeitung ausstehender Workloads erstellt, wird jedem neuen EC2-Instance-Knoten die Knoten-IAM-Rolle zugewiesen. Diese Rolle ermöglicht es dem Knoten, mit EKS zu kommunizieren, wird jedoch in der Regel nicht von den auf dem Knoten ausgeführten Workloads aufgerufen.
Wenn Sie Workloads, die auf einem Knoten ausgeführt werden, Berechtigungen gewähren möchten, verwenden Sie EKS Pod Identity. Weitere Informationen finden Sie unter Erfahren Sie, wie EKS Pod Identity Pods Zugriff auf AWS-Services gewährt.
Sie müssen diese Rolle erstellen und die folgende von AWS verwaltete Richtlinie anfügen:
Serviceverknüpfte Rolle
EKS Auto Mode erfordert außerdem eine serviceverknüpfte Rolle, die automatisch von AWS erstellt und konfiguriert wird. Weitere Informationen finden Sie unter AWSServiceRoleForAmazonEKS.
Erstellung einer IAM-Rolle für einen Cluster in EKS Auto Mode
Schritt 1: Vertrauensrichtlinie erstellen
Erstellen Sie eine Vertrauensrichtlinie, mit welcher der Amazon-EKS-Service die Rolle übernehmen kann. Speichern Sie die Richtlinie als trust-policy.json:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "eks.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:TagSession" ] } ] }
Schritt 2: Erstellen der IAM-Rolle
Verwenden Sie die Vertrauensrichtlinie, um die Cluster-IAM-Rolle zu erstellen:
aws iam create-role \
--role-name AmazonEKSAutoClusterRole \
--assume-role-policy-document file://trust-policy.json
Schritt 3: Rollen-ARN notieren
Rufen Sie die ARN der neuen Rolle ab und speichern Sie sie für die Verwendung in den folgenden Schritten:
aws iam get-role --role-name AmazonEKSAutoClusterRole --query "Role.Arn" --output text
Schritt 4: Erforderliche Richtlinien hinzufügen
Fügen Sie der Cluster-IAM-Rolle die folgenden von AWS verwalteten Richtlinien hinzu, um die erforderlichen Berechtigungen zu gewähren:
AmazonEKSClusterPolicy:
aws iam attach-role-policy \ --role-name AmazonEKSAutoClusterRole \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSClusterPolicy
AmazonEKSComputePolicy:
aws iam attach-role-policy \ --role-name AmazonEKSAutoClusterRole \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSComputePolicy
AmazonEKSBlockStoragePolicy:
aws iam attach-role-policy \ --role-name AmazonEKSAutoClusterRole \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSBlockStoragePolicy
AmazonEKSLoadBalancingPolicy:
aws iam attach-role-policy \ --role-name AmazonEKSAutoClusterRole \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSLoadBalancingPolicy
AmazonEKSNetworkingPolicy:
aws iam attach-role-policy \ --role-name AmazonEKSAutoClusterRole \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSNetworkingPolicy
Erstellung einer Knoten-IAM-Rolle in EKS Auto Mode
Schritt 1: Vertrauensrichtlinie erstellen
Erstellen Sie eine Vertrauensrichtlinie, mit welcher der Amazon-EKS-Service die Rolle übernehmen kann. Speichern Sie die Richtlinie als node-trust-policy.json:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } ----[source,json,subs="verbatim,attributes"]
Schritt 2: Knoten-IAM-Rolle erstellen
Verwenden Sie die Datei node-trust-policy.json aus dem vorherigen Schritt, um festzulegen, welche Entitäten die Rolle übernehmen können. Führen Sie den folgenden Befehl aus, um die Knoten-IAM-Rolle zu erstellen:
aws iam create-role \
--role-name AmazonEKSAutoNodeRole \
--assume-role-policy-document file://node-trust-policy.json
Schritt 3: Rollen-ARN notieren
Rufen Sie nach dem Erstellen der Rolle die ARN der Knoten-IAM-Rolle ab und speichern Sie sie. Sie benötigen diese ARN in den nachfolgenden Schritten. Um die ARN abzurufen, verwenden Sie den folgenden Befehl.
aws iam get-role --role-name AmazonEKSAutoNodeRole --query "Role.Arn" --output text
Schritt 4: Erforderliche Richtlinien hinzufügen
Fügen Sie die folgenden AWS-verwalteten Richtlinien zur Knoten-IAM-Rolle hinzu, um die erforderlichen Berechtigungen zu gewähren:
AmazonEKSWorkerNodeMinimalPolicy:
aws iam attach-role-policy \ --role-name AmazonEKSAutoNodeRole \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSWorkerNodeMinimalPolicy
AmazonEC2ContainerRegistryPullOnly:
aws iam attach-role-policy \ --role-name AmazonEKSAutoNodeRole \ --policy-arn arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryPullOnly
Erstellung eines Clusters in EKS Auto Mode
Übersicht
Um einen EKS-Auto-Mode-Cluster über die AWS-CLI zu erstellen, benötigen Sie die folgenden Parameter:
-
cluster-name: Der Name des Clusters. -
k8s-version: Die Kubernetes-Version (z. B. 1.31). -
subnet-ids: Die in den vorherigen Schritten ermittelten Subnetz-IDs. -
cluster-role-arn: ARN der Cluster-IAM-Rolle. -
node-role-arn: ARN der Knoten-IAM-Rolle.
Standard-Cluster-Konfigurationen
Überprüfen Sie diese Standardwerte und Feature, bevor Sie den Cluster erstellen:
-
nodePools: EKS Auto Mode beinhaltet universelle und systemseitige Standard-Knoten-Pools. Weitere Informationen zu Knoten-Pools
Hinweis: Knoten-Pools in EKS Auto Mode unterscheiden sich von Amazon EKS verwalteten Knotengruppen, können jedoch im selben Cluster koexistieren.
-
computeConfig.enabled: Automatisiert routinemäßige Rechenaufgaben, wie das Erstellen und Löschen von EC2-Instances. -
kubernetesNetworkConfig.elasticLoadBalancing.enabled: Automatisiert Load-Balancing-Aufgaben, einschließlich des Erstellens und Löschens von Elastic Load Balancers. -
storageConfig.blockStorage.enabled: Automatisiert Speicheraufgaben, wie das Erstellen und Löschen von Amazon-EBS-Volumes. -
accessConfig.authenticationMode: Erfordert EKS-Zugriffseinträge. Weitere Informationen zu EKS-Authentifizierungsmodi.
Ausführen des Befehls
Verwenden Sie den folgenden Befehl, um den Cluster zu erstellen:
aws eks create-cluster \ --region ${AWS_REGION} \ --cli-input-json \ "{ \"name\": \"${CLUSTER_NAME}\", \"version\": \"${K8S_VERSION}\", \"roleArn\": \"${CLUSTER_ROLE_ARN}\", \"resourcesVpcConfig\": { \"subnetIds\": ${SUBNETS_JSON}, \"endpointPublicAccess\": true, \"endpointPrivateAccess\": true }, \"computeConfig\": { \"enabled\": true, \"nodeRoleArn\":\"${NODE_ROLE_ARN}\", \"nodePools\": [\"general-purpose\", \"system\"] }, \"kubernetesNetworkConfig\": { \"elasticLoadBalancing\": { \"enabled\": true } }, \"storageConfig\": { \"blockStorage\": { \"enabled\": true } }, \"accessConfig\": { \"authenticationMode\": \"API\" } }
Cluster-Status überprüfen
Schritt 1: Cluster-Erstellung überprüfen
Führen Sie den folgenden Befehl aus, um den Status Ihres Clusters zu überprüfen. Die Cluster-Erstellung dauert in der Regel 15 Minuten.
aws eks describe-cluster --name "${CLUSTER_NAME}" --output json
Schritt 2: kubeconfig aktualisieren
Sobald der Cluster bereit ist, aktualisieren Sie Ihre lokale kubeconfig-Datei, um die Kommunikation zwischen kubectl und dem Cluster zu ermöglichen. Diese Konfiguration verwendet die AWS-CLI für die Authentifizierung.
aws eks update-kubeconfig --name "${CLUSTER_NAME}"
Schritt 3: Knoten-Pools überprüfen
Listen Sie die Knoten-Pools in Ihrem Cluster mit dem folgenden Befehl auf:
kubectl get nodepools
Nächste Schritte
-
Erfahren Sie, wie Sie einen Beispiel-Workload in Ihrem neuen Cluster in EKS Auto Mode bereitstellen.