AWS-Fargate - Amazon EKS

AWS-Fargate

In diesem Thema wird die Verwendung von Amazon EKS zum Ausführen von Kubernetes-Pods auf AWS-Fargate erläutert.

AWS-Fargate ist eine Technologie, die bedarfsgerechte On-Demand-Rechenkapazität für Container bereitstellt. Mit AWS-Fargate müssen Sie keine Gruppen virtueller Maschinen selbst bereitstellen, konfigurieren oder skalieren, um Container auszuführen. Sie müssen auch keine Servertypen auswählen, entscheiden, wann Sie Ihre Knotengruppen skalieren oder das Cluster-Packaging optimieren. Sie können steuern, welche Pods auf Fargate starten und wie sie mit Fargate-Profilen ausgeführt werden. Fargate-Profile werden als Teil Ihres Amazon-EKS-Clusters definiert.

Amazon EKS wird in Kubernetes mit AWS-Fargate integriert, indem Controller verwendet werden, die von AWS mithilfe des Upstream-Erweiterungsmodells von Kubernetes erstellt werden. Diese Controller werden als Teil der von Amazon EKS verwalteten Kubernetes-Kontrollebene ausgeführt und sind für die Planung nativer Kubernetes-Pods in Fargate verantwortlich. Die Fargate-Controller enthalten einen neuen Scheduler, der neben dem Standard-Kubernetes-Scheduler und zusätzlich zu mehreren mutierenden und validierenden Zugangscontrollern ausgeführt wird. Wenn Sie einen Pod starten, der die Kriterien für die Ausführung in Fargate erfüllt, erkennen die Fargate-Controller, die im Cluster ausgeführt werden den Pod, und aktualisieren und planen ihn in Fargate.

In diesem Thema werden die verschiedenen Komponenten von Pods beschrieben, die auf Fargate ausgeführt werden, und auf besondere Überlegungen für die Verwendung von Fargate mit Amazon EKS hingewiesen.

Überlegungen zu AWS-Fargate

