Kubernetes mit "Erkules"

Ein Training, das sich gelohnt hat! Erfahrungsbericht eines "ein bisschen verliebten" Teilnehmers...

Im Juni 2018 hatten einige Mitarbeiter von Cologne-Intelligence das Vergnügen an einer Docker-Schulung in München teilzunehmen. Geleitet wurde diese von Erkan Yanar, der, wie sich herausstellte, der beste Coach aller Zeiten ist. Er begeisterte mit Kompetenz, Erfahrung und seiner sympathischen Art. Bin ich verliebt? Ein bisschen.
Sein Nickname "Erkules" ist übrigens vollkommen berechtigt.
Und was ist der nächste logische Schritt nach Docker? Richtig, Kubernetes!
Wie praktisch, dass Erkan dafür auch eine Schulung anbietet. Da das Interesse groß war, fand die Schulung direkt vor Ort letzte Woche in Köln statt. Wir konnten uns ein zweites Mal von Erkan "beglücken" lassen. Und ich kann mit Recht sagen, dass es sich wieder voll und ganz gelohnt hat!

Auf den ersten Blick wirkte unser Schulungsraum wie eine kleine LAN-Party. Jeder mit einem Rechner ausgestattet, alle sind vernetzt, Switches sind auf dem Tisch verteilt, LAN-Kabel liegen kreuz und quer, Leute tippen auf ihren Laptops. Statt trockener Theorie konnten die Themen hier direkt praktisch angewendet werden. Erkan spendierte jedem Teilnehmer für den Zeitraum der ganzen Schulung ein kleines Kubernetes Cluster mit 4 Nodes.

Doch was ist eigentlich Kubernetes?

Kubernetes ist mehr als "nur" ein Tool zum Orchestrieren von Docker-Containern. Es ist ein Umdenken innerhalb der Softwareentwicklung und Systemadministration. Es ist ein Kulturwandel. Als ein Buzz-Wort zusammengefasst: DevOps.
Softwareentwickler sind in Kubernetes selbst für das Deployment und den Lifecycle ihrer Applikationen und Services zuständig. Als Entwickler muss man sich hier Gedanken über den Betrieb machen und so sollte es in der IT-Welt auch sein. Als Systemadministrator hat man keine Lust, die Applikationen eines Entwicklers zu debuggen und es macht auch gar keinen Sinn. In kurz: Kubernetes ist die ideale Plattform für Admins und Devs.
Man bekommt ein Tool, das es einem ermöglicht eine eigene Infrastruktur aufzubauen. Es können klare Regeln und Limits definiert werden, innerhalb welcher die Entwickler ihre Applikationen und Services selbst laufen lassen und managen können. Ansible, Puppet, Chef, tausende Scripte, eine unübersichtliche Infrastruktur und gebündeltes Inselwissen über den Aufbau und die Konfiguration - das ist mit Kubernetes Geschichte.

Und was haben wir gelernt?

In wenigen Tagen haben wir einen informativen Einblick in die wichtigsten Bestandteile bekommen:
Docker-Recap, Kubernetes Architecture, Lifecycle management, Pods, ReplicaSets, Deployments, StatefulSets, Services, ConfigMaps, Portmapping, Service Discovery, Namespaces, Labels, CronJobs, ResourceQuotas, LimitRanges, Pod priorities, Ingress Controller/Resources, Traefik, Volume Management/PVC und PV, Scaling, Auto Scaling, NetworkPolicies,  PodSecurityPolicies, Logging (Lucene, Kibana), Resource Monitoring (Prometheus, Grafana), Role-based access control und das Wichtigste von allem? TMUX!

Und nun?

Können wir in wenigen Sekunden ein Kubernetes Cluster ausrollen.
Ist das geil? Ja!
Sachen auszurollen ist einfach geworden. Doch hier fängt Kubernetes erst an. Das Aufwendige ist das Konfigurieren des Clusters nach den gegebenen Anforderungen der Entwickler, Kunden oder Unternehmen.
Sind Systemadministratoren jetzt überflüssig? Natürlich nicht. Doch sie können sich so mehr auf ihre Kernarbeit konzentrieren und müssen sich nicht mit Entwickler-Problemen herumärgern (ok, vielleicht noch ein bisschen). Generell sollte man sich vielleicht von dem Gedanken verabschieden, die Arbeitsbereiche von Admins und Devs getrennt zu sehen. Besser wäre es, sich im Vorfeld gemeinsam Gedanken zu machen und zu planen. Kommunikation vor dem Betrieb ist wichtig und notwendig, um die Kommunikation wegen Problemen während des Betriebs auf ein Minimum zu reduzieren.

Bevor das Erlernte nun wieder in den Tiefen des eigenen Memorys verschwindet, gilt es das Wissen zu festigen und Erfahrungen in der Praxis zu sammeln. Ich freue mich schon darauf!