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.
Auswahl eines optimalen Amazon-EC2-Knoten-Instance-Typs
Amazon EC2 bietet eine große Auswahl an Instance-Typen für Worker-Knoten. Jeder Instance-Typ bietet andere Merkmale in Bezug auf Datenverarbeitung, Arbeitsspeicher, Speicher und Netzwerkfunktionen. Jede Instance wird abhängig von diesen Eigenschaften auch in Instance-Familien eingeordnet. Eine Liste finden Sie unter Verfügbare Instance-Typen im Amazon-EC2-Benutzerhandbuch. Amazon EKS veröffentlicht mehrere Varianten von Amazon-EC2-AMIs, um Support zu ermöglichen. Berücksichtigen Sie die folgenden Kriterien, um sicherzustellen, dass der ausgewählte Instance-Typ mit Amazon EKS kompatibel ist.
-
Nicht alle Amazon-EKS-AMIs unterstützen derzeit die
mac-Familie. -
Arm und nicht beschleunigte Amazon-EKS-AMIs unterstützen die Familien
g3,g4,infundpnicht. -
Beschleunigte Amazon-EKS-AMIs unterstützen die Familien
a,c,hpc,mundt. -
Für Arm-basierte Instances unterstützt Amazon Linux 2023 (AL2023) ausschließlich Instance-Typen, die Graviton2-Prozessoren oder neuere Prozessoren verwenden. AL2023 unterstützt keine
A1-Instances.
Berücksichtigen Sie bei der Auswahl zwischen Instance-Typen, die von Amazon EKS unterstützt werden, die folgenden Funktionen jedes Typs.
- Anzahl der Instances in einer Knotengruppe
-
Im Allgemeinen sind weniger, dafür größere Instances vorzuziehen, insbesondere wenn Sie über viele Daemonsets verfügen. Jede Instance erfordert API-Aufrufe an den API-Server. Je mehr Instances Sie haben, desto mehr Last auf dem API-Server.
- Betriebssystem
-
Überprüfen Sie die unterstützten Instance-Typen für Linux, Windows und Bottlerocket
. Lesen Sie vor dem Erstellen von Windows-Instances den Abschnitt Bereitstellen von Windows-Knoten in EKS-Clustern. - Hardware-Architektur
-
Benötigen Sie x86 oder Arm? Bevor Sie Arm-Instances bereitstellen, überprüfen Sie die für Amazon-EKS-optimierten Arm-Amazon-Linux-AMIs. Benötigen Sie Instances, die auf dem Nitro-System (Linux oder Windows) basieren oder über Beschleunigte Funktionen verfügen? Wenn Sie beschleunigte Funktionen benötigen, können Sie Linux nur mit Amazon EKS verwenden.
- Maximale Anzahl an Pods
-
Da jedem Pod eine eigene IP-Adresse zugewiesen wird, ist die Anzahl der IP-Adressen für einen Instance-Typ ein Faktor bei der Bestimmung der Anzahl der Pods, die auf der Instance ausgeführt werden können. Um manuell zu bestimmen, wie viele Pods ein Instance-Typ unterstützt, lesen Sie Von Amazon EKS empfohlene maximale Pods für jeden Amazon-EC2-Instance-Typ.
Anmerkung
Wenn Sie ein Amazon-EKS-optimiertes Amazon-Linux-2-AMI der Version
v20220406oder neuer verwenden, können Sie einen neuen Instance-Typ verwenden, ohne auf das neueste AMI zu aktualisieren. Für diese AMIs berechnet das AMI automatisch den erforderlichenmax-pods-Wert, wenn dieser nicht in der Datei eni-max-pods.txtaufgeführt ist. Instance-Typen, die sich derzeit in der Vorschau befinden, werden möglicherweise von Amazon EKS standardmäßig nicht unterstützt. Werte für max-podsfür solche Typen müssen noch zueni-max-pods.txtin unserem AMI hinzugefügt werden.AWS-Nitro-System
-Instance-Typen unterstützen optional deutlich mehr IP-Adressen als Nicht-Nitro-System-Instance-Typen. Allerdings stehen Pods nicht alle IP-Adressen zur Verfügung, die einer Instance zugewiesen wurden. Um Ihren Instances eine deutlich größere Anzahl von IP-Adressen zuzuweisen, müssen Sie Version 1.9.0oder höher des Amazon VPC CNI-Add-ons in Ihrem Cluster installiert und entsprechend konfiguriert haben. Weitere Informationen finden Sie unter Zuweisung weiterer IP-Adressen mit Präfixen zu Amazon-EKS-Knoten. Um Ihren Instances die größte Anzahl von IP-Adressen zuzuweisen, müssen Sie Version1.10.1oder höher des Amazon VPC CNI-Add-ons in Ihrem Cluster installiert haben und den Cluster mit derIPv6-Familie bereitstellen. - IP-Familie
-
Sie können jeden unterstützten Instance-Typ verwenden, wenn Sie die
IPv4-Familie für einen Cluster nutzen, was es Ihrem Cluster ermöglicht, Ihren Pods und Services privateIPv4-Adressen zuzuweisen. Wenn Sie jedoch dieIPv6-Familie für Ihren Cluster verwenden möchten, müsste Sie die AWS-Nitro-System-Instance-Typen oder Bare-Metal-Instance-Typen verwenden. Nur IPv4wird für Windows-Instances unterstützt. Ihr Cluster muss auf dem Version1.10.1oder höher des Amazon-VPC-CNI-Add-ons ausgeführt wird. Weitere Informationen zur Verwendung vonIPv6finden Sie unter Informationen zu IPv6-Adressen für Cluster, Pods und Services. - Version des Amazon-VPC-CNI-Add-Ons, das Sie ausführen
-
Die aktuelle Version des Amazon-CNI-Plugins für Kubernetes
unterstützt diese Instance-Typen . Möglicherweise müssen Sie Ihre Amazon VPC-CNI-Add-on-Version aktualisieren, um die Vorteile der neuesten unterstützten Instance-Typen zu nutzen. Weitere Informationen finden Sie unter Zuweisung von IPs zu Pods mit Amazon VPC CNI. Die neueste Version unterstützt die neuesten Features für die Verwendung mit Amazon EKS. Frühere Versionen unterstützen nicht alle Feature. Sie können die von verschiedenen Versionen unterstützten Funktionen im Änderungsverlauf auf GitHub anzeigen. - AWS-Region, in der Sie Ihre Knoten erstellen
-
Nicht alle Instance-Typen stehen in allen AWS-Regionen zur Verfügung.
- Ob Sie Sicherheitsgruppen für Pods verwenden
-
Wenn Sie Sicherheitsgruppen für Pods verwenden, werden nur bestimmte Instance-Typen unterstützt. Weitere Informationen finden Sie unter Einzelnen Pods Sicherheitsgruppen zuweisen.
Von Amazon EKS empfohlene maximale Pods für jeden Amazon-EC2-Instance-Typ
Da jedem Pod eine eigene IP-Adresse zugewiesen wird, ist die Anzahl der IP-Adressen für einen Instance-Typ ein Faktor bei der Bestimmung der Anzahl der Pods, die auf der Instance ausgeführt werden können. Amazon EKS stellt ein Skript bereit, das Sie herunterladen und ausführen können, um die von Amazon EKS empfohlene maximale Anzahl von Pods zur Ausführung auf jedem Instance-Typ zu bestimmen. Das Skript verwendet Hardwareattribute jeder Instance und Konfigurationsoptionen, um die maximale Pod-Anzahl zu bestimmen. Sie können die in diesen Schritten zurückgegebene Zahl verwenden, um Funktionen wie das Zuweisen von IP-Adressen zu Pods aus einem anderen Subnetz als dem der Instance zu aktivieren und die Anzahl der IP-Adressen für Ihre Instance erheblich zu erhöhen. Wenn Sie eine verwaltete Knotengruppe mit mehreren Instance-Typen verwenden, verwenden Sie einen Wert, der für alle Instance-Typen funktioniert.
-
Laden Sie ein Skript herunter, mit dem Sie die maximale Anzahl von Pods für jeden Instance-Typ berechnen können.
curl -O https://raw.githubusercontent.com/awslabs/amazon-eks-ami/master/templates/al2/runtime/max-pods-calculator.sh -
Markieren Sie das Skript auf Ihrem Computer als ausführbar.
chmod +x max-pods-calculator.sh -
Führen Sie das Skript aus und ersetzen Sie
m5.largedurch den Instance-Typ, den Sie bereitstellen möchten, und1.9.0-eksbuild.1durch Ihre Amazon-VPC-CNI-Add-On-Version. Informationen zum Ermitteln Ihrer Add-On-Version finden Sie in den Aktualisierungsverfahren unter Zuweisen von IPs zu Pods mit dem Amazon VPC CNI../max-pods-calculator.sh --instance-type m5.large --cni-version 1.9.0-eksbuild.1Eine Beispielausgabe sieht wie folgt aus.
29Sie können dem Skript die folgenden Optionen hinzufügen, um die maximal unterstützten Pods anzuzeigen, wenn optionale Funktionen verwendet werden.
-
--cni-custom-networking-enabled– Verwenden Sie diese Option, wenn Sie IP-Adressen aus einem anderen Subnetz als der Ihrer Instance zuweisen möchten. Weitere Informationen finden Sie unter Bereitstellung von Pods in alternativen Subnetzen mit benutzerdefiniertem Netzwerk. Das Hinzufügen dieser Option zum vorherigen Skript mit denselben Beispielwerten ergibt20. -
--cni-prefix-delegation-enabled– Verwenden Sie diese Option, wenn Sie jeder Elastic-Network-Schnittstelle deutlich mehr IP-Adressen zuweisen möchten. Diese Funktion erfordert eine Amazon Linux-Instance, die auf dem Nitro System und der Version1.9.0oder höher des Amazon VPC CNI-Add-ons ausgeführt wird. Weitere Informationen finden Sie unter Zuweisung weiterer IP-Adressen mit Präfixen zu Amazon-EKS-Knoten. Das Hinzufügen dieser Option zum vorherigen Skript mit denselben Beispielwerten ergibt110.
-
Sie können das Skript auch mit der Option --help ausführen, um alle verfügbaren Optionen anzuzeigen.
Anmerkung
Das Berechnungsskript für maximale Pods begrenzt den Rückgabewert basierend auf den Skalierbarkeitsschwellenwerten und empfohlenen Einstellungen von Kubernetes110. Wenn Ihr Instance-Typ mehr als 30 vCPUs hat, steigt dieser Grenzwert auf 250, eine Zahl, die auf internen Tests des Amazon-EKS-Skalierbarkeitsteams basiert. Weitere Informationen finden Sie im Blogbeitrag Amazon VPC CNI plugin increases pods per node limits
Überlegungen zu EKS Auto Mode
EKS Auto Mode begrenzt die Anzahl der Pods auf Knoten auf den niedrigeren der folgenden Werte:
-
110 Pods, feste Obergrenze
-
Das Ergebnis der oben beschriebenen Berechnung der maximalen Anzahl von Pods.