View a markdown version of this page

Reduzieren Sie die Latenz für Anwendungen mit langen Startzeiten, indem Sie warme Pools mit verwalteten Knotengruppen verwenden - 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.

Reduzieren Sie die Latenz für Anwendungen mit langen Startzeiten, indem Sie warme Pools mit verwalteten Knotengruppen verwenden

Wenn Ihre Anwendungen lange Initialisierungs- oder Startzeiten haben, können Scale-Out-Ereignisse zu Verzögerungen führen. Neue Knoten müssen vollständig gestartet und dem Cluster hinzugefügt werden, bevor Pods für sie geplant werden können. Diese Latenz kann sich auf die Anwendungsverfügbarkeit bei Datenverkehrsspitzen oder schnellen Skalierungsereignissen auswirken. Warm Pools lösen dieses Problem, indem sie einen Pool mit vorinitialisierten EC2-Instances verwalten, die den Startvorgang bereits abgeschlossen haben. Während eines Scale-Out-Ereignisses werden Instances vom Warm-Pool direkt in Ihren Cluster verschoben. Dadurch werden die zeitaufwändigen Initialisierungsschritte umgangen und die Zeit, die benötigt wird, bis neue Kapazitäten verfügbar sind, erheblich reduziert. Weitere Informationen finden Sie unter Reduzieren der Latenz für Anwendungen mit langen Startzeiten mithilfe warmer Pools im Amazon EC2 Auto Scaling Scaling-Benutzerhandbuch.

Von Amazon EKS verwaltete Knotengruppen unterstützen Amazon EC2 Auto Scaling Scaling-Warm-Pools. Ein warmer Pool verwaltet vorinitialisierte EC2-Instances zusammen mit Ihrer Auto Scaling Scaling-Gruppe, die Ihrem Cluster bei Scale-Out-Ereignissen schnell beitreten können. Instances im Warmpool haben den Startinitialisierungsprozess bereits abgeschlossen und können im Status, oder belassen werden. Stopped Running Hibernated

Amazon EKS verwaltet Warm-Pools während des gesamten Knotengruppen-Lebenszyklus mithilfe der AWSServiceRoleForAmazonEKSNodegroup serviceverknüpften Rolle, um Warm-Pool-Ressourcen zu erstellen, zu aktualisieren und zu löschen.

Funktionsweise

Wenn Sie einen warmen Pool konfigurieren, erstellt Amazon EKS einen EC2 Auto Scaling Scaling-Warmpool, der an die Auto Scaling-Gruppe Ihrer Knotengruppe angehängt ist. Instances werden im Warmpool gestartet, schließen den Startinitialisierungsprozess ab und verbleiben im konfigurierten Zustand (, oderHibernated) RunningStopped, bis sie benötigt werden. Bei Scale-Out-Ereignissen wechseln Instances vom Warmpool zur Auto Scaling Scaling-Gruppe, schließen den Amazon EKS-Initialisierungsprozess ab, um dem Cluster beizutreten, und stehen dann für die Pod-Planung zur Verfügung. Wenn die Wiederverwendung von Instances aktiviert ist, können Instances bei Scale-In-Ereignissen in den Warmpool zurückkehren.

Wichtig

Konfigurieren Sie warme Pools immer über die Amazon EKS-API mit create-nodegroup oderupdate-nodegroup-config. Ändern Sie die Warm-Pool-Einstellungen nicht manuell mithilfe der EC2 Auto Scaling Scaling-API, da dies zu Konflikten mit der Amazon EKS-Ressourcenverwaltung führen kann.

Überlegungen

Wichtig

