Definition

Amazon Elastic Kubernetes Service (Amazon EKS)

Amazon Elastic Kubernetes Service (EKS) verwaltet und skaliert automatisch Cluster von Infrastrukturressourcen auf AWS mit Kubernetes. Unternehmen nutzen Mit Amazon EKS Kubernetes, ohne die Container-Orchestrierungssoftware installieren, betreiben oder verwalten zu müssen.

Wie funktioniert Amazon EKS?

Amazon EKS arbeitet mit der bekannten Kubernetes-Plattform sowie einer eigenen Kontrollebene und Arbeitsknoten.

Die Steuerebene verwendet drei Master-Knoten mit Load Balancer, die in einer Hochverfügbarkeitskonfiguration (HA) angeordnet sind. Die Master-Knoten werden von AWS verwaltet und unterstützen alle Funktionen, die zur Implementierung und Unterstützung von Kubernetes erforderlich sind, einschließlich des Zugriffs auf die EKS-API.

Worker Nodes werden von EKS-Benutzern innerhalb von Amazon EC2-Instanzen erstellt. Sie sind für das Hosting von Container-Pods verantwortlich, die containerbasierte Anwendungen bilden. Die Knoten sind in der Regel in Gruppen organisiert und es können verschiedene Knotengruppen innerhalb eines Kubernetes-Clusters existieren.

Cluster von Arbeitsknoten kommunizieren mit der Kontrollebene über die EKS-API, rollenbasierte Zugriffskontrolle (Role Based Access Control, RBAC) und Amazon VPC (Amazon Virtual Private Cloud). Das schränkt den Datenverkehr ein und erhält die Sicherheit zwischen der Kontrollebene und den von Benutzern betriebenen Clustern aufrecht.

Amazon EKS lässt sich auf verschiedene Arten einsetzen. Erstens betreiben manche Benutzer ein EKS-Cluster für jede Anwendung. Oder sie unterstützen mehrere Anwendungen auf demselben. Letzteres erfordert die Verwendung von IAM-Sicherheit (Identity and Access Management) und Kubernetes-Namespaces, um Anwendungen innerhalb des Clusters zu isolieren.

Amazon EKS Komponenten und Funktionen

Ein Entwickler oder Administrator, der EKS verwendet, stellt die Arbeitsknoten bereit und verbindet sie mit Amazon EKS-Endpunkten. AWS übernimmt dann alle Verwaltungsaufgaben für die Kubernetes-Kontrollebene, einschließlich Upgrades, Patches und Sicherheitskonfigurationen. AWS skaliert zudem API-Server und persistente Backend-Ebenen über EKS. Der Service ist mit mehreren nativen Amazon-Services integriert, wie Elastic Load Balancing, AWS IAM, Amazon Virtual Private Cloud (VPC), AWS PrivateLink und AWS CloudTrail.

Ein Benutzer muss eine IAM-Rolle, VPC und Sicherheitsgruppe für seine Cluster erstellen. Ein Cluster führt eine oder mehrere Anwendungen aus. Für eine bessere Netzwerkisolierung sollten Sie für jedes davon unterschiedliche VPCs verwenden.

Kubernetes verwendet Pods oder Gruppen von Containern, um Server zu orchestrieren und zu skalieren. Amazon EKS repliziert automatisch Master-Scheduler über drei Verfügbarkeitszonen in jeder AWS-Region für eine höhere Verfügbarkeit. Es scannt auch nach ungesunden Knoten und ersetzt sie automatisch.

Amazon EKS stützt sich auf viele Open-Source-Tools, darunter Kubernetes und Docker. Das bedeutet, dass ein Benutzer Pods ohne Änderungen am Anwendungscode in Umgebungen verschieben kann, die nicht von AWS stammen.

