Erhöhen Sie die verfügbaren IP-Adressen für Ihren EKS Amazon-Knoten - Amazon EKS

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.

Erhöhen Sie die verfügbaren IP-Adressen für Ihren EKS Amazon-Knoten

Sie können die Anzahl der IP-Adressen erhöhen, denen Knoten zuweisen können Pods indem Sie Ihren Knoten IP-Präfixe zuweisen, anstatt einzelne sekundäre IP-Adressen zuzuweisen.

Gehen Sie wie folgt vor, bevor Sie mit dem Verfahren beginnen:

  • Lesen Sie sich die Überlegungen durch.

  • Sie benötigen einen vorhandenen Cluster. Informationen zum Bereitstellen finden Sie unter Erstellen Sie einen EKS Amazon-Cluster.

  • Die Subnetze, in denen sich Ihre EKS Amazon-Knoten befinden, müssen über ausreichend zusammenhängende /28 (für IPv4 Cluster) oder (für Cluster) Classless Inter-Domain IPv6 Routing /80 () -Blöcke verfügen. CIDR Sie können nur Linux-Knoten in einem IPv6-Cluster haben. Die Verwendung von IP-Präfixen kann fehlschlagen, wenn IP-Adressen im gesamten Subnetz verstreut sind. CIDR Wir empfehlen Folgendes:

    • Verwendung einer CIDR Subnetzreservierung, sodass IP-Adressen, die sich innerhalb des reservierten Bereichs befinden, nach deren Freigabe nicht neu zugewiesen werden, selbst wenn IP-Adressen innerhalb des reservierten Bereichs noch verwendet werden. Dadurch wird sichergestellt, dass Präfixe für die Zuweisung ohne Segmentierung verfügbar sind.

    • Verwenden Sie neue Subnetze, die speziell für die Ausführung der Workloads verwendet werden, denen IP-Präfixe zugewiesen sind. beides Windows and Linux Workloads können bei der Zuweisung von IP-Präfixen im selben Subnetz ausgeführt werden.

  • Um Ihren Knoten IP-Präfixe zuzuweisen, müssen Ihre Knoten Nitro-basiert sein. AWS Instances, die nicht auf Nitro basieren, weisen weiterhin einzelne sekundäre IP-Adressen zu, haben aber eine deutlich geringere Anzahl von IP-Adressen, denen sie zugewiesen werden können Pods als Nitro-based Instanzen tun das.

  • Für Cluster mit Linux Nur Knoten — Wenn Ihr Cluster für die IPv4 Familie konfiguriert ist, benötigen Sie Version 1.9.0 oder höher von Amazon VPC CNI plugin for Kubernetes Das Add-on ist installiert. Sie können Ihre aktuelle Version mit dem folgenden Befehl überprüfen.

    kubectl describe daemonset aws-node --namespace kube-system | grep Image | cut -d "/" -f 2

    Wenn Ihr Cluster für die IPv6-Familie konfiguriert ist, müssen Sie die Version 1.10.1 des Add-ons installiert haben. Wenn Ihre Plugin-Version älter ist als die erforderlichen Versionen, müssen Sie sie aktualisieren. Weitere Informationen finden Sie in den Aktualisierungsabschnitten von Assign IPs to Pods with the Amazon VPC CNI.

  • Für Cluster mit Windows Nur Knoten:

    • Ihr Cluster und seine Plattformversion müssen mindestens den Versionen in der folgenden Tabelle entsprechen. Lesen Sie Aktualisieren Sie den vorhandenen Cluster auf die neue Kubernetes-Version, um Ihre Cluster-Version zu aktualisieren. Wenn Ihr Cluster nicht die minimale Plattformversion hat, können Sie Ihren Knoten keine IP-Präfixe zuweisen, bis Amazon Ihre Plattformversion aktualisiert EKS hat.

      Kubernetes-Version Plattformversion

      1.27

      eks.3

      1.26

      eks.4

      1.25

      eks.5

      Sie können Ihre aktuelle Version überprüfen Kubernetes und Plattformversion durch Ersetzen my-cluster geben Sie den folgenden Befehl mit dem Namen Ihres Clusters ein und führen Sie dann den geänderten Befehl aus:aws eks describe-cluster --name my-cluster --query 'cluster.{"Kubernetes Version": version, "Platform Version": platformVersion}'.

    • Windows Unterstützung für Ihren Cluster aktiviert. Weitere Informationen finden Sie unter Windows-Knoten auf EKS Clustern bereitstellen.

      1. Konfigurieren Sie Ihren Cluster, um Knoten IP-Adresspräfixe zuzuweisen. Schließen Sie das Verfahren auf der Registerkarte ab, die dem Betriebssystem Ihres Knotens entspricht.

        Linux
        1. Aktivieren Sie den Parameter, um Netzwerkschnittstellen für Amazon Präfixe zuzuweisen VPC CNI DaemonSet. Bei der Bereitstellung eines 1.21 Clusters 1.10.1 oder einer späteren Version von Amazon VPC CNI plugin for Kubernetes Ein Add-on wird zusammen mit ihm bereitgestellt. Wenn Sie den Cluster mit der IPv6-Familie erstellt haben, wurde für diese Einstellung standardmäßig true festgelegt. Wenn Sie den Cluster mit der IPv4-Familie erstellt haben, wurde für diese Einstellung standardmäßig false festgelegt.

          kubectl set env daemonset aws-node -n kube-system ENABLE_PREFIX_DELEGATION=true
          Wichtig

          Auch wenn Ihr Subnetz über verfügbare IP-Adressen verfügt, wenn im Subnetz keine zusammenhängenden /28 Blöcke verfügbar sind, wird der folgende Fehler in der Amazon VPC CNI plugin for Kubernetes Protokolle.

