Auswahl eines optimalen Amazon-EC2-Knoten-Instance-Typs - Amazon EKS

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.

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 den Support zu ermöglichen. Berücksichtigen Sie die folgenden Kriterien, um sicherzustellen, dass der ausgewählte Instance-Typ mit Amazon EKS kompatibel ist.

  • Alle Amazon EKS unterstützen die mac Familie derzeit AMIs nicht.

  • Arm und Amazon EKS ohne Beschleunigung unterstützen die p Familieng3, g4inf, und AMIs nicht.

  • Accelerated Amazon EKS unterstützt die t Familien ac,hpc,m, und AMIs nicht.

  • Für ARM-basierte Instances unterstützt Amazon Linux 2023 (AL2023) nur Instance-Typen, die Graviton2-Prozessoren oder neuere Prozessoren verwenden. AL2023 unterstützt keine Instances. A1

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, sollten Sie sich mit dem für Amazon EKS optimierten Arm Amazon Linux vertraut machen 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 .

AWS Nitro System-Instance-Typen unterstützen optional deutlich mehr IP-Adressen als Instance-Typen, die nicht zu Nitro System gehören. 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 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 Version 1.10.1 oder höher des Amazon VPC CNI-Add-ons in Ihrem Cluster 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 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 Erfahren Sie mehr über IPv6 Adressen für Cluster, Pods und Dienste.

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 Pods mit dem Amazon VPC CNI zuweisen IPs. 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 Features im Änderungsverlauf auf GitHub anzeigen.

AWS -Region, in der Sie Ihre Knoten erstellen

Nicht alle Instanztypen sind in allen Regionen verfügbar. AWS

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.

Wie wird MaxPods bestimmt

Der endgültige maxPods Wert, der auf einen Knoten angewendet wird, hängt von mehreren Komponenten ab, die in einer bestimmten Rangfolge interagieren. Wenn Sie diese Reihenfolge kennen, können Sie unerwartetes Verhalten beim Anpassen maxPods vermeiden.

Rangfolge (vom höchsten zum niedrigsten Wert):

  1. Durchsetzung verwalteter Knotengruppen — Wenn Sie eine verwaltete Knotengruppe ohne benutzerdefiniertes AMI verwenden, erzwingt Amazon EKS eine Obergrenze für die Benutzerdaten des Knotens. maxPods Für Instances mit weniger als 30 V CPUs beträgt 110 die Obergrenze. Für Fälle mit mehr als 30 V CPUs beträgt die Obergrenze250. Dieser Wert hat Vorrang vor jeder anderen maxPods Konfiguration, einschließlichmaxPodsExpression.

  2. maxPodsKubelet-Konfiguration — Wenn Sie ihn maxPods direkt in der Kubelet-Konfiguration festlegen (z. B. über eine Startvorlage mit einem benutzerdefinierten AMI), hat dieser Wert Vorrang vor. maxPodsExpression

  3. nodeadm maxPodsExpression — Wenn Sie maxPodsExpressionin Ihrem NodeConfig verwenden, wertet nodeadm den zu berechnenden Ausdruck aus. maxPods Dies ist nur wirksam, wenn der Wert nicht bereits von einer Quelle mit höherer Priorität festgelegt wurde.

  4. ENI-basierte Standardberechnung — Wenn kein anderer Wert festgelegt ist, berechnet das AMI auf der maxPods Grundlage der Anzahl der Elastic Network-Schnittstellen und IP-Adressen, die vom Instance-Typ unterstützt werden. Dies entspricht der Formel. (number of ENIs × (IPs per ENI − 1)) + 2 Die + 2 Konten für die Amazon VPC CNI, die auf jedem Knoten kube-proxy laufen und keine Pod-IP-Adresse verbrauchen.

Wichtig

Wenn Sie eine verwaltete Knotengruppe verwenden und Ihre angeben maxPodsExpressionNodeConfig, hat die Durchsetzung der verwalteten Knotengruppe Vorrang vor Ihrem Ausdruck. Um einen benutzerdefinierten maxPods Wert mit verwalteten Knotengruppen zu verwenden, müssen Sie in Ihrer Startvorlage ein benutzerdefiniertes AMI angeben und maxPods direkt festlegen. Weitere Informationen finden Sie unter Verwaltete Knoten mit Startvorlagen anpassen.

Verwaltete Knotengruppen im Vergleich zu selbstverwalteten Knoten

Bei verwalteten Knotengruppen (ohne benutzerdefiniertes AMI) fügt Amazon EKS den maxPods Wert in die Bootstrap-Benutzerdaten des Knotens ein. Das bedeutet Folgendes:

  • Der maxPods Wert ist immer auf 110 oder 250 abhängig von der Instance-Größe begrenzt.

  • Jeder von maxPodsExpression Ihnen konfigurierte Wert wird durch diesen injizierten Wert überschrieben.

  • Um einen anderen maxPods Wert zu verwenden, geben Sie ein benutzerdefiniertes AMI in Ihrer Startvorlage an --use-max-pods false und übergeben --kubelet-extra-args '--max-pods=my-value' es an das bootstrap.sh Skript. Beispiele finden Sie unter Verwaltete Knoten mit Startvorlagen anpassen.

Bei selbstverwalteten Knoten haben Sie die volle Kontrolle über den Bootstrap-Prozess. Sie können es maxPodsExpression in Ihrem verwenden NodeConfig oder --max-pods direkt an übergeben. bootstrap.sh

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