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 │
└─────────────────────────────────────────────────────┘
💡 k9s funktioniert nicht für Podman/Docker – es spricht direkt mit der Kubernetes-API. Für Podman gibt es
podman-tui(experimentell) oder direktpodman 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."
Weiterführende Links
| Thema | Link |
|---|---|
| Kubernetes Dokumentation | kubernetes.io/docs |
| Red Hat OpenShift | docs.openshift.com |
| k9s | k9scli.io |
| k3s | k3s.io |