InsufficientCidrBlocks: The specified subnet does not have enough free cidr blocks to satisfy the request

Dies kann aufgrund der Fragmentierung vorhandener sekundärer IP-Adressen auftreten, die über ein Subnetz verteilt sind. Um diesen Fehler zu beheben, erstellen Sie entweder ein neues Subnetz und starten Sie Pods dort, oder verwenden Sie eine EC2 CIDR Amazon-Subnetzreservierung, um Speicherplatz innerhalb eines Subnetzes für die Verwendung mit Präfixzuweisung zu reservieren. Weitere Informationen finden Sie unter CIDRSubnetzreservierungen im VPC Amazon-Benutzerhandbuch. ... Wenn Sie planen, eine verwaltete Knotengruppe ohne Startvorlage oder mit einer Startvorlage bereitzustellen, in der Sie keine AMI ID angegeben haben, und Sie verwenden eine Version von Amazon VPC CNI plugin for Kubernetes mit oder nach den Versionen, die in den Voraussetzungen aufgeführt sind, fahren Sie mit dem nächsten Schritt fort. Verwaltete Knotengruppen berechnen automatisch die maximale Anzahl von Pods für Sie.

+ Wenn Sie eine selbstverwaltete Knotengruppe oder eine verwaltete Knotengruppe mit einer Startvorlage bereitstellen, in der Sie eine AMI ID angegeben haben, müssen Sie die von Amazon EKS empfohlene maximale Anzahl von Pods für Ihre Knoten. Folgen Sie den Anweisungen in den von Amazon EKS empfohlenen maximalen Pods für jeden EC2 Amazon-Instance-Typ und fügen Sie Schritt 3 --cni-prefix-delegation-enabled hinzu. Notieren Sie sich die Ausgabe zur Verwendung in einem späteren Schritt.

+IMPORTANT: Bei verwalteten Knotengruppen wird eine maximale Anzahl auf den Wert von maxPods festgelegt. Für Instanzen mit weniger als 30 ist vCPUs die maximale Anzahl 110 und für alle anderen Instanzen ist die maximale Anzahl 250. Diese maximale Anzahl wird angewendet, unabhängig davon, ob die Präfixdelegierung aktiviert ist oder nicht. ... Wenn Sie einen 1.21 oder einen neueren Cluster verwendenIPv6, für den konfiguriert ist, fahren Sie mit dem nächsten Schritt fort.

+ Geben Sie die Parameter in einer der folgenden Optionen an. Um zu bestimmen, welche Option für Sie die richtige ist und welchen Wert Sie dafür angeben müssen, finden Sie unter WARM_ PREFIX _TARGET, WARM _IP_ und MINIMUM _IP_ TARGET auf TARGET GitHub.

+ Sie können das ersetzen example values mit einem Wert größer als Null.

+ ** WARM_PREFIX_TARGET

+

