Was ist K3s?
K3s ist eine zertifizierte, leichtgewichtige Kubernetes-Distribution von Rancher (SUSE). Während die Standard-Kubernetes-Installation mehrere hundert MB benötigt und eine komplexe Infrastruktur voraussetzt, kommt K3s als einzelne Binary unter 70 MB daher.
Warum K3s statt vollständigem Kubernetes?
| Merkmal | Standard Kubernetes | K3s |
|---|---|---|
| Binärgröße | ~500 MB | ~70 MB |
| RAM (Node) | min. 2 GB | 512 MB |
| Abhängigkeiten | etcd, Docker, CNI | Alles integriert |
| Einrichtungszeit | 30–120 min | 5–15 min |
| Zertifiziert | Ja | Ja (CNCF) |
K3s enthält alles was Standard-Kubernetes kann – es werden nur weniger genutzte Features entfernt (z. B. Legacy-Treiber). Es eignet sich perfekt für:
- Edge Computing: IoT-Gateways, Industrieanlagen
- Homelab / On-Premises: Eigener Cluster ohne Cloud-Kosten
- Entwicklungsumgebungen: Schnelle lokale K8s-Instanz
- KMU-Infrastruktur: Kubernetes ohne komplexes Ops-Team
Voraussetzungen
- Ubuntu 22.04 LTS oder 24.04 LTS (frische Installation)
- Mindestens 1 vCPU, 1 GB RAM (empfohlen: 2 vCPU, 2 GB RAM)
- Root-Zugriff oder sudo
- Öffentliche oder feste private IP (für Multi-Node)
Systemvorbereitung:
sudo apt update && sudo apt upgrade -y
sudo ufw allow 6443/tcp # Kubernetes API
sudo ufw allow 10250/tcp # kubelet
K3s Single-Node installieren
Die einfachste Methode – ein Befehl:
curl -sfL https://get.k3s.io | sh -
Das Installationsskript:
- Lädt die K3s-Binary herunter
- Installiert einen systemd-Service
- Startet den K3s-Server (= Control Plane + Worker in einem)
Status prüfen
sudo systemctl status k3s
sudo k3s kubectl get nodes
Ausgabe:
NAME STATUS ROLES AGE VERSION
ubuntu01 Ready control-plane,master 2m v1.29.x+k3s1
kubectl für den regulären Benutzer einrichten
mkdir -p ~/.kube
sudo cp /etc/rancher/k3s/k3s.yaml ~/.kube/config
sudo chown $USER:$USER ~/.kube/config
# kubectl ist als k3s kubectl verfügbar, oder:
sudo ln -s /usr/local/bin/k3s /usr/local/bin/kubectl
Erste App deployen
Nginx als Test-Deployment:
kubectl create deployment nginx --image=nginx:alpine
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get svc nginx
Rufen Sie die App über http://<Server-IP>:<NodePort> auf.
Multi-Node Cluster (Server + Agent)
Server-Token auslesen
Auf dem Server-Node:
sudo cat /var/lib/rancher/k3s/server/node-token
Agent-Node hinzufügen
Auf jedem Worker-Node:
curl -sfL https://get.k3s.io | K3S_URL=https://<SERVER_IP>:6443 K3S_TOKEN=<TOKEN> sh -
Cluster-Status auf dem Server:
kubectl get nodes
NAME STATUS ROLES AGE VERSION
server01 Ready control-plane,master 10m v1.29.x+k3s1
worker01 Ready <none> 2m v1.29.x+k3s1
worker02 Ready <none> 1m v1.29.x+k3s1
Helm – Kubernetes-Paketmanager installieren
Helm ist der De-facto-Standard für das Installieren von Kubernetes-Apps:
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
helm version
Beispiel: Prometheus-Stack installieren:
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
helm install monitoring prometheus-community/kube-prometheus-stack --namespace monitoring --create-namespace
Traefik Ingress Controller
K3s installiert Traefik automatisch als Ingress Controller. Damit können Sie HTTP/HTTPS-Routen zu Ihren Services erstellen:
# ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: nginx-ingress
annotations:
traefik.ingress.kubernetes.io/router.entrypoints: web
spec:
rules:
- host: nginx.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: nginx
port:
number: 80
Anwenden:
kubectl apply -f ingress.yaml
Persistent Storage mit Local-Path
K3s enthält den local-path-provisioner als Standard-Storage-Class. PersistentVolumeClaims werden automatisch als Verzeichnisse unter /var/lib/rancher/k3s/storage/ erstellt:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: app-data
spec:
accessModes: [ReadWriteOnce]
resources:
requests:
storage: 5Gi
K3s deinstallieren
# Server-Node
sudo /usr/local/bin/k3s-uninstall.sh
# Agent-Node
sudo /usr/local/bin/k3s-agent-uninstall.sh
FAQ
Kann K3s in der Produktion eingesetzt werden?
Ja. K3s ist CNCF-zertifiziert und wird von Rancher/SUSE aktiv gepflegt. Es wird in zahlreichen Produktionsumgebungen, Edge-Deployments und bei KMU weltweit eingesetzt.
Welche Kubernetes-Version unterstützt K3s?
K3s folgt dem Kubernetes-Release-Zyklus und unterstützt stets die letzten 3 Minor-Versionen (z. B. 1.28, 1.29, 1.30).
Kann ich K3s mit Proxmox kombinieren?
Perfekt. K3s-Nodes in Proxmox-VMs betreiben ist ein verbreitetes Homelab-Setup. Mit Proxmox-Snapshots haben Sie einfache Backup-Möglichkeiten für den Cluster-State.
Was ist der Unterschied zu k3d und minikube?
k3d und minikube laufen in Docker-Containern – ideal für lokale Entwicklung. K3s läuft direkt auf dem OS und ist für Produktionsumgebungen gedacht.
Fazit
K3s macht Kubernetes für KMU und DevOps-Teams ohne großes Cloud-Budget zugänglich. Mit einem einzigen Befehl haben Sie einen vollständigen, zertifizierten Kubernetes-Cluster – auf einem Raspberry Pi genauso wie auf einem Rechenzentrumsserver.
Benötigen Sie Hilfe beim Aufbau einer Container-Infrastruktur in Heidelberg oder Mannheim? Unser DevOps-Team plant und implementiert K3s-Cluster für KMU in der Rhein-Neckar-Region. Jetzt Beratung anfragen.