RKE2 Single-Node Cluster | Homelab

Dieses Repository enthält die vollständige Infrastruktur-Konfiguration (Infrastructure as Code) für meinen RKE2-basierten Kubernetes Single-Node-Cluster auf einem ASUS PN51.

🚀 Übersicht

Das Ziel dieses Projekts ist ein hochautomatisierter Cluster, der dem "Set and Forget"-Prinzip folgt. Von der IP-Ankündigung via BGP bis zur automatischen Zertifikatsausstellung ist alles in GitOps-Workflows abgebildet.

📊 System-Architektur

graph TD
    subgraph "External World / Home Network"
        Router[UniFi Dream Machine]
        Auth[Authentik SSO]
        Vault[Phase Secrets]
    end

    subgraph "ASUS PN51 Node (openSUSE Leap)"
        RKE2[⚓ RKE2 Engine]
        Cilium[🛡️ Cilium eBPF & BGP]
        EG[🚀 Envoy Gateway API]
        Argo[🎡 ArgoCD GitOps]
    end

    Router <-->|BGP Peering| Cilium
    Cilium --> EG
    EG -->|Traffic Control| Apps[Immich, n8n, etc.]
    Argo -->|Sync| RKE2
    Vault -->|Inject Secrets| Argo
    Auth -->|OIDC| Argo

🛠️ Tech-Stack

Schicht Komponente Beschreibung
OS openSUSE Leap 16.0 Stabiles Fundament für den ASUS PN51
K8S RKE2 (v1.34.4) Sicherheitsorientierte Kubernetes-Distribution
Network Cilium (eBPF) High-Performance Networking & BGP
Gateway Envoy Gateway Moderne Gateway API statt klassischem Ingress
GitOps Argo CD Vollautomatische Applikations-Bereitstellung
Secrets Phase Sichere Injektion von Umgebungsvariablen
DNS External-DNS Sync von Hostnames mit UniFi & Cloudflare
Certs Cert-Manager TLS via Let's Encrypt (DNS-01 Challenge)

📂 Repository Struktur

Die Konfiguration ist chronologisch nach der Installationsreihenfolge aufgebaut:

  • 01_unifi_gateway_setup/: Vorbereitung des Routers (BGP Config).
  • 02_rke2_installation/: Grundinstallation von Kubernetes auf dem Node.
  • 03_netzwerk_und_gateway/: Deployment von Cilium & Envoy Gateway Controller.
  • 04_envoy_gateway_preparation/: BGP IP-Pools und initiale Shared Gateways.
  • 05_base_apps_and_tools/: Hilfsmittel wie Cert-Manager, External-DNS & Phase.
  • 06_argocd_installation/: Installation von Argo CD inkl. SSO-Anbindung.
  • 07_bootstrap_argocd/: Der "App-of-Apps" Bootstrap für die Automatisierung.
  • 08_cluster_infrastructure/: Core-Services (NFS Storage, VPA, etc.).
  • 09_homelab_apps/: Benutzer-Applikationen (Immich, Ghostfolio, n8n, etc.).

🏗️ Getting Started

Um den Cluster neu aufzusetzen, folgen Sie den detaillierten installation_instructions.md in den jeweiligen Ordnern 01 bis 07.

Ab Schritt 07 übernimmt ArgoCD das Management:

  1. ApplicationSets scannen die Ordner 08 und 09.
  2. Jede neue Applikation erhält automatisch:
    • Eine LoadBalancer VIP (via BGP).
    • Einen DNS-Eintrag (via External-DNS).
    • Ein TLS-Zertifikat (via Cert-Manager).
    • SSO-Schutz (via Authentik/OIDC).

🔑 Externe Abhängigkeiten

Für den vollen Funktionsumfang werden folgende Dienste benötigt:

  • UniFi Router: Für BGP Peering und lokales DNS.
  • Authentik: Zentraler Identity Provider (SSO).
  • Phase.dev: Cloud-Konsole für das Secret-Management.
  • Cloudflare: DNS-Provider für die ACME DNS-01 Challenge.

Dokumentation & Konfiguration gepflegt durch Gemini CLI | Stand: 06. März 2026

S
Description
No description provided
Readme 614 KiB