Was sind einige bewährte Methoden für die Verwendung von EC2-Spot-Instances mit Amazon EKS?

Letzte Aktualisierung: 22.12.2021

Ich möchte Amazon-Elastic-Compute-Cloud-Spot-Instances (Amazon EC2) mit meinem Amazon Elastic Kubernetes Service (Amazon EKS) verwenden. Was sind bewährte Methoden?

Kurzbeschreibung

Im Folgenden finden Sie einige bewährte Methoden für die Verwendung von Amazon-EC2-Spot-Instances mit Ihrem Amazon EKS:

  • Verwenden Sie Spot-Instances nicht für lang andauernde Jobs oder Stateful-Anwendungen.
  • Verwenden verwalteter Knotengruppen mit Spot-Instances.
  • Fügen Sie mehrere Instance-Typen zu Knotengruppen hinzu.
  • Verwenden Sie AWS Node Termination Handler für selbstverwaltete Knotengruppen.

Auflösung

Verwenden Sie Spot-Instances nicht für lang andauernde Aufträge oder zustandsbehaftete Anwendungen

Die kurze Lebensdauer einer Spot-Instance kann zu ungewollten Abbrüchen von lang andauernden Aufträgen führen. Es kann sich auch auf Anwendungen mit Statusinformationen auswirken, da zustandsbehaftete Anwendungen Shutdowns nicht tolerieren Verwenden Sie stattdessen On-Demand-Instances für Aufträge mit langer Laufzeit.

Verwenden verwalteter Knotengruppen mit Spot-Instances

Sie können den Kapazitätstyp einer verwalteten Knotengruppe als Spot festlegen. Die verwaltete Knotengruppe konfiguriert dann eine Auto Scaling-Gruppe für die Verwendung von EC2 Auto Scaling Capacity Rebalancing. Wenn die Funktion EC2 Auto Scaling Capacity Rebalancing aktiviert ist und ein Spot-Knoten eine Neuausgleichsempfehlung erhält, versucht Amazon EKS, den Spot-Knoten zu ersetzen.

Nachdem der neue Spot-Knoten fertig ist, trennt Amazon EKS den vorherigen Spot-Knoten und entleert ihn. Dies kann dazu beitragen, das Risiko beschädigter Amazon-Elastic-Block-Store-Volumes (Amazon EBS) oder unterbrochener Datenbankverbindungen zu verringern.

Hinzufügen mehrerer Instance-Typen zu Knotengruppen

Jeder Spot-Instance-Pool besteht aus einer ungenutzten EC2-Instance-Kapazität für einen bestimmten Instance-Typ in einer bestimmten Availability Zone. Wenn eine Knotengruppe versucht, einen neuen Knoten bereitzustellen, verwendet sie einen der Instance-Typen, die in ihrer Konfiguration definiert sind. Wenn die Instance-Typen in keiner der Availability Zones über Spot-Kapazität verfügen, kann die Knotengruppe nicht skaliert werden und wird herabgesetzt.

Um dieses Problem zu vermeiden, erhöhen Sie die Anzahl ähnlicher Instance-Typen in der Knotengruppe. Fügen Sie beispielsweise für einen Instance-Typ m5.large (2 vCPU/8 GiB RAM) diejenigen mit denselben vCPU- und RAM-Werten hinzu, z. B. m5a.large, m5n.large und m4.large.

Verwenden des AWS Node Termination Handler für selbstverwaltete Knotengruppen

Der AWS Node Termination Handler (von der GitHub-Website) wird in einem Amazon-EKS-Cluster als Bereitstellung oder DaemonSet bereitgestellt. Der AWS Node Termination Handler erweitert selbstverwaltete Knotengruppen um Funktionen, die ihnen fehlen. Es hilft selbstverwalteten Knotengruppen, EC2-Wartungsereignisse, Spot-Unterbrechungsmeldungen, Auto Scaling-Gruppen-Scale-In-Ereignisse und Neuverteilung der Availability Zone zu erkennen und angemessen darauf zu reagieren. Verwenden Sie die Option Warteschlangenprozessor, um alle Funktionen des AWS Node Termination Handler zur selbstverwalteten Knotengruppe hinzuzufügen.


War dieser Artikel hilfreich?


Benötigen Sie Hilfe zur Fakturierung oder technischen Support?