kubectl set env ds aws-node -n kube-system WARM_PREFIX_TARGET=1
  • WARM_IP_TARGET oder MINIMUM_IP_TARGET – Wenn einer der Werte festgelegt ist, überschreibt er alle Werte, die für WARM_PREFIX_TARGET festgelegt wurden.

    kubectl set env ds aws-node -n kube-system WARM_IP_TARGET=5
kubectl set env ds aws-node -n kube-system MINIMUM_IP_TARGET=2
  1. Erstellen Sie einen der folgenden Typen von Knotengruppen mit mindestens einem Amazon EC2 Nitro Amazon Linux 2-Instance-Typ. Eine Liste der Nitro-Instance-Typen finden Sie unter Instances built on the Nitro System im EC2 Amazon-Benutzerhandbuch. Diese Funktion wird nicht unterstützt auf Windows. Für die Optionen, die Folgendes beinhalten 110, ersetzen Sie ihn entweder durch den Wert aus Schritt 3 (empfohlen) oder durch Ihren eigenen Wert.

    • Selbstverwaltet — Stellen Sie die Knotengruppe gemäß den Anweisungen unter Selbstverwaltete Amazon Linux-Knoten erstellen bereit. Geben Sie den folgenden Text für den Parameter an BootstrapArguments.

      --use-max-pods false --kubelet-extra-args '--max-pods=110'

      Wenn Sie die Knotengruppe eksctl zum Erstellen verwenden, können Sie den folgenden Befehl verwenden.

      eksctl create nodegroup --cluster my-cluster --managed=false --max-pods-per-node 110
    • Verwaltet – Stellen Sie Ihre Knotengruppe mit einer der folgenden Optionen bereit:

      • Ohne Startvorlage oder mit Startvorlage ohne angegebene AMI ID — Schließen Sie das Verfahren unter Erstellen einer verwalteten Knotengruppe für Ihren Cluster ab. Managed Node Groups berechnet automatisch den von Amazon EKS empfohlenen max-pods Wert für Sie.

      • Mit einer Startvorlage mit einer bestimmten AMI ID — Geben Sie in Ihrer Startvorlage eine für Amazon EKS optimierte AMI ID oder eine benutzerdefinierteAMI, von Amazon EKS optimierte ID anAMI, stellen Sie dann die Knotengruppe mithilfe einer Startvorlage bereit und geben Sie die folgenden Benutzerdaten in der Startvorlage an. Diese Benutzerdaten übergeben Argumente an die bootstrap.sh-Datei. Weitere Informationen zur Bootstrap-Datei finden Sie in bootstrap.sh unter GitHub.

        /etc/eks/bootstrap.sh my-cluster \ --use-max-pods false \ --kubelet-extra-args '--max-pods=110'

        Wenn Sie die Knotengruppe eksctl zum Erstellen verwenden, können Sie den folgenden Befehl verwenden.

        eksctl create nodegroup --cluster my-cluster --max-pods-per-node 110

        Wenn Sie eine benutzerdefinierte Konfiguration erstellt habenAMI, die nicht auf Amazon EKS Optimized basiertAMI, müssen Sie die Konfiguration selbst anpassen.

        Anmerkung

        Wenn Sie auch IP-Adressen zuweisen möchten Pods aus einem anderen Subnetz als dem der Instance, müssen Sie die Funktion in diesem Schritt aktivieren. Weitere Informationen finden Sie unter Bereitstellen pods in alternativen Subnetzen mit benutzerdefiniertem Netzwerk.

        Windows
  2. Aktivieren Sie die Zuweisung von IP-Präfixen.

    1. Öffnen Sie die amazon-vpc-cni ConfigMap zum Bearbeiten.

      kubectl edit configmap -n kube-system amazon-vpc-cni -o yaml
    2. Fügen Sie dem Abschnitt data die folgende Zeile hinzu.

      enable-windows-prefix-delegation: "true"
    3. Speichern Sie die Datei und schließen Sie den Editor.

    4. Vergewissern Sie sich, dass die Anmerkung der ConfigMap hinzugefügt wurde.

      kubectl get configmap -n kube-system amazon-vpc-cni -o "jsonpath={.data.enable-windows-prefix-delegation}"

      Wenn die zurückgegebene Ausgabe nicht der Fall isttrue, ist möglicherweise ein Fehler aufgetreten. Versuchen Sie erneut, den Schritt abzuschließen.

      Wichtig

      Selbst wenn Ihr Subnetz über verfügbare IP-Adressen verfügt, werden Sie in den Knotenereignissen den folgenden Fehler sehen, wenn das Subnetz keine zusammenhängenden /28-Blöcke zur Verfügung hat.

