Skip to main navigation Skip to main content Skip to page footer

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.
Zurück