Direkt zum Inhalt

Wie füge ich einem vorhandenen Amazon EKS-Cluster neue Subnetze hinzu?

Lesedauer: 4 Minute
0

Ich möchte der Cluster-Steuerebene von Amazon Elastic Kubernetes Service (Amazon EKS) neue Subnetze hinzufügen.

Kurzbeschreibung

Wenn du Subnetze zu neuen Availability Zones hinzufügst oder Subnetze aus vorhandenen Availability Zones entfernst, erhältst du möglicherweise eine Fehlermeldung, die der folgenden ähnelt:

„An error occurred (InvalidParameterException) when calling the UpdateClusterConfig operation: Provided subnets belong to the AZs 'us-west-2a,us-west-2c,us-west-2d'. But they should belong to the exact set of AZs 'us-west-2a,us-west-2c' in which subnets were provided during cluster creation.“

Die Subnetze müssen sich in derselben Gruppe von Availability Zones befinden, die AWS bei der Erstellung des Clusters für dich ausgewählt hat. Die Subnetze müssen sich außerdem in derselben Amazon Virtual Private Cloud (Amazon VPC) befinden, die AWS bei der Erstellung des Clusters bereitgestellt hat. Die VPC muss über genügend verfügbare IP-Adressen für den Cluster verfügen. Weitere Informationen findest du unter Erstellen eines Subnetzes und VPC-Anforderungen und Überlegungen.

Lösung

Um Amazon EKS-Cluster-Subnetze zu ändern, kannst du die Amazon EKS-Konsole, die AWS CLI oder die eksctl-CLI verwenden.

Verwendung der Amazon EKS-Konsole

Führe die folgenden Schritte aus:

  1. Öffne die Amazon EKS-Konsole.
  2. Wähle im Navigationsbereich die Option Cluster aus.
  3. Wähle Netzwerk und dann VPC-Ressourcen verwalten aus.
  4. Wähle im Menü Subnetze die Subnetze aus, die du hinzufügen möchtest.
  5. Wähle Speichern.
  6. Bestätige im Abschnitt Netzwerk, dass die Subnetze hinzugefügt wurden.

Verwendung der AWS CLI

Hinweis: Wenn du beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.

Der AWS-CLI-Befehl ersetzt die vorhandenen Cluster-Subnetze durch die Subnetze, die du in den Befehl aufnimmst. Um Subnetze hinzuzufügen, gib die vorhandenen Subnetze und die zusätzlichen Subnetze an.

  1. Führe den Befehl describe-subnets aus, um die Availability Zones zu identifizieren, die du für deinen EKS-Cluster konfiguriert hast:

    aws ec2 describe-subnets --subnet-ids $(aws eks describe-cluster --name your-cluster-name --query 'cluster.resourcesVpcConfig.subnetIds' --output text) --query 'Subnets[*].AvailabilityZone'

    Hinweis: Ersetze your-cluster-name durch deinen Clusternamen und die Beispiel-Subnetz-IDs durch deine Subnetz-IDs.
    Beispielausgabe:

    [
        "us-west-2c",
        "us-west-2d",
        "us-west-2a"
    ]
  2. Führe den Befehl update-cluster-config aus, um die Subnetze der Cluster-Steuerebene zu aktualisieren:

    aws eks update-cluster-config --name your-cluster-name \
    --resources-vpc-config subnetIds=subnet-1234,subnet-5678,subnet-9101

    Hinweis: Ersetze your-cluster-name durch deinen Clusternamen und die Beispiel-Subnetz-IDs durch deine Subnetz-IDs. Wenn du neue Subnetze hinzufügst, stelle sicher, dass du jede Availability Zone des ursprünglichen Satzes durch mindestens ein Subnetz repräsentierst. Nimm das Subnetz in den Befehl auf, um ein vorhandenes Subnetz für eine Availability Zone beizubehalten.
    Im folgenden Beispiel werden die aktuellen Availability Zones des EKS-Clusters abgerufen, und den vorhandenen Zonen werden neue Subnetze hinzugefügt. Der Befehl update-cluster-config umfasst das ursprüngliche und das neue Subnetz, um die Availability Zone-Konfiguration des Clusters beizubehalten und die Subnetze in jeder Zone zu erweitern:

    aws eks describe-cluster --name gpusharing-demo --query 'cluster.resourcesVpcConfig.subnetIds'
    [
        "subnet-03d59dfc8d9380b4c",
        "subnet-0c4f51f27d109fa32",
        "subnet-037b42db1a08da5ae"
    ]
    
    aws eks update-cluster-config --name gpusharing-demo --resources-vpc-config subnetIds=subnet-xxxxxxx80b4c,subnet-xxxxxxx8da5ae,subnet-xxxxxxx9fa32,subnet-xxxxxxee3bb,subnet-xxxxxxa761ac,subnet-xxxxxxde8b8
    {
    "update": {
    "id": "e7ed1fbf-01ab-3472-8204-149cdc3337be",
    "status": "InProgress",
    "type": "VpcConfigUpdate",
    "params": [
    {
    "type": "Subnets",
    "value": "[subnet-xxxxxxx80b4c, subnet-xxxxxxx8da5ae, subnet-xxxxxxxx9fa32, subnet-xxxxxxxee3bb, subnet-xxxxxxxxa761ac, subnet-xxxxxxde8b8]"
    }
    ],
    "createdAt": "2024-09-09T18:06:16.493000+00:00",
    "errors": []
    }
    }

