Architektur

Überblick

Die Plattform stellt private Dienste für den Eigenbedarf bereit.

Primäre Ziele sind:

  • Lernen neuer Technologien

  • Betrieb produktiver Dienste für den privaten Gebrauch

  • Vollständige Verwaltung über GitOps

  • Automatisierter Betrieb mit minimalem Administrationsaufwand

  • Nutzung von Kubernetes als zentrale Laufzeitplattform

Zu den bereitgestellten Diensten gehören unter anderem:

  • E-Mail

  • Passwortverwaltung

  • Kalender und Kontakte

  • Dateifreigaben

  • Medienstreaming

  • Dokumentenmanagement

Die Plattform kombiniert lokale Infrastruktur mit externen Cloud-Ressourcen.

topology

Architekturprinzipien

Die Plattform orientiert sich an folgenden Grundsätzen:

  • GitOps First

  • Declarative Infrastructure

  • Immutable Infrastructure

  • IPv6 First

  • Cloud Native

  • Self Hosting vor Managed Services

  • Automatisierung

  • Offsite Backups für kritische Daten

Plattformbestandteile

Die Plattform besteht aus mehreren technischen Schichten.

Anwendungen
        |
        v
Plattformdienste
        |
        v
Kubernetes
        |
        v
Talos Linux
        |
        v
Infrastruktur

Standorte

Die Plattform verteilt sich über mehrere Standorte.

Standort

Rolle

Home

Primäre Plattform für interne Dienste, Stateful Workloads und Datenspeicherung

Netcup

Öffentliche Dienste und externer Zugangspunkt

Hetzner

DNS und externe Speicherressourcen

Kubernetes

Kubernetes bildet die zentrale Laufzeitplattform.

Verwendete Kernkomponenten:

  • Talos Linux

  • Kubernetes

  • FluxCD

  • Cilium

  • Gateway API

  • Piraeus Datastore

  • Garage

Mehrere Cluster werden unabhängig voneinander betrieben und erfüllen unterschiedliche Aufgaben.

Unterstützende Systeme

Nicht alle Plattformkomponenten laufen innerhalb von Kubernetes.

Beispiele:

  • Pangolin

  • Pi-hole

  • NAS-Systeme

Diese Systeme ergänzen die Kubernetes-Plattform um Netzwerk-, Speicher- und Zugriffsfunktionen.

Zielbild

Die Plattform soll:

  • Reproduzierbar betrieben werden können

  • Vollständig deklarativ verwaltet werden

  • Mehrere Standorte integrieren

  • Kubernetes und Nicht-Kubernetes-Systeme verbinden

  • Unabhängig von einzelnen Providern bleiben

  • Mit möglichst geringem Betriebsaufwand betrieben werden können