Verwaltete Knotengruppen - Amazon EKS

Verwaltete Knotengruppen

Amazon EKS-verwaltete Knotengruppen automatisieren die Bereitstellung und das Lebenszyklusmanagement von Knoten (Amazon-EC2-Instances) für Amazon EKS-Kubernetes-Cluster.

Bei Amazon EKS-verwalteten Knotengruppen müssen Sie die Amazon EC2-Instances, die Rechenkapazität zur Ausführung Ihrer Kubernetes-Anwendungen bereitstellen, nicht separat bereitstellen oder registrieren. Sie können Knoten für Ihren Cluster mit einem einzigen Vorgang erstellen, aktualisieren oder beenden. Knoten werden mit den neuesten von Amazon EKS optimierten AMIs in IhremAWSKonto. Knoten werden Knoten automatisch und ordnungsgemäß gelöscht, um sicherzustellen, dass Ihre Anwendungen verfügbar bleiben.

Alle verwalteten Knoten werden als Teil einer Amazon EC2 Auto Scaling-Gruppe bereitgestellt, die von Amazon EKS für Sie verwaltet wird. Alle Ressourcen, einschließlich der Instances und Auto Scaling-Gruppen, werden in Ihrem AWS-Konto ausgeführt. Jede Knotengruppe verwendet das -optimierte -AMI und kann über mehrere Availability Zones, die Sie definieren, hinweg ausgeführt werden.

Sie können eine verwaltete Knotengruppe zu neuen oder vorhandenen Clustern mithilfe der Amazon EKS-Konsole, eksctl, der AWS CLI, der AWS-API oder der Infrastructure as Code-Tools einschließlich AWS CloudFormation hinzufügen. Knoten, die als Teil einer verwalteten Knotengruppe gestartet werden, werden vom Kubernetes-Cluster-Autoscaler automatisch für die automatische Erkennung gekennzeichnet. Sie können die Knotengruppe verwenden, um Kubernetes-Labels auf Knoten anzuwenden und sie jederzeit zu aktualisieren. Sie können die Knotengruppe verwenden, um Kubernetes-Labels auf Knoten anzuwenden und sie jederzeit zu aktualisieren.

Für die Verwendung Amazon EKS-verwalteter Knotengruppen fallen keine zusätzlichen Kosten an, Sie zahlen nur für die AWS-Ressourcen, die Sie bereitstellen. Dazu gehören Amazon EC2-Instances, Amazon EBS-Volumes, Amazon EKS-Clusterstunden und jede andere AWS-Infrastruktur. Es fallen keine Mindestgebühren oder Vorausleistungen an.

Weitere Informationen zu den ersten Schritten mit einem neuen Amazon EKS-Cluster und einer verwalteten Knotengruppe finden Sie unter .Erste Schritte mit Amazon EKS – AWS Management Console und AWS CLI

Informationen zum Hinzufügen einer verwalteten Knotengruppe zu einem vorhandenen Cluster finden Sie unter Erstellen einer verwalteten Knotengruppe.