Verwendung der eksctl-CLI

Der eksctl-CLI-Befehl ersetzt die vorhandenen Cluster-Subnetze durch die Subnetze, die du in den Befehl aufnimmst. Um Subnetze hinzuzufügen, gib die vorhandenen Subnetze und die zusätzlichen Subnetze an.

Führe den folgenden Befehl eksctl aus, um die Subnetze der Cluster-Steuerebene zu aktualisieren:

eksctl utils update-cluster-vpc-config --cluster=your-cluster-name \
--control-plane-subnet-ids=subnet-1234,subnet-5678 --approve

Die folgende Beispielausgabe zeigt, dass der Cluster für jede Availability Zone auf ein Subnetz aktualisiert wurde:

eksctl utils update-cluster-vpc-config --cluster=gpusharing-demo  --control-plane-subnet-ids=subnet-03d59dfc8d9380b4c,subnet-0c4f51f27d109fa32,subnet-037b42db1a08da5ae --approve
2024-09-09 18:23:54 [ℹ]  using region us-west-2
2024-09-09 18:23:54 [ℹ]  will update control plane subnet IDs for cluster "gpusharing-demo" in "us-west-2" to: [subnet-xxxxxxx80b4c subnet-xxxxxxx9fa32 subnet-xxxxxx8da5ae]
2024-09-09 18:32:07 [✔]  control plane subnets and security groups for cluster "gpusharing-demo" in "us-west-2" have been updated to: controlPlaneSubnetIDs=[subnet-xxxxxxx80b4c subnet-xxxxxxxx9fa32 subnet-xxxxxxxx8da5ae], controlPlaneSecurityGroupIDs=[sg-xxxxx31d2]

Führe den folgenden Befehl aus, um die Datei config.yaml zum Aktualisieren von Subnetzen zu verwenden:

eksctl utils update-cluster-vpc-config -f config.yaml

Beispielausgabe:

apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
  name: cluster
  region: us-west-2

vpc:
  controlPlaneSubnetIDs: [subnet-1234, subnet-5678, subnet-9101]
  controlPlaneSecurityGroupIDs: [sg-1234, sg-5678]

Ähnliche Informationen:

Verbesserte VPC-Flexibilität: Subnetze und Sicherheitsgruppen in Amazon EKS ändern

Updating control plane subnets and security groups (Aktualisierung der Subnetze und Sicherheitsgruppen der Steuerebene) auf der eksctl-Website

AWS OFFICIALAktualisiert vor einem Jahr