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.