Suchen

Container-Orchestrierung mit AWS EKS, Teil 4 Beispiel-Anwendung unter EKS zum Laufen bringen

| Autor / Redakteur: Dipl. -Ing. Thomas Drilling / Stephan Augsten

Mit Amazon EKS haben wir einen vollständig verwalteten Kubernetes-Service in der Public Cloud zum Laufen gebracht. Nachdem wir die Worker-Knoten auf EC2 bereitgestellt haben, können wir mit dem „kubectl“-Befehl exemplarisch eine Beispiel-App ausrollen.

Firma zum Thema

Über den „Compute“-Reiter in der EKS-Konsole prüfen wir, ob unsere EC2-Instanzen ein und demselben Cluster angehören.
Über den „Compute“-Reiter in der EKS-Konsole prüfen wir, ob unsere EC2-Instanzen ein und demselben Cluster angehören.
(Bild: Drilling / AWS)

Im Rahmen der ersten drei Teile dieses EKS-Tutorials haben wir einen funktionierenden – wenn auch rudimentären – Amazon EKS-Cluster mit Worker-Knoten aufgesetzt. In der EKS-Console prüfen wir zunächst, ob im Reiter „Compute“ unsere zwei minimal konfigurierten EC2-Instanzen als Teil einer Autoscaling-Gruppe auftauchen.

Über den „Compute“-Reiter in der EKS-Konsole prüfen wir, ob unsere EC2-Instanzen ein und demselben Cluster angehören.
Über den „Compute“-Reiter in der EKS-Konsole prüfen wir, ob unsere EC2-Instanzen ein und demselben Cluster angehören.
(Bild: Drilling / AWS)

Ist das wie im hier gezeigten Bild der Fall, kann man sich der Installation von Kubernetes-Add-Ons, vor allem aber dem Installieren und Betreiben von Anwendungen auf dem Cluster widmen.

Anwendung auf EKS

AWS beschreibt z. B. in seiner EKS-Dokumentation das Bereitstellen einer Gästebuch-Anwendung auf EKS. Den Code für das Guestbook stellt AWS auf Github zur Verfügung.

Da die Infrastruktur jetzt einsatzbereit ist, können alle benötigten Komponenten bequem via kubectl ausgerollt werden. Wir beginnen mit dem Redis-Master-Replikations-Controller:

kubectl apply -f https://raw.githubusercontent.com/kubernetes/examples/master/guestbook-go/redis-master-controller.json

Dann erstellen wir den erstellen wir den Redis-Master-Service.

kubectl apply -f https://raw.githubusercontent.com/kubernetes/examples/master/guestbook-go/redis-master-service.json

Danach Erstellen wir den Redis-Slave-Replikations-Controller.

kubectl apply -f https://raw.githubusercontent.com/kubernetes/examples/master/guestbook-go/redis-slave-controller.json

Schließlich noch den Slave-Master-Service.

kubectl apply -f https://raw.githubusercontent.com/kubernetes/examples/master/guestbook-go/redis-slave-service.json

Dann folgt noch ein Gästebuch-Replikations-Controller.

kubectl apply -f https://raw.githubusercontent.com/kubernetes/examples/master/guestbook-go/guestbook-controller.json

Und zum Schluss benötigen wir noch den Gästebuch-Service selbst:

kubectl apply -f https://raw.githubusercontent.com/kubernetes/examples/master/guestbook-go/guestbook-service.json

Wir fragen ab, ob alle von uns bereitgestellten Dienste laufen.
Wir fragen ab, ob alle von uns bereitgestellten Dienste laufen.
(Bild: Drilling / AWS)

Jetzt fragen wir die eben bereitgestellten Services im Cluster ab. Dies geschieht über den Befehl:

kubectl get services –o wide

Gegebenenfalls müssen wir etwas warten, bis in der Spalte „External IP“ (Externe IP) für den guestbook-Service ein Eintrag auftaucht, auch hier im vorangestellten Bild ist der Status noch „Pending“.

Läuft alles nach Plan, ist die Guestbook-Anwendung über die externe IP erreichbar.
Läuft alles nach Plan, ist die Guestbook-Anwendung über die externe IP erreichbar.
(Bild: Drilling / AWS)

Die Anwendung steht dann nach einiger Zeit unter der externen IP zur Verfügung.

(ID:46648689)

Über den Autor

Dipl. -Ing. Thomas Drilling

Dipl. -Ing. Thomas Drilling

IT-Consultant, Trainer, Freier Journalist