RKE2 Cheatsheet

RKE2 CheatsheetKapitel 01 von 11

RKE2 Architektur

Stand RKE2 1.37 · Edition 2026.11 · Release-Daten geprüft am 30. Oktober 2026

Ein Binary, zwei Rollen

rke2-server / rke2-agent: je eine systemd-Unit, ein statisch gelinktes Binary. Der Supervisor startet und überwacht die eigene containerd-Instanz, das kubelet und, auf Servern, die Control-Plane als statische Pods.

Kein Docker: eigenes containerd unter /run/k3s/containerd, Socket containerd.sock.

Server-Node

embedded etcd: Default-Datastore (Raft), Quorum über ungerade Server-Zahl.

Control-Plane als static Pods: apiserver, controller-manager, scheduler, etcd, cloud-controller, Manifeste in /var/lib/rancher/rke2/agent/pod-manifests, vom kubelet gestartet (nicht in-process wie k3s). kube-proxy läuft als static Pod auf allen Nodes.

Externer CCM (Hetzner, AWS, OpenStack …): cloud-provider-name: external plus disable-cloud-controller: true auf allen Servern. v1.36.0 bis v1.36.5, v1.37.0 und v1.37.1 starten sonst trotz external den eingebauten CCM.

CNI & Netzwerk

Default Canal (Calico-Policy + Flannel-VXLAN). Alternativen per cni:: Cilium, Calico, Flannel (ohne NetworkPolicy). Multus ist nur Meta-Plugin für Multi-NIC, immer an erster Stelle neben einem primären CNI: cni: [multus, canal].

Ingress per ingress-controller: (traefik | none), Traefik ist seit 1.36 Default für neue Cluster. Ab 1.37 bricht ein explizites ingress-controller: ingress-nginx allein den Start ab, nginx ist nur noch im Dual-Betrieb mit Traefik wählbar (Migration). Upgegradete Cluster ohne gesetzten Wert erkennen nginx am vorhandenen Chart und behalten es (Community-Image v1.14.5-hardened2; laut ADR-Entwurf ohne weitere Updates, Chart entfällt in 1.38). Vor dem 1.37-Upgrade trotzdem explizit [ingress-nginx, traefik] setzen, Traefik dabei auf Ausweich-Ports (Migrationsdoku, Phase 1). traefik allein entfernt nginx.

Dazu CoreDNS, metrics-server, snapshot-controller, ab 1.37 rke2-gateway-api-crd (Gateway API v1.6) und rke2-security-responder, alle als HelmChart-CRs.

export KUBECONFIG=/etc/rancher/rke2/rke2.yaml
export PATH=$PATH:/var/lib/rancher/rke2/bin
kubectl get nodes -o wide
systemctl status rke2-server