K8s Deployment visualisieren

Intro

Um Deployments eines Kubernetes Clusters zu visualisieren, habe ich mir Pimoroni Blinkt LED Strips gekauft und sie auf die GPIO-Slots der RPi des Clusters gesteckt.

Demo

Details

Durch blinkt-controller wird ein Daemonset erstellt, welches auf die Labels blinkt und blinktColor von Pods reagiert. Damit die LEDs angesteuert werden können, laufen die Pods als cluster-admin. Weiteres unter “How it works” auf GitHub.

Vorbereitung

In dem Video ist der Controller bereits eingerichtet. Zusätzlich verwende ich diese beiden Manifests:

Ablauf

Deploy

Zuerst wird das Deployment “green” durchgeführt. Dadurch werden die 16 grünen Pods gleichmäßig auf die 4 Nodes verteilt.

kubectl apply -f hello-blinkt-controller-green.yml

Der Vorgang des Deployments kann jedes Mal mit folgenden Befehl beobachtet werden.

kubectl rollout status deployment/hello-blinkt

Update

Sobald das Deployment erfolgreich war, wird das Deployment auf “blue” geändert. Kubernetes prüft dann erstmal vorsichtig, ob das Deployment in Ordnung ist. In dieser Übergangsphase sind sowohl grüne als auch blaue Pods aktiv. Wenn die neue Version des Deployments erfolgreich geprüft wurde, ersetzen weitere blaue Pods die alten grünen Pods.

kubectl apply -f hello-blinkt-controller-blue.yml

Delete

Anschließend wird das Deployment gelöscht. Auch hier geht K8s schrittweise vor und entfernt nacheinander die einzelnen Pods.

kubectl delete -f hello-blinkt-controller-blue.yml

Fazit

Durch die LEDs und die unterschiedlichen Farben, ist der Vorgang meiner Meinung nach deutlich greifbarer, als z.B. in Lens und damit gerade für kleine Kubernetes 101 Sessions geeignet.