Konzepte für verwaltete Knotengruppen

  • Amazon EKS-verwaltete Knotengruppen erstellen und verwalten Amazon EC2 Instances für Sie.

  • Alle verwalteten Knoten werden als Teil einer Amazon EC2 Auto Scaling-Gruppe bereitgestellt, die von Amazon EKS für Sie verwaltet wird. Darüber hinaus werden alle Ressourcen, einschließlich Amazon EC2 Instances und Auto Scaling Gruppen, innerhalb IhrerAWSKonto.

  • Die Gruppe einer verwalteten Auto Scaling-Knotengruppe umfasst alle Subnetze, die Sie beim Erstellen der Gruppe angeben.

  • Amazon EKS markiert verwaltete Knotengruppenressourcen, so dass sie für die Verwendung des Kubernetes Cluster Autoscaler konfiguriert sind.

    Wichtig

    Wenn Sie eine zustandsbehaftete Anwendung über mehrere Availability Zones hinweg ausführen, die von Amazon EBS-Volumes gesichert wird und Kubernetes Cluster Autoscaler verwendet, sollten Sie mehrere Knotengruppen konfigurieren, die jeweils für eine einzelne Availability Zone gelten. Außerdem sollten Sie die --balance-similar-node-groups-Funktion aktivieren.

  • Instances in einer verwalteten Knotengruppe verwenden die neueste Version des Amazon EKS-optimierten Amazon Linux 2-AMI für die Kubernetes-Version ihres Clusters. Sie können zwischen Standard- und GPU-Varianten des Amazon EKS-optimierten Amazon Linux 2-AMI wählen. Wenn Sie die Bereitstellung mithilfe einer Startvorlage durchführen, können Sie auch ein benutzerdefiniertes AMI verwenden. Weitere Informationen finden Sie unter Support für Startvorlagen.

  • Amazon EKS folgt dem Modell der gemeinsamen Verantwortlichkeit für CVEs und Sicherheitspatches in verwalteten Knotengruppen. Wenn verwaltete Knoten ein für Amazon EKS optimiertes AMI ausführen, ist Amazon EKS für die Erstellung von gepatchten Versionen des AMI verantwortlich, wenn Fehler oder Probleme gemeldet werden. Wir können einen Fix veröffentlichen. Sie sind jedoch dafür verantwortlich, diese gepatchten AMI-Versionen für Ihre verwalteten Knotengruppen bereitzustellen. Wenn verwaltete Knoten ein benutzerdefiniertes AMI ausführen, sind Sie für die Erstellung von gepatchten Versionen des AMI verantwortlich, wenn Fehler oder Probleme gemeldet werden, und für die anschließende Bereitstellung des AMI. Weitere Informationen finden Sie unter Aktualisieren einer verwalteten Knotengruppe.

  • Von Amazon EKS verwaltete Knotengruppen können sowohl in öffentlichen als auch privaten Subnetzen gestartet werden. Wenn Sie eine verwaltete Knotengruppe am oder nach dem 22. April 2020 in einem öffentlichen Subnetz starten, muss MapPublicIpOnLaunch für das Subnetz auf „true“ gesetzt sein, damit die Instances einem Cluster hinzugefügt werden können. Wenn das öffentliche Subnetz mit eksctl oder dieAmazon EKS VerkaufsautomatenAWS CloudFormation-Vorlagen am oder nach dem 26. März 2020, dann ist diese Einstellung bereits auf true gesetzt. Wenn die öffentlichen Subnetze vor dem 26. März 2020 erstellt wurden, müssen Sie die Einstellung manuell ändern. Weitere Informationen finden Sie unter Ändern des öffentlichen IPv4-Adressierungsattributs für Ihr Subnetz.

  • Wenn Sie VPC-Endpunkte in privaten Subnetzen verwenden, müssen Sie Endpunkte für com.amazonaws.region.ecr.api, com.amazonaws.region.ecr.dkr und einen Gateway-Endpunkt für Amazon S3 erstellen. Weitere Informationen finden Sie unter Amazon ECR und Schnittstellen-VPC-Endpunkte (AWS PrivateLink).

  • Verwaltete Knotengruppen können nicht aufAWS Outpostsoder inAWS WavelengthoderAWSLocal Zones.

  • Sie können mehrere verwaltete Knotengruppen innerhalb eines einzelnen Clusters erstellen. Beispielsweise können Sie eine Knotengruppe mit dem standardmäßigen Amazon EKS-optimierten Amazon Linux 2- AMI für einige Workloads und eine andere mit der GPU-Variante für Workloads erstellen, für die GPU-Unterstützung erforderlich ist.

  • Wenn bei Ihrer verwaltete Knotengruppe ein Integritätsproblem auftritt, gibt Amazon EKS eine Fehlermeldung zurück, die Ihnen bei der Diagnose des Problems hilft. Weitere Informationen finden Sie unter Fehler bei verwalteten Knotengruppen.

  • Amazon EKS fügt Kubernetes-Labels zu verwalteten Knotengruppen-Instances hinzu. Diese von Amazon EKS bereitgestellten Labels sind mit dem Präfix eks.amazonaws.com versehen.

  • Amazon EKS leert Knoten automatisch mit der Kubernetes-API während Beendigungs- oder Aktualisierungsvorgängen. Aktualisierungen respektieren die Pod-Disruptions-Budgets, die Sie für Ihre Pods festgelegt haben.

  • Für die Verwendung verwalteter Amazon EKS-Knotengruppen fallen keine zusätzlichen Kosten an. Sie bezahlen nur für die AWS-Ressourcen, die Sie wirklich nutzen.

  • Wenn Sie Amazon EBS-Volumes für Ihre Knoten verschlüsseln möchten, können Sie die Knoten mithilfe einer Startvorlage bereitstellen. Um verwaltete Knoten mit verschlüsselten Amazon EBS-Volumes ohne Verwendung einer Startvorlage bereitzustellen, müssen Sie standardmäßig alle neuen Amazon EBS-Volumes verschlüsseln, die in Ihrem Konto erstellt wurden. Weitere Informationen finden Sie unter Standardmäßige Verschlüsselung im Amazon EC2-Benutzerhandbuch für Linux-Instances.

Kapazitätstypen für verwaltete Knotengruppen

