Zum Inhalt

Ausblick – Kubernetes & OpenShift

Dauer: ca. 15 Minuten
Ziel: Verstehen wozu Kubernetes dient – und die Brücke von Podman zu k8s sehen.


Was fehlt uns noch?

Wir können jetzt: - Container starten, verwalten, debuggen - Daten persistent machen - Container vernetzen - Container dauerhaft als Service betreiben

Aber: Was wenn wir 500 Container auf 20 Servern betreiben müssen?

Manuell:                          Kubernetes:
podman run ... (Server 1)         kubectl apply -f app.yaml
podman run ... (Server 2)         → k8s verteilt, überwacht,
podman run ... (Server 3)            skaliert, ersetzt
...

Was ist Kubernetes?

Kubernetes (k8s) ist ein Orchestrierungssystem für Container:

┌──────────────────────────────────────────────────────┐
│                   Kubernetes Cluster                  │
│                                                      │
│  ┌──────────────┐   ┌──────────────┐                │
│  │    Node 1    │   │    Node 2    │                │
│  │  ┌────────┐  │   │  ┌────────┐  │                │
│  │  │  Pod   │  │   │  │  Pod   │  │                │
│  │  │ nginx  │  │   │  │ nginx  │  │                │
│  │  └────────┘  │   │  └────────┘  │                │
│  │  ┌────────┐  │   │              │                │
│  │  │  Pod   │  │   │              │                │
│  │  │ app    │  │   │              │                │
│  │  └────────┘  │   │              │                │
│  └──────────────┘   └──────────────┘                │
│                                                      │
│  Control Plane: verteilt, überwacht, skaliert        │
└──────────────────────────────────────────────────────┘

Was Kubernetes für dich erledigt: - Container auf mehrere Server verteilen - Ausgefallene Container automatisch neu starten - Traffic auf mehrere Instanzen verteilen (Load Balancing) - Skalieren bei mehr Last (mehr Container starten) - Rolling Updates ohne Downtime

"Kubernetes ist wie ein Schichtleiter der einen Haufen Container-Arbeiter koordiniert – er weiss immer wer gerade läuft, startet neue wenn einer ausfällt, und verteilt die Arbeit."


Die Begriffe

Begriff Bedeutung Podman-Äquivalent
Pod Kleinste Einheit – ein oder mehrere Container podman pod
Node Server im Cluster Einzelner Server
Deployment Soll-Zustand: "3x nginx sollen laufen"
Service Stabiler Endpunkt für Pods (DNS, Load Balancing) custom network + DNS
Namespace Logische Trennung im Cluster
kubectl CLI-Tool für Kubernetes podman

Die Varianten

Beschreibung Einsatz
Kubernetes (k8s) Das Original – komplex, selbst verwaltet Grosse Installationen
k3s Leichtgewichtige k8s-Distribution Edge, kleine Teams
MiniKube k8s lokal für Entwicklung und Tests Laptop/Testumgebung
OpenShift Red Hat Enterprise k8s mit mehr Features Enterprise, RHEL-Umgebungen

"OpenShift ist Kubernetes wie RHEL Linux ist – enterprise-ready, supportet, mit mehr Sicherheit und Tooling obendrauf."


kubectl – die wichtigsten Befehle

Die Parallelen zu Podman sind sofort erkennbar:

Podman kubectl Was es macht
podman ps kubectl get pods Laufende Pods anzeigen
podman ps -a kubectl get pods -A Alle Namespaces
podman logs <n> kubectl logs <pod> Logs anzeigen
podman exec -it kubectl exec -it In Pod einsteigen
podman inspect kubectl describe pod <n> Details anzeigen
podman rm kubectl delete pod <n> Pod löschen
# Nodes im Cluster anzeigen
kubectl get nodes

# Pods anzeigen
kubectl get pods
kubectl get pods -n kube-system   # Anderer Namespace

# Details zu einem Pod
kubectl describe pod mein-nginx

# Logs
kubectl logs mein-nginx
kubectl logs -f mein-nginx        # Live

# In Pod einsteigen
kubectl exec -it mein-nginx -- bash

# Deployment anzeigen
kubectl get deployments

k9s – Terminal-UI für Kubernetes

k9s ist ein Terminal-UI für Kubernetes – ähnlich wie podman stats, aber für den ganzen Cluster:

┌─────────────────────────────────────────────────────┐
│  k9s                                                 │
│                                                      │
│  Pods (default)                                      │
│  NAME              READY  STATUS    RESTARTS         │
│  nginx-abc123      1/1    Running   0                │
│  backend-def456    1/1    Running   0                │
│                                                      │
│  [l]ogs  [e]xec  [d]escribe  [ctrl+d]elete          │
└─────────────────────────────────────────────────────┘
# Starten
k9s

# Direkt in einem Namespace
k9s -n production

💡 k9s funktioniert nicht für Podman/Docker – es spricht direkt mit der Kubernetes-API. Für Podman gibt es podman-tui (experimentell) oder direkt podman stats.


Die Verbindung: Podman → Kubernetes

Podman hat eine einzigartige Eigenschaft: Es kann Kubernetes-YAML generieren und lesen:

# Aus laufendem Container Kubernetes-YAML generieren
podman generate kube mein-nginx > nginx-pod.yaml

# YAML anschauen – das ist echtes Kubernetes-Format!
cat nginx-pod.yaml

# Container aus Kubernetes-YAML starten (ohne k8s!)
podman play kube nginx-pod.yaml

"Podman ist die perfekte Brücke: Ihr entwickelt und testet lokal mit Podman, und deployed mit dem gleichen YAML auf Kubernetes."


Thema Link
Kubernetes Dokumentation kubernetes.io/docs
Red Hat OpenShift docs.openshift.com
k9s k9scli.io
k3s k3s.io