Hier sind einige Dinge, die Sie bei der Verwendung von Fargate auf Amazon EKS beachten sollten.

  • AWS Fargate mit Amazon EKS ist in allen Amazon EKS-Regionen außer China (Beijing), China (Ningxia), AWS GovCloud (USA-Ost) und AWS GovCloud (USA-West) verfügbar.

  • Jeder Pod, der auf Fargate ausgeführt wird, hat seine eigene Isolationsgrenze. Sie teilen sich den zugrunde liegenden Kernel, die CPU-Ressourcen, die Arbeitsspeicherressourcen oder die Elastic-Network-Schnittstelle nicht mit einem anderen Pod.

  • Netzwerklastenverteilung und Anwendungslastenverteilung (ALBs) können mit Fargate nur mit IP-Zielen verwendet werden. Weitere Informationen erhalten Sie unter Erstellen eines Network Load Balancers und Anwendungslastenverteilung auf Amazon EKS.

  • Pods müssen zu dem Zeitpunkt, zu dem sie auf Fargate ausgeführt werden sollen, mit einem Fargate-Profil übereinstimmen. Pods, die nicht mit einem Fargate-Profil übereinstimmen, können als Pending stecken bleiben. Wenn ein übereinstimmendes Fargate-Profil vorhanden ist, können Sie ausstehende Pods, die Sie erstellt haben, löschen, um sie in Fargate neu zu planen.

  • Sie können Sicherheitsgruppen für Pods nur mit Pods verwenden, die auf Fargate ausgeführt werden, wenn eine der folgenden Bedingungen erfüllt ist. Ihr Cluster ist 1.18 mit Plattformversion eks.7 oder höher, Ihr Cluster ist 1.19 mit Plattformversion eks.5 oder höher oder Ihr Cluster 1.20 oder höher.

  • Daemonsets werden von Fargate nicht unterstützt. Wenn Ihre Anwendung einen Daemon benötigt, konfigurieren Sie diesen Daemon neu, sodass er als Sidecar-Container in Ihren Pods ausgeführt wird.

  • Privilegierte Container werden in Fargate nicht unterstützt.

  • Pods, die auf Fargate ausgeführt werden, können im Pod-Manifest kein HostPort oder HostNetwork angeben.

  • Das standardmäßige weiche nofile- und nproc-Limit beträgt 1024 und das harte Limit 65535 für Fargate-Pods.

  • GPUs sind derzeit auf Fargate nicht verfügbar.

  • Pods, die auf Fargate ausgeführt werden, werden nur in privaten Subnetzen unterstützt (mit NAT Gateway-Zugriff auf AWS-Services, aber ohne direkte Route zu einem Internet-Gateway). Daher müssen für die VPC Ihres Clusters private Subnetze verfügbar sein. Weitere Informationen zu Clustern ohne ausgehenden Internetzugang finden Sie unter Private Cluster.

  • Sie können das Vertical Pod Autoscaler verwenden, um die CPU und den Speicher für Ihre Fargate-Pods anfänglich richtig zu dimensionieren, und dann das Horizontal Pod Autoscaler verwenden, um diese Pods zu skalieren. Wenn Sie möchten, dass der Vertical Pod Autoscaler Pods mit größeren CPU- und Speicherkombinationen automatisch erneut in Fargate bereitstellt, stellen Sie den Modus für den Vertical Pod Autoscaler entweder auf Auto oder Recreate ein, um die korrekte Funktionalität sicherzustellen. Weitere Informationen finden Sie in der Vertical Pod Autoscaler-Dokumentation auf GitHub.

  • DNS-Auflösung und DNS-Hostnamen müssen für Ihre VPC aktiviert sein. Weitere Informationen finden Sie unter Anzeigen und Aktualisieren der DNS-Unterstützung für Ihre VPC.

  • Fargate führt jeden Pod in einer VM-isolierten Umgebung aus, ohne Ressourcen mit anderen Pods zu teilen. Da Kubernetes jedoch ein Einzelinstanzorchestrator ist, kann Fargate keine Sicherheitsisolation auf Pod-Ebene garantieren. Führen Sie sensible Workloads oder nicht vertrauenswürdige Workloads, die eine vollständige Sicherheitsisolation benötigen, mit separaten Amazon-EKS-Clustern aus.

  • Fargate-Profile unterstützen die Angabe von Subnetzen aus sekundären VPC-CIDR-Blöcken. Möglicherweise möchten Sie einen sekundären CIDR-Block angeben. Dies liegt daran, dass in einem Subnetz nur eine begrenzte Anzahl von IP-Adressen verfügbar ist. Daher gibt es auch eine begrenzte Anzahl von Pods, die im Cluster erstellt werden können. Durch die Verwendung verschiedener Subnetze für Pods können Sie die Anzahl der verfügbaren IP-Adressen erhöhen. Weitere Informationen finden Sie unter Hinzufügen von IPv4 CIDR-Blöcken zu einer VPC.

  • Der Amazon-EC2-Instance-Metadatenservice (IMDS) ist für Pods nicht verfügbar, die auf Fargate-Knoten bereitgestellt werden. Wenn Sie Pods haben, die in Fargate bereitgestellt werden und die IAM-Anmeldeinformationen benötigen, weisen Sie sie Ihren Pods mit IAM-Rollen für Servicekonten zu. Wenn Ihre Pods Zugriff auf andere Informationen benötigen, die über das IMDS verfügbar sind, müssen Sie diese Informationen in Ihre Pod-Spezifikation hart codieren. Dies umfasst die Region oder Availability Zone, in der ein Pod bereitgestellt wird.

  • Sie können Fargate-Pods nicht in den lokalen Zonen AWS Outposts, AWS Wavelength oder AWS bereitstellen.