Amazon EKS bietet eine breite Palette von Funktionen, die sich auf mehrere wichtige Betriebsbereiche konzentrieren, darunter die folgenden:

  • Cluster-Verwaltung. EKS bietet eine verwaltete Steuerungsebene, verwaltete Knotengruppen, eine gehostete Kubernetes-Konsole, umfangreiche AWS-Service-Integrationen und Unterstützung für eine große Bibliothek von Kubernetes-Add-ons.
  • Netzwerk-Verwaltung. EKS verwaltet das Netzwerk und die Sicherheit durch die Unterstützung von IPv6, Service Discovery, IAM-Authentifizierung und die Einhaltung einer Reihe von regulatorischen Anforderungen (wie SOC, PCI, IRAP, HITRUST und andere).
  • Load Balancing. EKS unterstützt Load Balancing durch den Application Load Balancer, Network Load Balancer und Classic Load Balancer.
  • Serverloses Rechnen. EKS ermöglicht serverloses Computing durch AWS Fargate.
  • Protokollierung. EKS nutzt AWS CloudTrail und Amazon CloudWatch für die Protokollierung und Analyse der EKS-Umgebung.
  • Updates. EKS unterstützt einfache Updates. Dies ermöglicht schnelle Updates auf die neueste Kubernetes-Version ohne signifikante Unterbrechung der bestehenden Cluster oder Anwendungen. Benutzer können die gewünschte Kubernetes-Version über das SDK, AWS CLI oder die AWS-Konsole auswählen.
  • Eksctl. Das Tool eksctl vereinfacht das Erstellen und die Kontrolle von EKS-Clustern.

EKS versus ECS und andere

Amazon EKS ist der Nachfolger von Amazon EC2 Container Service (ECS), der einer der ersten verwalteten Containerdienste überhaupt war. Amazon ECS verfügt über eine eigene Orchestrierungsschicht, die im Vergleich zu EKS die Integration mit anderen AWS-Angeboten erleichtert. Allerdings ist es schwieriger, containerisierte Anwendungen aus Amazons Cloud zu verschieben.

Amazon EKS bietet hingegen Fargate-Unterstützung und verlagert die Verwaltung der zugrunde liegenden EC2-Instanzen vollständig zu AWS. Infolgedessen muss sich ein Entwickler nur um die Container selbst kümmern. Er muss keine Server bereitstellen, skalieren oder patchen. EKS funktioniert über AWS Outposts, obwohl die resultierenden Cluster in der AWS-Cloud bereitgestellt werden (und nicht in lokalen Outposts-Systemen).

Amazon EKS gesellt sich zu mehreren anderen Kubernetes-basierten Containerservices, die bereits auf dem Markt sind, darunter Microsoft Azure Kubernetes Service, Google Kubernetes Engine, Red Hat OpenShift, VMware Tanzu und Docker Enterprise Edition. Plugins, Skripte und Clusterkonfigurationen können zwischen diesen Plattformen ausgetauscht werden, da sie alle auf derselben Orchestrierungsschicht basieren.

EKS arbeitet mit G3-, G4-, inf- und P-Instance-Familien, die x86-beschleunigte, für Amazon EKS optimierte AMIs unterstützen sollen. Die traditionelleren Familien A, C, HPC, M und T sind für x86- und Arm-AMIs vorgesehen.

Best Practices für Amazon EKS

Die Verwaltung von Containern kann eine komplexe und zeitaufwändige Aufgabe sein, aber es gibt einige Best Practices, die helfen können, die Sicherheit und Ausfallsicherheit von EKS-Clustern zu verbessern. Einige Beispiele sind die folgenden:

  • Aktivieren Sie das Cluster Logging. Stellen Sie sicher, dass die Clusterprotokollierung für alle EKS-Cluster aktiviert ist. Dies hilft Entwicklern und Administratoren, Probleme zu korrigieren und das Verhalten zu verbessern.
  • Beschränken Sie den eingehenden Datenverkehr. Verwenden Sie EKS-Sicherheitsgruppen, um eingehenden Datenverkehr auf bestimmte Ports zu beschränken (zum Beispiel TCP Port 443).
  • Deaktivieren Sie den öffentlichen Zugang. Konfigurieren Sie den AWS EKS-Cluster-Endpunkt-Zugang so, dass der öffentliche Zugang verhindert wird. Dadurch wird das Potenzial für böswillige Aktivitäten mit EKS-Clustern reduziert.
  • Bauen Sie Worker Nodes für Zuverlässigkeit. Verwenden Sie verwaltete Knoten als Teil einer von EKS verwalteten Auto Scaling Group, die sich über mehrere Verfügbarkeitszonen erstreckt, um sicherzustellen, dass der Ausfall eines Knotens eine Anwendung nicht vollständig lahmlegt.
  • Wägen Sie das Angebot sorgfältig ab. Erwägen Sie die Verwendung von Karpenter anstelle von Amazon EC2 Auto Scaling Gruppen oder dem Kubernetes Cluster Autoscaler, um die Cluster-Rechenkapazität dynamisch anzupassen.
Diese Definition wurde zuletzt im Dezember 2022 aktualisiert

Erfahren Sie mehr über Containervirtualisierung