# CLT 2025, Kubernetes Kurz-Paper ## Was ist Kubernetes? Kubernetes ist eine Container-Orchestrierungsplattform. Während Systemd Prozesse auf einem Server verwaltet, verwaltet Kubernetes Prozesse (in Containern) auf mehreren Servern. ## Gibt es Alternativen? Für den professionellen Einsatz ist Kubernetes inzwischen so gut wie alternativlos. Docker Swarm, Mesos und Podman waren Alternativen in der Vergangenheit. ## Linux verwalten. Methoden der letzten 25 Jahre Yast (SuSE) und "Turnschuhe", ssh+vi, Bash, SaltStack/Ansible, ... ## Was sind Desired State, Controller, Reconcile? Den gewünschten Zustand („Desired State“) definiert der Nutzer in der Regel in YAML-Dateien. Ein Controller liest den gewünschten Zustand, vergleicht den aktuellen Zustand mit dem gewünschten Zustand und versucht entsprechend, den gewünschten Zustand zu erreichen. Diese Endlosschleife wird auch „Reconciling“ genannt. ## Manifest: YAML Mittels YAML wird der gewünschte Zustand definiert. Pro Ressourcentyp (aka Kind) gibt es ein klares Schema, das beim Anwenden des Manifests (apply) überprüft wird. ## kubectl Das Kommandozeilentool `kubectl` wird verwendet, um mit dem API-Server zu kommunizieren. Die üblichen Aufrufe sind `get`, `apply`, `delete`, und `patch`. ## Interface Specs: CNI, CSI, … Damit Implementierungen ausgetauscht werden können, gibt es mehrere Spezifikationen, die Schnittstellen definieren: - Container Network Interface (CNI) - Container Storage Interface (CSI) - Ingress Controller - Gateway API Controller - ... ## Sane Defaults Quasi-Standards: Cilium, Cert-Manager, cloudnative PostgreSQL, ... ## Data Plane vs Control Plane ... ## Die wichtigsten Resourcen im Überblick - Node - Pod - Deployment - Service - Ingress / Gateway API - ConfigMap - Secret ## Golang, CRDs, Kubebuilder Wie schreibt man einen eigenen Controller? Am besten mit Golang und Kubebuilder. ## Cluster-API: Manage Kubernetes with Kubernetes Cluster-API: Kubernetes-Cluster mit Kubernetes verwalten (z.B. Cluster-API Provider Hetzner von Syself) ## CNCF Die weltweite Zusammenarbeit ist faszinierend. Ähnlich wie beim Linux-Kernel sind alle großen Tech-Firmen dabei und teilen ihre Verbesserungen mit der Konkurrenz. ## Managed Kubernetes oder DIY? DIY (do it yourself) macht Sinn, wenn man Kubernetes kennenlernen möchte. Man hat Zeit und möchte erst einmal damit vertraut werden. Langfristig kann es besser sein, sich auf ein Managed Kubernetes zu verlassen. ## Brauche ich Kubernetes? Nüchtern betrachtet, macht Kubernetes für sehr viele Anwendungen keinen Sinn. Wenn die Last einer Anwendung reibungslos von einem Server gestemmt werden kann, dann ist es deutlich günstiger, sich eine virtuelle Maschine zu mieten. Man nutzt dann Systemd anstatt Kubernetes. Wenn man viele Server mit vielen Anwendungen verwaltet, kann Kubernetes helfen, die Last besser zu verteilen. ## End of Kurz-Paper Ich hoffe, dass ich mit diesem Kurz-Paper Interesse für den Vortrag geweckt habe. Im Vortrag gibt es dann mehr Details und die Möglichkeit Fragen zu stellen.