Unterstützung für die Verbesserung dieser Seite beitragen
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.
Um zu diesem Benutzerhandbuch beizutragen, 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.
Anzahl der verfügbaren IP-Adressen für Ihren Amazon-EKS-Knoten erhöhen
Sie können die Anzahl der IP-Adressen erhöhen, die Knoten Pods zuweisen können, indem Sie IP-Präfixe zuweisen, anstatt Ihren Knoten einzelne sekundäre IP-Adressen zuzuweisen.
Voraussetzungen
-
Sie benötigen einen vorhandenen Cluster. Informationen zum Bereitstellen finden Sie unter Amazon-EKS-Cluster erstellen.
-
Die Subnetze, in denen sich Ihre Amazon-EKS-Knoten befinden, müssen über ausreichend zusammenhängende
/28(fürIPv4-Cluster) oder/80(fürIPv6-Cluster) CIDR-Blöcke (Classless Inter-Domain Routing) verfügen. Sie können nur Linux-Knoten in einemIPv6-Cluster haben. Die Verwendung von IP-Präfixen kann fehlschlagen, wenn IP-Adressen im Subnetz-CIDR verstreut sind. Wir empfehlen Folgendes:-
Verwendung einer Subnetz-CIDR-Reservierung, sodass selbst dann, wenn IP-Adressen innerhalb des reservierten Bereichs noch verwendet werden, die IP-Adressen nach ihrer Veröffentlichung nicht neu zugewiesen 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. Sowohl Windows- als auch Linux-Workloads können bei der Zuordnung von IP-Präfixen im selben Subnetz ausgeführt werden.
-
-
Um Ihren Knoten IP-Präfixe zuzuweisen, müssen Ihre Knoten AWS Nitro-basiert sein. Instances, die nicht Nitro-basiert sind, weisen weiterhin einzelne sekundäre IP-Adressen zu, weisen jedoch eine deutlich geringere Anzahl von IP-Adressen auf, die Pods zugewiesen werden können als Nitro-basierte Instances.
-
Nur für Cluster mit Linux-Knoten – Wenn Ihr Cluster für die
IPv4-Familie konfiguriert ist, muss Version1.9.0oder höher des Amazon-VPC-CNI-Plugins für das Kubernetes-Add-On installiert sein. 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 2Wenn Ihr Cluster für die
IPv6-Familie konfiguriert ist, müssen Sie die Version1.10.1des 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. -
Nur für Cluster mit Windows-Knoten
-
Sie müssen den Windows-Support für Ihren Cluster aktiviert haben. Weitere Informationen finden Sie unter Bereitstellung von Windows-Knoten in EKS-Clustern.
-
Knoten IP-Adress-Präfixe zuweisen
Konfigurieren Sie Ihren Cluster, um Knoten IP-Adresspräfixe zuzuweisen. Führen Sie den Vorgang durch, der dem Betriebssystem Ihres Knotens entspricht.
Linux
-
Aktivieren Sie den Parameter, um Netzwerkschnittstellen für das Amazon VPC CNI Präfixe zuzuweisen. DaemonSet Wenn Sie einen Cluster bereitstellen, wird die Version
1.10.1oder eine neuere Version des Amazon-VPC-CNI-Plugins für Kubernetes-Add-On mit diesem bereitgestellt. Wenn Sie den Cluster mit derIPv6-Familie erstellt haben, wurde für diese Einstellung standardmäßigtruefestgelegt. Wenn Sie den Cluster mit derIPv4-Familie erstellt haben, wurde für diese Einstellung standardmäßigfalsefestgelegt.kubectl set env daemonset aws-node -n kube-system ENABLE_PREFIX_DELEGATION=trueWichtig
Auch wenn Ihr Subnetz über verfügbare IP-Adressen verfügt, wird in den Protokollen des Amazon-VPC-CNI-Plugins für Kubernetes der folgende Fehler angezeigt, wenn im Subnetz keine zusammenhängenden
/28-Blöcke verfügbar sind:InsufficientCidrBlocks: The specified subnet does not have enough free cidr blocks to satisfy the requestDies 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 CIDR-Reservierung für das EC2 Amazon-Subnetz, um Speicherplatz innerhalb eines Subnetzes für die Verwendung mit Präfixzuweisung zu reservieren. Weitere Informationen erhalten Sie unter Subnetz-CIDR-Reservierungen im Amazon-VPC-Benutzerhandbuch.
-
Wenn Sie planen, eine verwaltete Knotengruppe ohne Startvorlage bereitzustellen oder mit einer Startvorlage, in der Sie keine AMI-ID angegeben haben, und Sie eine Version des Amazon-VPC-CNI-Plugins für Kubernetes verwenden, die mindestens der in den Voraussetzungen gelisteten Version entspricht, 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 Anzahl der maximalen Pods für Ihre Knoten ermitteln. 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-enabledhinzu. Notieren Sie sich die Ausgabe zur Verwendung in einem späteren Schritt.Wichtig
Verwaltete Knotengruppen erzwingen eine maximale Anzahl für den Wert von
maxPods. Für Instances mit weniger als 30 V ist CPUs die maximale Anzahl 110 und für alle anderen Instances ist die maximale Anzahl 250. Diese maximale Anzahl wird angewendet, unabhängig davon, ob die Präfixdelegierung aktiviert ist oder nicht. -
Wenn Sie einen für
IPv6konfigurierten Cluster verwenden, fahren Sie mit dem nächsten Schritt fort.Geben Sie die Parameter in einer der folgenden Optionen an. Um zu ermitteln, 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_TARGET und MINIMUM_IP_TARGET on
. GitHub Sie können die Beispielwerte durch einen Wert größer als Null ersetzen.
-
WARM_PREFIX_TARGETkubectl set env ds aws-node -n kube-system WARM_PREFIX_TARGET=1 -
WARM_IP_TARGEToderMINIMUM_IP_TARGET– Wenn einer der Werte festgelegt ist, überschreibt er alle Werte, die fürWARM_PREFIX_TARGETfestgelegt wurden.kubectl set env ds aws-node -n kube-system WARM_IP_TARGET=5kubectl set env ds aws-node -n kube-system MINIMUM_IP_TARGET=2
-
-
Erstellen Sie einen der folgenden Typen von Knotengruppen mit mindestens einem Amazon EC2 Nitro Amazon Linux 2023 Instance-Typ. Eine Liste der Nitro-Instance-Typen finden Sie unter Instances built on the Nitro System im EC2 Amazon-Benutzerhandbuch. Diese Funktion wird unter Windows nicht unterstützt. Für die Optionen, die
110enthalten, ersetzen Sie es entweder durch den Wert aus Schritt 3 (empfohlen) oder Ihren eigenen Wert.-
Selbstverwaltet – Stellen Sie die Knotengruppe gemäß den Anweisungen unter Erstellen selbstverwalteter Amazon-Linux-Knoten bereit. Bevor Sie den CloudFormation Stack erstellen, öffnen Sie die Vorlagendatei und passen Sie sie wie folgt
NodeLaunchTemplateanUserData... apiVersion: node.eks.aws/v1alpha1 kind: NodeConfig spec: cluster: name: ${ClusterName} apiServerEndpoint: ${ApiServerEndpoint} certificateAuthority: ${CertificateAuthorityData} cidr: ${ServiceCidr} kubelet: config: maxPods: 110 ...Wenn Sie
eksctlzum Erstellen der Knotengruppe 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 einer Startvorlage ohne angegebene AMI-ID – Führen Sie das Verfahren unter Verwaltete Knotengruppe für Ihren Cluster erstellen durch. Verwaltete Knotengruppen berechnen automatisch den von Amazon EKS empfohlenen
max-pods-Wert für Sie. -
Mit einer Startvorlage mit einer angegebenen AMI-ID – Geben Sie in Ihrer Startvorlage eine Amazon EKS-optimierte AMI-ID oder ein benutzerdefiniertes AMI an, das auf dem Amazon EKS-optimierten AMI basiert, stellen Sie dann die Knotengruppe mithilfe einer Startvorlage bereit und geben Sie die folgenden Benutzerdaten an in der Startvorlage. Diese Benutzerdaten übergeben ein
NodeConfigObjekt, das vomnodeadmTool auf dem Knoten gelesen werden soll. Weitere Informationen zunodeadmfinden Sie in der nodeadm-Dokumentation.MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="//" --// Content-Type: application/node.eks.aws --- apiVersion: node.eks.aws/v1alpha1 kind: NodeConfig spec: cluster: apiServerEndpoint: [.replaceable]`my-cluster` certificateAuthority: [.replaceable]`LS0t...` cidr: [.replaceable]`10.100.0.0/16` name: [.replaceable]`my-cluster kubelet: config: maxPods: [.replaceable]`110` --//--Wenn Sie
eksctlzum Erstellen der Knotengruppe verwenden, können Sie den folgenden Befehl verwenden.eksctl create nodegroup --cluster my-cluster --max-pods-per-node 110Wenn Sie ein benutzerdefiniertes AMI erstellt haben, das nicht auf dem für Amazon EKS optimierten AMI erstellt wurde, müssen Sie die Konfiguration selbst erstellen.
-
Anmerkung
Wenn Sie Pods auch IP-Adressen aus einem anderen Subnetz als dem der Instance zuweisen möchten, müssen Sie die Funktion in diesem Schritt aktivieren. Weitere Informationen finden Sie unter Bereitstellung von Pods in alternativen Subnetzen mit benutzerdefiniertem Netzwerk.
-
Windows
-
Aktivieren Sie die Zuweisung von IP-Präfixen.
-
Öffnen Sie die
amazon-vpc-cniConfigMapzum Bearbeiten.kubectl edit configmap -n kube-system amazon-vpc-cni -o yaml -
Fügen Sie dem Abschnitt
datadie folgende Zeile hinzu.enable-windows-prefix-delegation: "true" -
Speichern Sie die Datei und schließen Sie den Editor.
-
Vergewissern Sie sich, dass die Anmerkung der
ConfigMaphinzugefügt wurde.kubectl get configmap -n kube-system amazon-vpc-cni -o "jsonpath={.data.enable-windows-prefix-delegation}"Wenn die zurückgegebene Ausgabe nicht
trueist, ist möglicherweise ein Fehler aufgetreten. Versuchen Sie erneut, den Schritt abzuschließen.Wichtig
Auch wenn Ihr Subnetz über verfügbare IP-Adressen verfügt, wird in den Protokollen des Amazon-VPC-CNI-Plugins für Kubernetes der folgende Fehler angezeigt, wenn im Subnetz keine zusammenhängenden
/28-Blöcke verfügbar sind:InsufficientCidrBlocks: The specified subnet does not have enough free cidr blocks to satisfy the requestDies 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 CIDR-Reservierung für das EC2 Amazon-Subnetz, um Speicherplatz innerhalb eines Subnetzes für die Verwendung mit Präfixzuweisung zu reservieren. Weitere Informationen erhalten Sie unter Subnetz-CIDR-Reservierungen im Amazon-VPC-Benutzerhandbuch.
-
-
(Optional) Geben Sie eine zusätzliche Konfiguration an, um das Verhalten Ihres Clusters vor der Skalierung und der dynamischen Skalierung zu steuern. Weitere Informationen finden Sie unter Konfigurationsoptionen mit aktiviertem Präfix-Delegierungsmodus
unter Windows. GitHub -
Öffnen Sie die
amazon-vpc-cniConfigMapzum Bearbeiten.kubectl edit configmap -n kube-system amazon-vpc-cni -o yaml -
Ersetzen Sie die Beispielwerte durch einen Wert größer als Null und fügen Sie die benötigten Einträge zum
dataAbschnitt von hinzuConfigMap. Wenn Sie fürwarm-ip-targetoderminimum-ip-targeteinen Wert festlegen, überschreibt der Wert jeden Wert, der fürwarm-prefix-targetfestgelegt wurde.warm-prefix-target: "1" warm-ip-target: "5" minimum-ip-target: "2" -
Speichern Sie die Datei und schließen Sie den Editor.
-
-
Erstellen Sie Windows-Knotengruppen mit mindestens einem Amazon EC2 Nitro-Instance-Typ. Eine Liste der Nitro-Instance-Typen finden Sie unter Instances built on the Nitro System im EC2 Amazon-Benutzerhandbuch. Standardmäßig beträgt die maximale Anzahl von Pods, die Sie auf einem Knoten bereitstellen können, 110. Wenn Sie diese Zahl erhöhen oder verringern möchten, geben Sie in den Benutzerdaten für die Bootstrap-Konfiguration Folgendes an. Ersetzen Sie
max-pods-quantitydurch Ihren Wert für die maximale Anzahl von Pods.-KubeletExtraArgs '--max-pods=max-pods-quantity'Wenn Sie verwaltete Knotengruppen bereitstellen, muss diese Konfiguration zur Startvorlage hinzugefügt werden. Weitere Informationen finden Sie unter Verwaltete Knoten mit Startvorlagen anpassen. Weitere Informationen zu den Konfigurationsparametern für das Windows-Bootstrap-Skript finden Sie unter Bootstrap-Skript-Konfigurationsparameter.
Bestimmung der maximalen Anzahl von Pods und verfügbaren IP-Adressen
-
Nachdem Ihre Knoten bereitgestellt wurden, zeigen Sie die Knoten in Ihrem Cluster an.
kubectl get nodesEine 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 -
Beschreiben Sie einen der Knoten, um den Wert von
max-podsfür den Knoten und die Anzahl der verfügbaren IP-Adressen zu bestimmen. Ersetzen Sie192.168.30.193durch dieIPv4-Adresse im Namen eines Ihrer Knoten, der in der Ausgabe des vorherigen Schritts 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: 144In der vorherigen Ausgabe
110ist dies die maximale Anzahl von Pods, die Kubernetes auf dem Knoten bereitstellen wird, obwohl144IP-Adressen verfügbar sind.