Container-Orchestrierung mit Amazon EKS

Kubernetes in der AWS Cloud

| Autor / Redakteur: Sascha Möllering * / Stephan Augsten

Funktionsweise von Amazon EKS.
Funktionsweise von Amazon EKS. (Bild: AWS Germany GmbH)

„Wir würden gerne Docker-Container in AWS mit Kubernetes orchestrieren, aber eine verwaltete Lösung präferieren, da wir die Master-Nodes nicht selbst betreiben möchten. Welcher Dienst kommt für den verwalteten Betrieb eines Kubernetes-Clusters in der AWS-Cloud in Frage?“

Kubernetes ist eine „Open Source Container Management“-Plattform, die dabei hilft, komplexe Container-Workloads zu betreiben. Ein Kubernetes-Cluster besteht aus den Master-Nodes und den Worker-Nodes.

Die Master-Knoten sind das Control-Plane eines Clusters, auf denen Master-Komponenten laufen, die globale Entscheidungen (wie beispielsweise Scheduling von Containern) auf Cluster-Ebene treffen und auf Clusterevents reagieren. Die Worker-Nodes kommunizieren mit dem Backplane und üblicherweise laufen auf diesen die gewünschten Workloads.

Amazon Elastic Container Service for Kubernetes, kurz Amazon EKS, erleichtert die Bereitstellung, Verwaltung und Skalierung von Container-Workloads mithilfe von Kubernetes. Um Amazon EKS für die Orchestrierung von Container Workloads nutzen zu können, muss initial ein EKS-Cluster provisioniert werden. Dieser bietet einen verwalteten API-Endpoint, in den sich Worker-Nodes (Amazon EC2-Instanzen) einhängen können.

Diese Worker-Nodes können beispielsweise durch ein Amazon CloudFormation-Template oder ein TerraForm-Skript bereitgestellt werden. Für den Aufbau der Worker-Nodes stehen speziell optimierte Amazon Machine Images (AMIs) bereit, die auf Amazon Linux 2 basieren. Die Spezifikation dieser AMIs ist in Form von Packer-Skripten auf GitHub verfügbar.

IAM Authentifizierung mit kubectl

Da Amazon EKS ein AWS-Service ist, nutzt EKS IAM für die Authentifizierung gegenüber dem Kubernetes-Cluster. Dies wird mit Hilfe des Projekts AWS IAM Authenticator for Kubernetes implementiert. Initial wurde diese Software von Heptio geschrieben.

Ab der Kubernetes-Version 1.10 kann der unmodifizierte kubectl-Client so konfiguriert werden, dass dieser mit Amazon EKS durch die Installation des IAM Authenticators und entsprechender Konfiguration verwendet werden kann. Eine beispielhafte Konfiguration wird im Folgenden näher beschrieben:

apiVersion: v1
clusters:
- cluster:
      server: <endpoint-url>
      certificate-authority-data: <base64-encoded-ca-cert>

name: kubernetes
contexts:
- context:
      cluster: kubernetes
      user: aws
   name: aws
current-context: aws
kind: Config
preferences: {}
users:
- name: aws
   user:
      exec:
         apiVersion: client.authentication.k8s.io/v1alpha1
         command: aws-iam-authenticator
         args:
            - "token"
            - "-i"
            - "<cluster-name>"
               # - "-r"
            # - "<role-arn>"
            # env:
               # - name: AWS_PROFILE
               # value: "<aws-profile>"

Für die Authentifizierung wird der lokal installierte aws-iam-authenticator ausgeführt, der die entsprechende IAM Identität mit jedem Kubernetes-Call weiterleitet. Zusätzlich zu Parametern wie der Endpoint-URL, dem Base64-encoded Zertifikat und dem Clusternamen können noch eine IAM Rolle und ein spezielles AWS Credentials Profile mitgegeben werden.

Fazit

Sascha Möllering
Sascha Möllering (Bild: AWS Germany GmbH)

Amazon EKS macht es einfach, Kubernetes Cluster in AWS aufzusetzen, indem dieser ein vollständig verwaltetes Backplane anbietet, in dem sich die Worker-Nodes registrieren können, auf denen dann die Workloads ausgeführt werden. EKS ist upstream Kubernetes und Kubernetes-konform zertifiziert, sodass alle vorhandenen Plug-ins und Tools aus der Kubernetes-Community genutzt werden können.

* Sascha Möllering arbeitet als Solutions Architect bei der Amazon Web Services Germany GmbH. Seine Interessen liegen in den Bereichen Automation, Infrastructure as Code, Distributed Computing, Container und JVM.

Kommentare werden geladen....

Kommentar zu diesem Artikel

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 45585801 / Tipps und Tricks mit AWS)