Auswählen eines Amazon-EC2-Instance-Typs - Amazon EKS

Auswählen eines Amazon-EC2-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 für Linux-Instances und Verfügbare Instance-Typen im Amazon-EC2-Benutzerhandbuch für Windows-Instances. 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, inf und p.

  • Beschleunigte Amazon-EKS-AMIs unterstützen die Familien a, c, hpc, m und t.

Berücksichtigen Sie bei der Auswahl zwischen Instance-Typen, die von Amazon EKS unterstützt werden, die folgenden Funktionen jedes Typs.

  • Anzahl von Instances in einer Knotengruppe – Im Allgemeinen sind weniger, größere Instances besser, besonders wenn Sie viele Daemonsets haben. 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ürLinux, Windows und Bottlerocket. Bevor Sie Windows-Instances erstellen, lesen Sie Die Windows-Unterstützung für Ihre Amazon-EKS-Cluster aktivieren.

  • Hardware-Architektur – Benötigen Sie x86 oder Arm? Sie können sie nur Linux auf Arm bereitstellen. Bevor Sie Arm-Instances bereitstellen, lesen Sie Amazon-EKS-optimierte 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 von 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, siehe 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 v20220406 oder 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 nötigen max-pods-Wert, wenn er nicht in der Datei eni-max-pods.txt aufgefü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-pods für solche Typen müssen noch zu eni-max-pods.txt in 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.0 oder höher des Amazon VPC CNI-Add-ons in Ihrem Cluster installiert und entsprechend konfiguriert haben. Weitere Informationen finden Sie unter Erhöhen Sie die Anzahl der verfügbaren IP-Adressen für Ihre Amazon-EC2-Knoten. Um Ihren Instances die größte Anzahl von IP-Adressen zuzuweisen, müssen Sie Version 1.10.1 oder höher des Amazon VPC CNI-Add-ons in Ihrem Cluster 1.21 oder höher installiert haben und den Cluster mit der IPv6-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 private IPv4-Adressen zuzuweisen. Wenn Sie jedoch die IPv6-Familie für Ihren Cluster verwenden möchten, müsste Sie die AWS-Nitro-System-Instance-Typen oder Bare-Metal-Instance-Typen verwenden. Nur IPv4 wird für Windows-Instances unterstützt. Ihr Cluster muss ein neuer Cluster 1.21 oder höher sein, auf dem Version 1.10.1 oder höher des Amazon-VPC-CNI-Add-ons ausgeführt wird. Weitere Informationen zur Verwendung von IPv6 finden Sie unter Tutorial: Zuweisen von IPv6-Adressen zu pods und services.

  • Version des Amazon VPC CNI-Add-ons, das Sie ausführen – Die neueste Version des Amazon VPC CNI-Plugin für Kubernetesunterstü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 Aktualisieren des selbstverwalteten Amazon VPC CNI plugin for Kubernetes-Add-ons. Die neueste Version unterstützt die neuesten Funktionen für die Verwendung mit Amazon EKS. Frühere Versionen unterstützen nicht alle Funktionen. 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 sind in allen AWS-Regionen verfügbar.

  • Wenn Sie Sicherheitsgruppen für pods verwenden – Wenn Sie Sicherheitsgruppen für pods, werden nur bestimmte Instance-Typen unterstützt. Weitere Informationen finden Sie unter Tutorial: Sicherheitsgruppen für pods.

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 pods-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.

  1. Laden Sie ein Skript herunter, mit dem Sie die maximale Anzahl von pods für jeden Instance-Typ berechnen können.

    curl -o max-pods-calculator.sh https://raw.githubusercontent.com/awslabs/amazon-eks-ami/master/files/max-pods-calculator.sh
  2. Markieren Sie das Skript auf Ihrem Computer als ausführbar.

    chmod +x max-pods-calculator.sh
  3. Führen Sie das Skript aus und ersetzen Sie m5.large durch den Instance-Typ, den Sie bereitstellen möchten, und 1.9.0-eksbuild.1 durch Ihre Amazon-VPC-CNI-Add-on-Version. Informationen zum Ermitteln der Add-on-Version finden Sie in den Update-Verfahren unter Verwalten des Amazon VPC CNI plugin for Kubernetes-Add-ons.

    ./max-pods-calculator.sh --instance-type m5.large --cni-version 1.9.0-eksbuild.1

    Die Beispielausgabe lautet wie folgt.

    29

    Sie 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 Tutorial: Benutzerdefinierte Netzwerke. Das Hinzufügen dieser Option zum vorherigen Skript mit denselben Beispielwerten ergibt 20.

    • --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 Version 1.9.0 oder höher des Amazon VPC CNI-Add-ons ausgeführt wird. Weitere Informationen finden Sie unter Erhöhen Sie die Anzahl der verfügbaren IP-Adressen für Ihre Amazon-EC2-Knoten. Das Hinzufügen dieser Option zum vorherigen Skript mit denselben Beispielwerten ergibt 110.

Sie können das Skript auch mit der Option --help ausführen, um alle verfügbaren Optionen anzuzeigen.