So erstellst du ein simples Kubernetes Cluster in AWS

In diesem Artikel richten wir mit minimalem Aufwand ein Kubernetes Cluster in AWS ein. Der Zweck hiervon ist, zu zeigen, wie einfach es ist ein persönliches Cluster zum Testen oder Herumspielen zu erstellen. Dennoch, könnte dieser Cluster auch in der Produktion eingesetzt werden.

Vorbereitung

Um einen Cluster in AWS einzurichten, nutzen wir ein unter macOS laufendes Entwickler-System. Allerdings, sollten die meisten Prozesse auch auf Linux oder Windows übertragbar sein.

AWS Konto

Ein bestehendes AWS Konto ist hierfür erforderlich, ein kostenloses Tier ist verfügbar.

Tools

Der Homebrew Paketmanager ist sehr beliebt, also nutzen wir diesen um einige Tools zu installieren:

brew install awscli aws-iam-authenticator eksctl kubernetes-cli derailed/k9s/k9s

Konfiguration

Erstelle einen AWS Zugriffsschlüssel:

Logge dich in die AWS Konsole, gehe zu IAM > Users, klicke auf den Benutzer, den du verwenden willst, wähle das Tab “Security credentials” und klicke “Create access key”.

Du solltest jetzt zwei Teile des Zugriffsschlüssels haben: eine Zugriffsschlüssel ID (zum Beispiel: AKIAIOSFODNN7EXAMPLE) und einen geheimen Zugriffsschlüssel (zum Beispiel: wJalrXUtnFEMI / K7MDENG / bPxRfiCYEXAMPLEKEY)

Wähle eine Region, in der EKS Unterstützung für Fargate verfügbar ist. Diese sind momentan US East (Virginia), US (Ohio), Europa (Irland) und Asia Pacific (Tokyo).

Erstelle nun zwei Dateien mit deinem bevorzugten Text-Editor:

~/.aws/config [default] region = eu-west-1 output = yaml
~/.aws/credentials [default] aws_access_key_id = AKIAIOSFODNN7EXAMPLE aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

Ersetze die Region und die Schlüsselkomponenten mit deinen Werten.

Teste deine Konfiguration mit:

aws iam list-access-keys

welches ohne Fehlermeldung durchgeführt werden sollte.


Cluster erstellen

Wähle einen Namen und eine Version für dein Cluster.

Mit testcluster und der Version 1.15, ist das Erstellen des Clusters ein simpler Einzeiler:

eksctl create cluster --fargate --version 1.15 --name testcluster


Dies läuft für circa 15 bis 20 Minuten, also schnapp dir eine Tasse deines Lieblingsgetränks.

eksctl ergänzt kubectl Konfiguration, somit sollte dir die Server Version

kubectl version --short

geben.

Die Nutzung des Clusters

Überprüfen wir zuerst, was funktioniert. Führe

k9s aus.

Wenn du 0 (null) einträgst, dann solltest du zwei coredns Instanzen laufen sehen.

Öffne nun ein separates Fenster, damit wir einen Test Pod starten können:

kubectl run -it busybox --image=busybox --restart=Never --rm=true -- sh

Im k9s Fenster sollte nun ein Pod starten. Nachdem du einen Shell im Kubernetes Cluster bekommen hast, kannst du zum Beispiel dies testen:

ping -c 3 www.melsicon.de

Schließe den Shell durch ´exit´ und der Pod wird automatisch gelöscht.

Beende nun k9s durch Eingabe von :q und das Drücken der Return Taste.

Das Cluster löschen

Das Löschen des Clusters funktioniert auch durch einen Einzeiler:

eksctl delete cluster --name testcluster --wait

Dies dauert circa 15 Minuten. Du kannst --wait unterlassen, dadurch wird der Befehl fast sofort beendet und der Cluster im Hintergrund gelöscht. Beachte jedoch, dass du den Cluster nicht neu erstellen kannst, während der Löschvorgang noch läuft. Dies führt zu einer Fehlermeldung.

Zusammenfassung

Wir haben gesehen, wie ein Kubernetes Cluster mit einem einfachen Einzeiler erstellt und gelöscht werden kann. Auf diese Weise sind sie für Entwicklung, Tests, Demonstration und Produktion leicht zugänglich. Beachte auch, dass hierfür keine lokale Docker Installation erforderlich ist.

Weitere Blogartikel

Schnelleinstieg

KarriereBlog

Kontakt

melsicon GmbH
Mergenthalerallee 73-75
65760 Eschborn

Telefon: +49 6196 93499 50
Email: hallo@melsicon.de