"failed to allocate a private IP/Prefix address: InsufficientCidrBlocks: The specified subnet does not have enough free cidr blocks to satisfy the request"

Dies kann aufgrund der Fragmentierung vorhandener sekundärer IP-Adressen auftreten, die über ein Subnetz verteilt sind. Um diesen Fehler zu beheben, erstellen Sie entweder ein neues Subnetz und starten Sie Pods dort, oder verwenden Sie eine EC2 CIDR Amazon-Subnetzreservierung, um Speicherplatz innerhalb eines Subnetzes für die Verwendung mit Präfixzuweisung zu reservieren. Weitere Informationen finden Sie unter CIDRSubnetzreservierungen im VPC Amazon-Benutzerhandbuch. ... (Optional) Geben Sie eine zusätzliche Konfiguration an, um das Verhalten vor der Skalierung und der dynamischen Skalierung für Ihren Cluster zu steuern. Weitere Informationen finden Sie unter Konfigurationsoptionen mit aktiviertem Präfix-Delegierungsmodus unter GitHub Windows.

+.... Öffnen Sie das amazon-vpc-cni ConfigMap zur Bearbeitung.

+

kubectl edit configmap -n kube-system amazon-vpc-cni -o yaml
  1. Ersetzen Sie das example values durch einen Wert größer als Null und fügen Sie die benötigten Einträge zum data Abschnitt von hinzuConfigMap. Wenn Sie für warm-ip-target oder minimum-ip-target einen Wert festlegen, überschreibt der Wert jeden Wert, der für warm-prefix-target festgelegt wurde.

    warm-prefix-target: "1" warm-ip-target: "5" minimum-ip-target: "2"
  2. Speichern Sie die Datei und schließen Sie den Editor.

    1. Erstellen Windows Knotengruppen mit mindestens einem Amazon EC2 Nitro Instanztyp. Für eine Liste Nitro Instance-Typen, siehe Instances, die auf dem Nitro System basieren, im EC2 Amazon-Benutzerhandbuch. Standardmäßig ist die maximale Anzahl von Pods die Zahl, die Sie auf einem Knoten bereitstellen können, ist 110. Wenn Sie diese Zahl erhöhen oder verringern möchten, geben Sie in den Benutzerdaten für die Bootstrap-Konfiguration Folgendes an. Ersetzen max-pods-quantity mit Ihrem maximalen Pod-Wert.

      -KubeletExtraArgs '--max-pods=max-pods-quantity'

      Wenn Sie verwaltete Knotengruppen bereitstellen, muss diese Konfiguration der Startvorlage hinzugefügt werden. Weitere Informationen finden Sie unter Passen Sie verwaltete Knoten mit Startvorlagen an. Weitere Informationen zu den Konfigurationsparametern für Windows Bootstrap-Skript finden Sie unterBootstrap-Skript-Konfigurationsparameter. Nachdem Ihre Knoten bereitgestellt wurden, zeigen Sie die Knoten in Ihrem Cluster an.

      +

      kubectl get nodes

      + Eine Beispielausgabe sieht wie folgt aus.

      +

      NAME STATUS ROLES AGE VERSION ip-192-168-22-103.region-code.compute.internal Ready <none> 19m v1.XX.X-eks-6b7464 ip-192-168-97-94.region-code.compute.internal Ready <none> 19m v1.XX.X-eks-6b7464
      1. Beschreiben Sie einen der Knoten, um den Wert von max-pods für den Knoten und die Anzahl der verfügbaren IP-Adressen zu bestimmen. Ersetzen 192.168.30.193 wobei die IPv4 Adresse im Namen eines Ihrer Knoten in der vorherigen Ausgabe zurückgegeben wurde.

        kubectl describe node ip-192-168-30-193.region-code.compute.internal | grep 'pods\|PrivateIPv4Address'

        Eine Beispielausgabe sieht wie folgt aus.

        pods: 110 vpc.amazonaws.com/PrivateIPv4Address: 144

        In der vorherigen Ausgabe 110 ist dies die maximale Anzahl von Pods that Kubernetes wird auf dem Knoten bereitgestellt, obwohl 144 IP-Adressen sind verfügbar.