nespix - stock.adobe.com
EKS und selbstverwaltetes Kubernetes auf AWS im Vergleich
AWS-Benutzer haben bei der Bereitstellung von Kubernetes die Wahl, ob sie es in Eigenregie auf EC2-Instanzen betreiben oder von EKS verwalten lassen möchten.
AWS-Benutzer, die Kubernetes auf AWS einsetzen möchten, haben im Wesentlichen zwei Optionen: Sie können es selbst aufbauen und betreuen, oder Amazon diese Arbeit überlassen. Jeder Ansatz hat seine Vor- und Nachteile.
Kubernetes, ein Open-Source-Container-Orchestrator, vereinfacht das Automatisieren, Bereitstellen, Skalieren und den Betrieb von containerisierten Anwendungen. Sie können die Vorteile von Containern zu nutzen, ohne sich mit der Komplexität und dem Overhead auseinandersetzen zu müssen, die früher mit ihnen verbunden waren.
AWS hat mit dem Amazon Elastic Container Service einen eigenen, recht erfolgreichen verwalteten Container-Orchestrierungsdienst. Alternativ können Benutzer ihre eigenen Kubernetes-Cluster auf EC2 betreiben. Letztendlich konnte Amazon jedoch die Nachfrage nach einem verwalteten Kubernetes-Angebot nicht ignorieren und fügte Ende 2017 Elastic Container Service for Kubernetes (EKS) hinzu.
Bei der Entscheidung zwischen EKS und selbstverwaltetem Kubernetes sollten Sie die Vor- und Nachteile jeder Option sorgfältig abwägen.
Kubernetes auf AWS: Kennen Sie Ihre Optionen
Mit EKS betreut Amazon die Kontrollebene vollständig – einschließlich Komponenten wie etcd und Kubernetes-API-Server mit Integration in andere AWS-Services wie Identitäts- und Zugriffsmanagement (IAM).
Die gesamte Verwaltungsinfrastruktur läuft hinter den Kulissen über mehrere Verfügbarkeitszonen hinweg. AWS ersetzt automatisch fehlerhafte Knoten, um eine hohe Verfügbarkeit zu gewährleisten. Die Plattform kümmert sich auch um alle Upgrades und Patches. Für die Benutzer ist die EKS-Kontrollebene im Wesentlichen eine Blackbox.
Für die Datenebene gibt es drei Optionen für EKS-Benutzer: selbstverwaltete Knoten, EKS-verwaltete Knotengruppen und AWS Fargate.
Selbstverwaltete Knoten
Bei den selbstverwalteten Knoten müssen die Benutzer diese manuell konfigurieren oder über die von EKS bereitgestellten AWS-CloudFormation-Vorlagen erstellen und verwalten. Sobald die EC2-VMs betriebsbereit sind, werden sie in die Kubernetes-Kontrollebene eingebunden. Anschließend weist die Kubernetes-Kontrollebene den Knoten Pods zu und führt Container aus. Darüber hinaus müssen die Benutzer die Aktualisierung des Betriebssystems und der Kubernetes-Version der Data-Plane-Knoten verwalten.
EKS-verwaltete Knotengruppen
Mit den von EKS verwalteten Knotengruppen erstellt und aktualisiert EKS automatisch Data-Plane-Knoten. Benutzer müssen nur ein paar Schaltflächen in der Webkonsole anklicken, um neue Knoten hinzuzufügen und die Betriebssystem- oder Kubernetes-Versionen zu aktualisieren.
AWS Fargate
AWS Fargate ist ein verwalteter Service zum Bereitstellen von On-Demand-Rechenkapazität für Container. Auf diesem Weg nutzen Sie die Vorteile der serverlosen Plattform für ihre Kubernetes-Datenebene. Wenn die Kubernetes-Kontrollebene neue Pods erstellt, laufen diese als Container in Fargate, ohne dass Nutzer Kubernetes-Knoten erstellen und konfigurieren müssen.
Ein Entwickler kann einen EKS-Cluster mit eksctl bereitstellen. Dieses Tool eines Drittanbieters errichtet eine gesamte Kubernetes-Infrastruktur, einschließlich der verwalteten Steuerebene und der nicht verwalteten Worker-Knoten. Es lässt bei Bedarf auch nachträgliche Änderungen zu. Verwenden Sie kubectl, um aktuelle Befehle für einen Kubernetes-Cluster auszuführen und die darin enthaltenen containerisierten Ressourcen zu verwalten. Es ist ein Standardwerkzeug, unabhängig von der Kubernetes-Version.
Alternativ betreiben Sie eine selbstverwaltete Kubernetes-Umgebung auf einer EC2-Instanz. Die Bereitstellung erfolgt mit Tools wie kops, die beim Erstellen und Verwalten des Kubernetes-Clusters helfen. In diesem Fall ist die Steuerebene für die Benutzer sichtbar und verfügbar. Admins müssen allerdings alles von Hand patchen und warten, was ihnen mehr Arbeit macht.
Kubernetes auf AWS: EKS versus selbstverwaltet
Wenn Sie entscheiden, wie Sie Kubernetes auf AWS bereitstellen möchten, sollten Sie vom Anwendungsfall und den spezifischen Entwicklungsanforderungen ausgehend Ihre Wahl treffen. Die wichtigsten zu berücksichtigenden Merkmale sind Verfügbarkeit, Sicherheit und Kosten.
Verfügbarkeit und Verwaltung
Obwohl EKS Upstream Kubernetes ausführt und als Kubernetes-konform zertifiziert ist, hat es einige Nachteile. Es ist nicht in allen AWS-Regionen verfügbar, und es wird nur langsam aktualisiert. Zum Zeitpunkt der Veröffentlichung läuft EKS nur bis zur Kubernetes-Version 1.22, obwohl Version 1.24 bereits verfügbar ist.
Auf der anderen Seite reduziert EKS den Aufwand für die Bereitstellung und Wartung von Kubernetes. Dies ist das wichtigste Argument für den Dienst. Viele Unternehmen haben nicht die Ressourcen, ein selbst gehostetes Kubernetes-Cluster zu verwalten, so dass das Interesse am Betrieb von Kubernetes in der Cloud mit der Veröffentlichung von EKS deutlich gestiegen ist.
Es ist zwar nicht einfach, ein skalierbares und hochverfügbares, selbstverwaltetes Kubernetes-Cluster zu erstellen, doch EKS stellt sicher, dass die Kontrollebene immer betriebsbereit ist. Darüber hinaus hilft EKS mit Fargate den Benutzern, eine skalierbare Datenebene mit minimalem Overhead aufzubauen.
Sicherheit und Updates
Sicherheit und Updates der Control Plane und Data Plane sind für eine zuverlässige Kubernetes-Installation unerlässlich. Bei Kubernetes in Eigenregie müssen die Benutzer die Komponenten der Steuerebene und die Knoten aktualisieren. Mit dem verwalteten EKS-Service liegt die Kontrollebene in der Verantwortung von AWS, während es für die Datenebene verschiedene Ansätze gibt.
- Verwaltete EKS-Knoten. Benutzer können die Knoten einfach mit einem Klick in der Konsole aktualisieren.
- Selbst-verwaltete Knoten. Sicherheit und Aktualisierung der Knoten liegen vollständig in der Verantwortung des Benutzers.
- AWS Fargate. Fargate führt die Container in einer aktuellen und sicheren Umgebung aus.
Kosten
Die Kosten sind ein weiterer Faktor. EKS wird stundenweise abgerechnet. Zusätzlich zur Kontrollebene zahlen Sie für die Arbeitsknoten. Wenn Benutzer eine große Anzahl von Kubernetes-Clustern mit kleineren Entwicklungsumgebungen benötigen, können sich die Kosten für die Steuerebene von 73 US-Dollar auftürmen.
Bei größeren Produktions-Workloads, die aus Nodes mit enormen Rechenressourcen bestehen, sind diese Kosten hingegen vernachlässigbar. Wenn Sie selbst verwaltete Kubernetes-Cluster betreiben, zahlen Sie sowohl für die Worker-Knoten als auch für die Control-Plane-Knoten. Für eine zuverlässige Kubernetes-API sind separate Control-Plane-Knoten erforderlich. Die Gesamtkosten hängen zudem von den Instanztypen und der Größe des Clusters ab.