Hilf mit, diese Seite zu verbessern
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.
Wenn Sie zu diesem Benutzerhandbuch beitragen möchten, 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 einen EKS-Auto-Mode-Cluster mit der AWS CLI
EKS-Auto-Mode-Cluster automatisieren routinemäßige Clusterverwaltungsaufgaben für Datenverarbeitung, Speicher und Netzwerke. EKS-Auto-Mode-Cluster erkennen beispielsweise automatisch, wenn zusätzliche Knoten erforderlich sind, und stellen neue EC2 Instanzen bereit, um den Workload-Anforderungen gerecht zu werden.
Dieses Thema führt Sie durch die Erstellung eines neuen EKS-Auto-Mode-Clusters mithilfe der AWS CLI und optional durch die Bereitstellung eines Beispiel-Workloads.
Voraussetzungen
-
Die neueste Version der AWS Befehlszeilenschnittstelle (AWS CLI) ist auf Ihrem Gerät installiert und konfiguriert. Um Ihre aktuelle Version zu überprüfen, verwenden Sie
aws --version
. Informationen zur Installation der neuesten Version finden Sie unter Installation und Schnellkonfiguration mit aws configure im Benutzerhandbuch für die 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 kubectl-Befehlszeilentool, das auf Ihrem Gerät installiert ist. AWS schlägt vor, dass Sie dieselbe kubectl-Version wie die Kubernetes-Version Ihres EKS-Clusters verwenden. Informationen zur Installation oder zum Upgrade von kubectl finden Sie unter. Einrichten kubectl und eksctl
VPC-Subnetze angeben
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. Sie können die Standard-VPC-Subnetze in Ihrem AWS Konto verwenden oder eine dedizierte VPC für kritische Workloads erstellen.
-
AWS schlägt vor, eine dedizierte VPC für Ihren Cluster zu erstellen. Weitere Informationen erhalten Sie unter Erstellen Sie eine Amazon VPC für Ihren Amazon EKS-Cluster.
-
Die EKS-Konsole hilft bei der Erstellung einer neuen VPC. Weitere Informationen erhalten Sie unter Erstellen Sie einen EKS-Auto-Mode-Cluster mit dem AWS Management Console.
-
Alternativ können Sie die Standard-VPC Ihres AWS Kontos verwenden. Verwenden Sie die folgenden Anweisungen, um das IDs Subnetz zu finden.
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 das 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 EKS-Cluster im automatischen Modus
Cluster-IAM-Rolle
Für den automatischen EKS-Modus ist eine Cluster-IAM-Rolle erforderlich, um Aktionen in Ihrem AWS Konto auszuführen, z. B. die Bereitstellung neuer Instanzen. EC2 Sie müssen diese Rolle erstellen, um EKS die erforderlichen Berechtigungen zu erteilen. AWS empfiehlt, die folgenden AWS verwalteten Richtlinien an die Cluster-IAM-Rolle anzuhängen:
IAM-Rolle des Knotens
Wenn Sie einen EKS-Auto-Mode-Cluster erstellen, geben Sie eine Node-IAM-Rolle an. Wenn der automatische Modus von EKS Knoten zur Verarbeitung ausstehender Workloads erstellt, wird jedem neuen EC2 Instanzknoten die Node-IAM-Rolle zugewiesen. Diese Rolle ermöglicht dem Knoten die Kommunikation mit EKS, wird aber im Allgemeinen nicht von Workloads aufgerufen, die auf dem Knoten ausgeführt werden.
Wenn Sie Berechtigungen für Workloads gewähren möchten, die auf einem Knoten ausgeführt werden, verwenden Sie EKS Pod Identity. Weitere Informationen finden Sie unter Erfahren Sie, wie EKS Pod Identity Pods Zugriff auf AWS Dienste gewährt.
Sie müssen diese Rolle erstellen und die folgende AWS verwaltete Richtlinie anhängen:
Für den automatischen Modus von EKS ist außerdem eine serviceverknüpfte Rolle erforderlich, die automatisch von AWS erstellt und konfiguriert wird. Weitere Informationen finden Sie unter AWSServiceRoleForAmazonEKS.
Erstellen Sie eine EKS-Cluster-IAM-Rolle im automatischen Modus
Schritt 1: Erstellen Sie die Vertrauensrichtlinie
Erstellen Sie eine Vertrauensrichtlinie, die es dem Amazon EKS-Service ermöglicht, die Rolle zu übernehmen. Speichern Sie die Richtlinie alstrust-policy.json
:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "eks.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:TagSession" ] } ] }
Schritt 2: Erstellen Sie die 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: Notieren Sie sich den Rollen-ARN
Rufen Sie den ARN der neuen Rolle ab und speichern Sie ihn zur Verwendung in nachfolgenden Schritten:
aws iam get-role --role-name AmazonEKSAutoClusterRole --query "Role.Arn" --output text
Schritt 4: Erforderliche Richtlinien anhängen
Fügen Sie der Cluster-IAM-Rolle die folgenden AWS verwalteten Richtlinien hinzu, um die erforderlichen Berechtigungen zu gewähren:
EKSClusterAmazon-Richtlinie:
aws iam attach-role-policy \ --role-name AmazonEKSAutoClusterRole \ --policy-arn arn:aws: iam::aws:policy/AmazonEKSClusterPolicy
EKSComputeAmazon-Richtlinie:
aws iam attach-role-policy \ --role-name AmazonEKSAutoClusterRole \ --policy-arn arn:aws: iam::aws:policy/AmazonEKSComputePolicy
Amazon EKSBlock StoragePolicy:
aws iam attach-role-policy \ --role-name AmazonEKSAutoClusterRole \ --policy-arn arn:aws: iam::aws:policy/AmazonEKSBlockStoragePolicy
Amazon EKSLoad BalancingPolicy:
aws iam attach-role-policy \ --role-name AmazonEKSAutoClusterRole \ --policy-arn arn:aws: iam::aws:policy/AmazonEKSLoadBalancingPolicy
EKSNetworkingAmazon-Richtlinie:
aws iam attach-role-policy \ --role-name AmazonEKSAutoClusterRole \ --policy-arn arn:aws: iam::aws:policy/AmazonEKSNetworkingPolicy
Erstellen Sie eine IAM-Rolle für einen EKS-Knoten im automatischen Modus
Schritt 1: Erstellen Sie die Vertrauensrichtlinie
Erstellen Sie eine Vertrauensrichtlinie, die es dem Amazon EKS-Service ermöglicht, die Rolle zu übernehmen. Speichern Sie die Richtlinie alsnode-trust-policy.json
:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Schritt 2: Erstellen Sie die Node-IAM-Rolle
Verwenden Sie die node-trust-policyJSON-Datei aus dem vorherigen Schritt, um zu definieren, welche Entitäten die Rolle übernehmen können. Führen Sie den folgenden Befehl aus, um die Node-IAM-Rolle zu erstellen:
aws iam create-role \ --role-name AmazonEKSAutoNodeRole \ --assume-role-policy-document file://node-trust-policy.json
Schritt 3: Notieren Sie sich den Rollen-ARN
Rufen Sie nach dem Erstellen der Rolle den ARN der Node-IAM-Rolle ab und speichern Sie ihn. Sie benötigen diesen ARN in den nachfolgenden Schritten. Verwenden Sie den folgenden Befehl, um den ARN abzurufen:
aws iam get-role --role-name AmazonEKSAutoNodeRole --query "Role.Arn" --output text
Schritt 4: Erforderliche Richtlinien anhängen
Fügen Sie der Node-IAM-Rolle die folgenden AWS verwalteten Richtlinien hinzu, um die erforderlichen Berechtigungen bereitzustellen:
Amazon EKSWorker NodeMinimalPolicy:
aws iam attach-role-policy \ --role-name AmazonEKSAutoNodeRole \ --policy-arn arn:aws: iam::aws:policy/AmazonEKSWorkerNodeMinimalPolicy
Amazon EC2 ContainerRegistryPullOnly:
aws iam attach-role-policy \ --role-name AmazonEKSAutoNodeRole \ --policy-arn arn:aws: iam::aws:policy/AmazonEC2ContainerRegistryPullOnly
Erstellen Sie einen EKS-Auto-Modus-Cluster
Übersicht
Um einen EKS-Auto-Mode-Cluster mit der 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
: In den vorherigen Schritten IDs identifiziertes Subnetz. -
cluster-role-arn
: ARN der Cluster-IAM-Rolle. -
node-role-arn
: ARN der Node-IAM-Rolle.
Standard-Cluster-Konfigurationen
Überprüfen Sie diese Standardwerte und Funktionen, bevor Sie den Cluster erstellen:
-
nodePools
: Der automatische Modus von EKS umfasst allgemeine und systemeigene Standard-Knotenpools. Erfahren Sie mehr über Node Pools.
Hinweis: Knotenpools im EKS Auto Mode unterscheiden sich von Amazon EKS Managed Node Groups, können aber gleichzeitig im selben Cluster existieren.
-
computeConfig.enabled
: Automatisiert routinemäßige Rechenaufgaben wie das Erstellen und Löschen EC2 von 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. Erfahren Sie mehr über die EKS-Authentifizierungsmodi.
Führen Sie den Befehl aus
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\" } }
Überprüfen Sie den Clusterstatus
Schritt 1: Überprüfen Sie die Clustererstellung
Führen Sie den folgenden Befehl aus, um den Status Ihres Clusters zu überprüfen. Die Clustererstellung dauert in der Regel etwa 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 mit dem Cluster kubectl
zu ermöglichen. Diese Konfiguration verwendet die AWS CLI für die Authentifizierung.
aws eks update-kubeconfig --name "${CLUSTER_NAME}"
Schritt 3: Überprüfen Sie die Knotenpools
Führen Sie die Knotenpools in Ihrem Cluster mit dem folgenden Befehl auf:
kubectl get nodepools
Nächste Schritte
-
Erfahren Sie, wie Sie einen Beispiel-Workload auf Ihrem neuen EKS-Auto-Mode-Cluster bereitstellen.