Lesen Sie vor der Konfiguration von Warm-Pools die Voraussetzungen und Einschränkungen in Warm Pools for Amazon EC2 Auto Scaling im Amazon EC2 Auto Scaling Scaling-Benutzerhandbuch. Nicht alle Instance-Typen oder Konfigurationen werden unterstützt. AMIs

  • IAM-Berechtigungen — Die AWSServiceRoleForAmazonEKSNodegroup serviceverknüpfte Rolle (automatisch mit Ihrer ersten verwalteten Knotengruppe erstellt) umfasst die erforderlichen Warm-Pool-Verwaltungsberechtigungen.

  • AMI-Einschränkungen — Warme Pools unterstützen keine benutzerdefinierten Pools AMIs. Sie müssen Amazon EKS Optimized verwenden AMIs.

  • Einschränkungen von Bottlerocket — Wenn Sie Bottlerocket verwenden AMIs, wird der Hibernated Pool-Status nicht unterstützt. Nur Status „Verwenden“ oder „Pool“. Stopped Running Darüber hinaus wird die reuseOnScaleIn Funktion von AMIs Bottlerocket nicht unterstützt.

  • Unterstützung für den Ruhezustand — Der Hibernated Pool-Status wird nur für bestimmte Instance-Typen unterstützt. Informationen zu den unterstützten Instance-Typen finden Sie unter Voraussetzungen für den Ruhezustand im Amazon EC2 EC2-Benutzerhandbuch.

  • Auswirkungen auf die Kosten — Die Einrichtung eines warmen Pools, wenn er nicht benötigt wird, kann zu unnötigen Kosten führen.

  • Kapazitätsplanung — Legen Sie die Größe Ihres Warmwasserpools auf der Grundlage von Skalierungsmustern fest, um Kosten und Verfügbarkeit in Einklang zu bringen. Beginnen Sie mit 10 bis 20% der erwarteten Spitzenkapazität.

  • VPC-Netzwerke — Stellen Sie sicher, dass ausreichend IP-Adressen sowohl für Auto Scaling Scaling-Gruppen- als auch für Warm-Pool-Instances vorhanden sind.

Warme Pools konfigurieren

Sie können warme Pools konfigurieren, wenn Sie eine neue verwaltete Knotengruppe erstellen, oder eine bestehende verwaltete Knotengruppe aktualisieren, um Unterstützung für warme Pools hinzuzufügen.

Konfigurationsparameter

  • enabled — (boolean) Zeigt an, dass Sie beabsichtigen, der verwalteten Knotengruppe einen Warm-Pool hinzuzufügen. Erforderlich, um die Unterstützung für warme Pools zu aktivieren.

  • maxGroupPreparedKapazität — (Ganzzahl) Maximale Gesamtzahl der Instances im Warmpool und in der Auto Scaling Scaling-Gruppe zusammen.

  • minSize — (Ganzzahl) Mindestanzahl von Instanzen, die im warmen Pool verwaltet werden müssen. Standard: 0.

  • poolState — (Zeichenfolge) Status für Warm-Pool-Instanzen. Standard: Stopped.

  • reuseOnScaleIn — (boolean) Ob Instances bei Scale-In-Ereignissen zum Warm-Pool zurückkehren, anstatt sie zu beenden. Standard: false. Wird von Bottlerocket nicht unterstützt. AMIs

Verwenden der AWS CLI

Sie können einen warmen Pool konfigurieren, wenn Sie eine verwaltete Knotengruppe erstellen, oder einer vorhandenen Knotengruppe einen hinzufügen.

Erstellen Sie eine Knotengruppe mit einem warmen Pool

aws eks create-nodegroup \ --cluster-name my-cluster \ --nodegroup-name my-nodegroup \ --node-role arn:aws:iam::111122223333:role/AmazonEKSNodeRole \ --subnets subnet-12345678 subnet-87654321 \ --region us-east-1 \ --scaling-config minSize=2,maxSize=10,desiredSize=3 \ --warm-pool-config enabled=true,maxGroupPreparedCapacity=8,minSize=2,poolState=Stopped,reuseOnScaleIn=true

Fügen Sie einer vorhandenen Knotengruppe einen warmen Pool hinzu

aws eks update-nodegroup-config \ --cluster-name my-cluster \ --nodegroup-name my-nodegroup \ --region us-east-1 \ --warm-pool-config enabled=true,maxGroupPreparedCapacity=8,minSize=2,poolState=Stopped,reuseOnScaleIn=true

Konfiguration aktualisieren

Aktualisieren Sie die Einstellungen für den warmen Pool jederzeit mitupdate-nodegroup-config. Bestehende Warm-Pool-Instanzen sind nicht sofort betroffen. Neue Einstellungen gelten für Instanzen, die nach dem Update in den Warm-Pool wechseln.

aws eks update-nodegroup-config \ --cluster-name my-cluster \ --nodegroup-name my-nodegroup \ --region us-east-1 \ --warm-pool-config enabled=true,maxGroupPreparedCapacity=10,minSize=3,poolState=Running,reuseOnScaleIn=true

Um den mit Ihrer Knotengruppe verbundenen Warmpool zu deaktivieren, legen Sie Folgendes fest: enabled=false

aws eks update-nodegroup-config \ --cluster-name my-cluster \ --nodegroup-name my-nodegroup \ --region us-east-1 \ --warm-pool-config enabled=false

Weitere Ressourcen