Amazon Elastic Kubernetes Service (Amazon EKS) ist ein verwalteter AWS Kubernetes-Service, der containerisierte Anwendungen skaliert, verwaltet und bereitstellt. Er läuft typischerweise in der öffentlichen Amazon Cloud, kann aber auch vor Ort bereitgestellt werden. Die Kubernetes-Verwaltungsinfrastruktur von Amazon EKS läuft über mehrere Availability Zones (AZ). Amazon EKS ist Kubernetes-konform zertifiziert, sodass Sie EKS in Ihre vorhandenen Tools integrieren können.
EKS-Cluster bestehen aus den folgenden Hauptkomponenten: einer Steuerebene und Worker-Knoten. Jeder Cluster wird in einer eigenen, vollständig verwalteten Virtual Private Cloud (VPC) ausgeführt.
Die Steuerebene besteht aus drei Masterknoten, die jeweils in einer anderen AZ ausgeführt werden, um die hohe Verfügbarkeit von AWS sicherzustellen. Eingehender Datenverkehr, der an die Kubernetes-API gerichtet ist, wird über den AWS Network Load Balancer (NLB) geleitet.
Worker-Knoten werden auf Amazon EC2-Instanzen in einer VPC ausgeführt, die nicht von AWS verwaltet wird. Sie können die den Worker-Knoten zugewiesene VPC steuern und konfigurieren. Sie können SSH verwenden, um Ihrer vorhandenen Automatisierung Zugriff zu gewähren oder Worker-Knoten bereitzustellen.
Es gibt zwei Hauptbereitstellungsoptionen:
Um den Datenverkehr zwischen der Steuerebene und einem Cluster einzuschränken, stellt EKS Amazon-VPC-Netzwerkrichtlinien bereit. Nur autorisierte Cluster und Konten, die durch die rollenbasierte Zugriffskontrolle (RBAC) von Kubernetes definiert sind, können Komponenten der Steuerebene anzeigen oder mit ihnen kommunizieren.
Typischerweise verläuft die Bereitstellung so: Sie weisen EKS an, einen Cluster zu erstellen, Cloud-Ressourcen werden im Hintergrund bereitgestellt und Sie können anschließend eine Verbindung zum Kubernetes-Cluster herstellen und Ihre Workloads ausführen.
Die AWS EKS-Architektur besteht aus den folgenden Hauptkomponenten: Cluster, Knoten und Netzwerk.
Cluster bestehen aus einer Steuerebene und EKS-Knoten.
Die Steuerungsebene läuft auf einem zugeordneten Satz von EC2-Instanzen in einem von Amazon verwalteten AWS-Konto und stellt einen API-Endpunkt bereit, auf den Ihre Anwendungen zugreifen können. Sie läuft im Single-Tenant-Modus und ist für die Steuerung von Kubernetes-Masterkomponenten wie API-Server und etcd verantwortlich.
Daten auf etcd werden mit Amazon Key Management Service (KMS) verschlüsselt. Kubernetes-Masterknoten sind über mehrere AWS-Verfügbarkeitszonen (AZ) verteilt, und der Datenverkehr wird über einen Elastic Load Balancer (ELB) verwaltet.
Kubernetes-Workerknoten werden auf EC2-Instanzen im AWS-Konto Ihrer Organisation ausgeführt. Sie verwenden den API-Endpunkt, um über eine Zertifikatsdatei eine Verbindung zur Steuerungsebene herzustellen. Für jeden Cluster wird ein eindeutiges Zertifikat genutzt.
Amazon EKS-Cluster können Pods mithilfe von drei Hauptmethoden planen.
Ein „Knoten“ in EKS ist eine Amazon EC2-Instanz, auf der Kubernetes-Pods geplant werden können. Pods verbinden sich mit dem API-Endpunkt des EKS-Clusters. Knoten sind in Knotengruppen organisiert. Alle EC2-Instanzen in einer Knotengruppe müssen dieselben Eigenschaften aufweisen:
Sie können in einem Cluster mehrere Knotengruppen betreiben, die jeweils unterschiedliche Instanztypen oder Rollen repräsentieren.
Amazon EKS bietet verwaltete Knotengruppen mit automatisierter Lebenszyklusverwaltung. So können Sie Knoten in einem Vorgang automatisch erstellen, aktualisieren oder entfernen. EKS verwendet die neuesten, für EKS optimierten Linux-AMIs von Amazon. Wenn Sie Knoten beenden, entleert EKS diese ordnungsgemäß, um eine unterbrechungsarme Bereitstellung zu gewährleisten.
Verwaltete Knoten werden mit EC2 Auto Scaling-Gruppen betrieben, die vom Amazon-EKS-Service verwaltet werden. Sie können festlegen, in welchen Verfügbarkeitszonen die Gruppen ausgeführt werden sollen. Es gibt verschiedene Möglichkeiten, verwaltete Knotengruppen zu starten, darunter die EKS-Konsole, eksctl, die AWS CLI, die AWS API oder Automatisierungstools wie CloudFormation.
Mit Amazon Fargate, einem serverlosen Containerdienst, können Sie Worker-Knoten ausführen, ohne die zugrunde liegende Serverinfrastruktur verwalten zu müssen. Fargate stellt Ihnen nur die tatsächlich genutzten vCPUs und den Speicher in Rechnung und stellt je nach Bedarf zusätzliche Rechenressourcen bereit.
Ein Amazon EKS-Cluster wird in einer Virtual Private Cloud (VPC) betrieben, einem sicheren, privaten Netzwerk innerhalb eines Amazon-Rechenzentrums. EKS stellt alle Ressourcen in einem vorhandenen Subnetz in einer von Ihnen ausgewählten VPC in einer Amazon-Region bereit.
Die EKS-Steuerebene wird in einer von Amazon verwalteten VPC ausgeführt. Sie erstellt und verwaltet Netzwerkschnittstellen in Ihrem Konto für jeden von Ihnen erstellten EKS-Cluster. EC2- und Fargate-Instanzen verwenden diese Netzwerkschnittstellen, um eine Verbindung zur EKS-Steuerebene herzustellen.
Standardmäßig stellt EKS einen öffentlichen Endpunkt bereit. Für zusätzliche Sicherheit Ihres Clusters können Sie einen privaten Endpunkt aktivieren und/oder den Zugriff auf bestimmte IP-Adressen einschränken. Sie können die Konnektivität zwischen lokalen Netzwerken oder anderen VPCs und der von Ihrem EKS-Cluster verwendeten VPC konfigurieren.
Jede vom EKS-Cluster verwendete EC2-Instance befindet sich in einem Subnetz. Sie haben zwei Möglichkeiten, das Netzwerk zu definieren:
NetApp Cloud Volumes ONTAP, die führende Speicherverwaltungslösung für Unternehmen, bietet sichere, bewährte Speicherverwaltungsdienste auf AWS, Azure und Google Cloud. Cloud Volumes ONTAP unterstützt eine Kapazität von bis zu 368 TB und deckt verschiedene Anwendungsfälle ab, etwa Dateidienste, Datenbanken, DevOps oder andere Unternehmens-Workloads. Der Funktionsumfang umfasst unter anderem Hochverfügbarkeit, Datenschutz, Speichereffizienz, Kubernetes-Integration und mehr.
Insbesondere unterstützt Cloud Volumes ONTAP die Bereitstellungs- und Verwaltungsanforderungen von Kubernetes Persistent Volumes für containerisierte Workloads.