Nach vielen technischen Details in den vorherigen Blogposts möchte ich diesen Beitrag nutzen, um ein paar konkrete Anwendungen in meinem Kubernetes-Cluster vorzustellen. Dabei setze ich auf FluxCD und Helm Charts, um die Anwendungen zu deployen und zu verwalten.

Paperless
Paperless-ngx ist eine Anwendung zur Verwaltung digitaler Dokumente. In meinem Setup habe ich es mit mehreren zusätzlichen Komponenten kombiniert:
- PostgreSQL: Die Datenbank wird mit dem cloudnative-pg-Operator verwaltet.
- Redis: Wird direkt mit dem Helm Chart von Paperless mitinstalliert.
- Gotenberg: Zum Konvertieren von Dokumenten in PDFs.
- Tika: Zur Texterkennung und -analyse von Dokumenten.
Das Setup läuft insgesamt stabil, allerdings habe ich festgestellt, dass der Einsatz von LLMs zur automatischen Dokumentenanalyse nicht praktikabel ist (siehe unten).
KitchenOwl
KitchenOwl ist eine Open-Source-Anwendung zur Verwaltung von Rezepten und Einkaufslisten. Auch hier setze ich auf eine PostgreSQL-Datenbank, die über den cloudnative-pg-Operator bereitgestellt wird.
OpenHAB
OpenHAB ist eine Open-Source-Software zur Hausautomation. Ich habe mich für das Helm Chart von TrueCharts entschieden, musste aber einige Anpassungen vornehmen:
- Root-Rechte: OpenHAB benötigt Root-Zugriff, was in einem typischen Kubernetes-Setup unüblich ist.
- Node-Pinning: Ich musste OpenHAB an eine bestimmte Node binden, damit Rückkanäle für HomeKit, MQTT und Homematic zuverlässig funktionieren.
- hostNetwork: true: Damit HomeKit korrekt funktioniert, musste ich
hostNetwork: true
setzen. - MQTT-Broker (Mosquitto): Damit OpenHAB mit MQTT-basierten Geräten kommunizieren kann, habe ich zusätzlich Mosquitto als Broker in Kubernetes bereitgestellt.
OpenHAB Cloud
OpenHAB Cloud ist eine optionale Komponente, die einen Proxy zur sicheren Nutzung von OpenHAB über das Internet bereitstellt. Da es kein offizielles Helm Chart gibt, habe ich mein eigenes erstellt: ohcloud Helm Chart.
Während der Nutzung habe ich festgestellt, dass OpenHAB Cloud keinen Health-Endpoint hatte. Daher habe ich selbst zum Open-Source-Projekt beigetragen und einen entsprechenden Endpoint implementiert.
Was nicht funktioniert hat: Ollama für Paperless
Ich habe versucht, Ollama mit Paperless zu kombinieren, um Dokumente automatisiert zu analysieren und zusammenzufassen. Leider ist die Hardware meines Clusters zu schwach für die Nutzung von LLMs. Selbst einfache Anfragen haben 15 Minuten für eine Antwort benötigt, weshalb ich dieses Experiment abgebrochen habe.
Mit diesen Anwendungen habe ich mein Kubernetes-Setup auf ein für mich produktives Niveau gebracht. Falls du Fragen zu einzelnen Deployments hast oder selbst eine ähnliche Umgebung aufbauen möchtest, hinterlasse gerne einen Kommentar!
Zukünftige Pläne
Mein Kubernetes-Setup ist noch nicht abgeschlossen. In nächster Zeit plane ich, weitere Webanwendungen in Kubernetes zu migrieren. Dazu gehören:
- Davical: Eine CalDAV-Server-Software. Bevor ich es deployen kann, muss ich jedoch erst ein passendes Helm Chart erstellen.
- Icinga2: Mein Monitoring-System, das ich bereits für verschiedene Server und Projekte (z. B. Freifunk) nutze. Ich möchte es vollständig in Kubernetes überführen.
- Telegraf: Zur Erfassung von Systemmetriken und deren Weiterleitung an mein Monitoring-Setup.
Ich werde weiter darüber berichten, sobald ich Fortschritte mache!
Weitere Blogposts aus der k3s-Reihe
- Einführung in meinen Kubernetes-Heimcluster: Warum und Wie?
- Der Aufbau meines Kubernetes-Heimclusters: Die Wahl der Hardware
- Initialisierung meines Heim-Kubernetes-Clusters: k3s mit Ansible
- GitOps mit FluxCD für meinen Heim-Kubernetes-Cluster
- Sichere Verwaltung von Kubernetes Secrets mit Sealed Secrets
- Automatisierte DNS- und SSL-Zertifikatsverwaltung in Kubernetes
- Ingress und Load Balancer in Kubernetes: Traefik und MetalLB
- Storage, Backup und Restore in meinem Kubernetes-Cluster
- Authentifizierung und Autorisierung in k3s
- K3s: Automatisierte Updates mit Renovate
- Wenn automatische Updates fehlschlagen