Kubernetes auf SUSE Linux – verständlich & praktisch für Einsteiger
Kubernetes (K8s) orchestriert Container: startet, überwacht und skaliert Apps automatisch. In diesem Einsteiger-Guide zeige ich dir den schnellsten Start auf SUSE mit k3s – inkl. Hello-Web-Beispiel, Ingress, HPA und Cheatsheet.
Du willst deinen ersten Kubernetes-Cluster auf SUSE Linux starten und verstehen, warum das sinnvoll ist? Hier ist eine kompakte, praxisnahe Einführung – ideal für Anfänger.
Was ist Kubernetes?
Kubernetes (K8s) ist ein Orchestrator für Container-Anwendungen. Es startet, überwacht und skaliert Container automatisch auf einem oder mehreren Servern (Nodes).
- Pod: Kleinste Einheit – enthält i. d. R. 1 Container (z. B. eine Web-App).
- Deployment: „Halte immer n identische Pods am Leben“ (Selbstheilung & Updates).
- Service: Stabile interne/optionale externe IP/Port für Pods (Load-Balancing).
- Ingress: HTTP/HTTPS-Router für schöne URLs & TLS.
- Namespace: Trennt Ressourcen wie Projekte/Ordner.
Warum nutzen? Rollouts/Rollbacks, hohe Verfügbarkeit, einfache Skalierung und eine einheitliche Plattform – ob On-Prem, Cloud oder Edge.
Der einfachste Start auf SUSE: k3s (Single-Node)
Für Einsteiger ist k3s ideal: ein leichtgewichtiges, von SUSE/Rancher gepflegtes Kubernetes. Perfekt für Laptops, VMs oder kleine Server.
Voraussetzungen
- SUSE Linux (openSUSE Leap/Tumbleweed oder SLES)
- Root-Zugriff
- Internetverbindung
Installation
# 1) System aktualisieren sudo zypper refresh sudo zypper update -y # 2) Hilfs-Tools sudo zypper install -y curl ca-certificates # 3) k3s installieren (als Root) curl -sfL get.k3s.io | sh - # 4) Status prüfen systemctl status k3s --no-pager
Die kubeconfig liegt unter /etc/rancher/k3s/k3s.yaml. Für komfortables kubectl:
mkdir -p $HOME/.kube sudo cp /etc/rancher/k3s/k3s.yaml $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config kubectl get nodes
Tipp Firewall: Für erste Tests Firewall temporär lockern oder Kubernetes-Ports gezielt freigeben.
Dein erstes Mini-Projekt: „Hello Web“ mit Autoscaling
1) Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: hello-deploy
spec:
replicas: 2
selector:
matchLabels:
app: hello
template:
metadata:
labels:
app: hello
spec:
containers:
- name: web
image: nginx:stable
ports:
- containerPort: 80
kubectl apply -f hello-deploy.yaml kubectl get pods -l app=hello
2) Service (NodePort)
apiVersion: v1
kind: Service
metadata:
name: hello-svc
spec:
type: NodePort
selector:
app: hello
ports:
- port: 80
targetPort: 80
nodePort: 30080
kubectl apply -f hello-svc.yaml kubectl get svc hello-svc
Im Browser aufrufen: <DEINE_NODE_IP> – die NGINX-Startseite sollte sichtbar sein.
3) Horizontal Pod Autoscaler (HPA)
Autoscaling nach CPU-Last (k3s bringt Metrics-Support mit):
kubectl autoscale deployment hello-deploy --cpu-percent=60 --min=2 --max=10 kubectl get hpa
Bonus: Ingress für schöne URLs (ohne Port 30080)
k3s installiert standardmäßig einen Ingress-Controller (traefik). Erstelle einen Ingress:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: hello-ing
spec:
rules:
- host: hello.local
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: hello-svc
port:
number: 80
kubectl apply -f hello-ingress.yaml
Ergänze auf deinem Client die /etc/hosts:
<DEINE_NODE_IP> hello.local
Danach im Browser: hello.local
Wie setzt man Kubernetes im Alltag ein?
- Mehrstufige Apps: Frontend + Backend + DB via Deployments/StatefulSets
- Konfig & Secrets: ConfigMap / Secret
- Persistenz: PersistentVolumeClaim (z. B. für Datenbanken)
- CI/CD: GitOps mit Argo CD/Flux
- Observability: Logs (kubectl logs), Metriken (Prometheus), Traces (Jaeger)
- Netzwerk: Services (ClusterIP/NodePort/LoadBalancer), Ingress
Auf SUSE beliebt: k3s (Edge/Dev), RKE2 (gehärtetes K8s), Rancher (zentrale GUI/Verwaltung).
Nützliche kubectl-Befehle (Cheatsheet)
# Übersicht kubectl get nodes kubectl get pods -A kubectl get svc -A kubectl describe pod <name> # Logs & Debug kubectl logs -f <pod> kubectl exec -it <pod> -- sh # Skalieren & Rollouts kubectl scale deploy hello-deploy --replicas=5 kubectl rollout status deploy/hello-deploy kubectl rollout undo deploy/hello-deploy
Aufräumen
kubectl delete -f hello-ingress.yaml kubectl delete -f hello-svc.yaml kubectl delete -f hello-deploy.yaml # k3s komplett entfernen (falls gewünscht) sudo /usr/local/bin/k3s-uninstall.sh
Kurz zusammengefasst
- Kubernetes = zuverlässiges Starten, Updaten & Skalieren von Containern.
- Mit k3s hast du auf SUSE schnell einen schlanken, produktionsnahen Einstieg.
- Über Deployment + Service + Ingress ist deine App im Browser – ideal zum Lernen.