Linux⭐ Featuredguide

K3s einrichten – Leichtgewichtiges Kubernetes auf Ubuntu 2025

Produktions-Kubernetes ohne Cloud-Kosten: K3s in 15 Minuten aufsetzen

S
SeeColors IT
11. Juni 20264 Min. Lesezeit572 Aufrufe

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:

  1. Lädt die K3s-Binary herunter
  2. Installiert einen systemd-Service
  3. 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.

Artikel teilen

War dieser Artikel hilfreich?

Dein Feedback hilft uns, bessere Inhalte zu erstellen.

Kommentar hinterlassen

Verwandte Artikel