Beim Erstellen einer verwalteten Knotengruppe können Sie entweder den Kapazitätstyp On-Demand oder Spot-Kapazität auswählen. Amazon EKS stellt eine verwaltete Knotengruppe mit einer Amazon EC2 Auto Scaling Gruppe bereit, die entweder nur On-Demand oder nur Amazon EC2 Spot-Instances enthält. Sie können Pods für fehlertolerante Anwendungen für verwaltete Spot-Knotengruppen und fehlerintolerante Anwendungen für On-Demand-Knotengruppen in einem einzelnen Kubernetes-Cluster planen. Standardmäßig stellt eine verwaltete Knotengruppe On-Demand-Amazon EC2 Instances bereit.

On-Demand

Mit On-Demand-Instances zahlen Sie für Rechenkapazität bis zur zweiten Stunde ohne langfristige Verpflichtungen.

Funktionsweise

Standardmäßig: Wenn Sie keineCapacity typewird die verwaltete Knotengruppe mit On-Demand-Instances bereitgestellt. Eine verwaltete Knotengruppe konfiguriert in Ihrem Namen eine Amazon EC2 Auto Scaling Gruppe mit den folgenden Einstellungen:

  • Die Allokationsstrategie zur Bereitstellung von On-Demand-Kapazität ist aufprioritizedaus. Die -Gruppe verwendet die Reihenfolge der Instance-Typen in der Liste der Startvorlagen-Außerkraftsetzungen, um festzulegen, welcher Instance-Typ beim Erfüllen der On-Demand-Kapazität zuerst verwendet werden soll. Sie können beispielsweise drei Instance-Typen in der folgenden Reihenfolge angeben:c5.large,c4.large, undc3.largeaus. Wenn Ihre On-Demand-Instances gestartet werden, erfüllt die verwaltete Knotengruppe On-Demand-Kapazität beginnend mit c5.large, dann c4.large, dann c3.large. Weitere Informationen finden Sie unter Amazon-EC2-Auto-Scaling-Gruppe im Benutzerhandbuch zum Amazon EC2 Auto Scaling.

  • Amazon EKS fügt allen Knoten in Ihrer verwalteten Knotengruppe die folgende Kubernetes-Bezeichnung hinzu, die den Kapazitätstyp angibt:eks.amazonaws.com/capacityType: ON_DEMANDaus. Sie können dieses Label verwenden, um statusbehaftete oder fehlerintolerante Anwendungen auf On-Demand-Knoten zu planen.

Spot

Amazon EC2 Spot Instances sind Ersatzkapazität von Amazon EC2, die steile Rabatte auf On-Demand-Preise bietet. Amazon EC2 Spot Instances können mit einer Vorwarnzeit von zwei Minuten unterbrochen werden, wenn AWS die Kapazität wieder benötigt. Weitere Informationen finden Sie unter Spot-Instances im Amazon EC2-Benutzerhandbuch für Linux-Instances. Sie können eine verwaltete Knotengruppe mit Amazon EC2 Spot Instances konfigurieren, um die Kosten für die Rechenknoten zu optimieren, die in Ihrem Amazon EKS-Cluster ausgeführt werden.

Funktionsweise

Um Spot-Instances in einer verwalteten Knotengruppe zu verwenden, müssen Sie eine verwaltete Knotengruppe erstellen, indem Sie den Kapazitätstyp alsspotaus. Eine verwaltete Knotengruppe konfiguriert in Ihrem Namen eine Amazon EC2 Auto Scaling Gruppe mit den folgenden bewährten Spot-Practices:

  • Die Allokationsstrategie zur Bereitstellung von Spot-Kapazitäten wird aufcapacity-optimizedStellen Sie sicher, dass Ihre Spot-Knoten in den optimalen Spot-Kapazitätspools bereitgestellt werden. Um die Anzahl der Spot-Kapazitätspools zu erhöhen, die für die Zuweisung von Kapazität verfügbar sind, wird empfohlen, eine verwaltete Knotengruppe für die Verwendung mehrerer Instanztypen zu konfigurieren.

  • Amazon EC2 Spot Capacity Rebalancing ist aktiviert, sodass Amazon EKS Ihre Spot-Knoten ordnungsgemäß entladen und neu ausgleichen kann, um Anwendungsunterbrechungen zu minimieren, wenn ein Spot-Knoten ein erhöhtes Risiko einer Unterbrechung aufweist. Weitere Informationen finden Sie unter Amazon-EC2-Auto-Scaling-Kapazitätsausgleich im Benutzerhandbuch zum Amazon EC2 Auto Scaling.

    • Wenn ein Spot-Knoten eine Neuausgleichsempfehlung erhält, versucht Amazon EKS automatisch, einen neuen Ersatz-Spot-Knoten zu starten, und wartet, bis er erfolgreich dem Cluster beitritt.

    • Wenn ein Ersatz-Spot-Knoten Bootstrapped und in derReadyauf Kubernetes, Amazon EKS Kordons und entwässert den Spot-Knoten, der die Neuausgleichsempfehlung erhalten hat. Durch das Cordoning des Spot-Knotens wird sichergestellt, dass der Service-Controller keine neuen Anforderungen an diesen Spot-Knoten sendet. Es entfernt sie auch aus der Liste der gesunden, aktiven Spot-Knoten. Durch das Löschen des Spot-Knotens wird sichergestellt, dass laufende Pods anmutig entfernt werden.

    • Wenn ein Spot-Unterbrechungsnachweis in zwei Minuten eintrifft, bevor sich der Ersatz-Spot-Knoten in einemReady, beginnt Amazon EKS mit dem Entleeren des Spot-Knotens, der die Neuausgleichsempfehlung erhalten hat.

  • Amazon EKS fügt allen Knoten in Ihrer verwalteten Knotengruppe die folgende Kubernetes-Bezeichnung hinzu, die den Kapazitätstyp angibt:eks.amazonaws.com/capacityType: SPOTaus. Sie können dieses Label verwenden, um fehlertolerante Anwendungen auf Spot-Knoten zu planen.

Überlegungen zur Auswahl eines Kapazitätstyps

Bei der Entscheidung, ob eine Knotengruppe mit On-Demand- oder Spot-Kapazität bereitgestellt werden soll, sollten Sie die folgenden Bedingungen berücksichtigen:

  • Spot-Instances eignen sich gut für zustandslose, fehlertolerante, flexible Anwendungen wie Batch- und Machine Learning-Workloads, Big-Data-ETLs wie Apache Spark, Warteschlangenverarbeitungsanwendungen und zustandslose API-Endpunkte. Da es sich bei Spot um eine Ersatzkapazität von Amazon EC2 handelt, die sich im Laufe der Zeit ändern kann, wird empfohlen, Spot-Kapazität für unterbrechungstolerante Workloads zu verwenden, die Zeiträume tolerieren können, in denen die erforderliche Kapazität nicht verfügbar ist.

  • Es wird empfohlen, On-Demand für Anwendungen zu verwenden, die fehlerintolerant sind, einschließlich Cluster-Verwaltungstools, wie Überwachungs- und Betriebstools, Bereitstellungen, dieStatefulSetsund statusbehaftete Anwendungen, wie Datenbanken.

  • Um die Verfügbarkeit Ihrer Anwendungen bei der Verwendung von Spot-Instances zu maximieren, wird empfohlen, eine verwaltete Spot-Knotengruppe für die Verwendung mehrerer Instanztypen zu konfigurieren. Es wird empfohlen, die folgenden Regeln anzuwenden, wenn mehrere Instanztypen verwendet werden:

    • Wenn Sie innerhalb einer verwalteten Knotengruppe dieCluster Autoscalerverwenden, wird empfohlen, einen flexiblen Satz von Instanztypen mit der gleichen Menge an vCPU und Arbeitsspeicherressourcen zu verwenden, um sicherzustellen, dass die Knoten in Ihrem Cluster erwartungsgemäß skaliert werden. Wenn Sie beispielsweise vier vCPUs und acht GiB Speicher benötigen, empfehlen wir, dass Siec3.xlarge,c4.xlarge,c5.xlarge,c5d.xlarge,c5a.xlarge,c5n.xlargeoder andere ähnliche Instanztypen.

    • Um die Anwendungsverfügbarkeit zu verbessern, empfehlen wir, mehrere verwaltete Spot-Knotengruppen bereitzustellen, die jeweils einen flexiblen Satz von Instanztypen verwenden, die über die gleiche vCPU und Arbeitsspeicherressourcen verfügen. Wenn Sie beispielsweise 4 vCPUs und 8 GiB Speicher benötigen, empfehlen wir, eine verwaltete Knotengruppe mitc3.xlarge,c4.xlarge,c5.xlarge,c5d.xlarge,c5a.xlarge,c5n.xlargeoder andere ähnliche Instanztypen und eine zweite verwaltete Knotengruppe mitm3.xlarge,m4.xlarge,m5.xlarge,m5d.xlarge,m5a.xlarge,m5n.xlargeoder andere ähnliche Instanztypen.

    • Wenn Sie Ihre Knotengruppe mit dem Spot-Kapazitätstyp bereitstellen, der eine benutzerdefinierte Startvorlage verwendet, verwenden Sie die API, um mehrere Instanztypen zu übergeben, anstatt einen einzelnen Instanztyp über die Startvorlage zu übergeben. Weitere Informationen zum Bereitstellen einer Knotengruppe mithilfe einer Startvorlage finden Sie unterSupport für Startvorlagenaus.