Skip to content

[Epic] Kubernetes als Deployment Plattform

Das Deployment der Services soll von den Hetzner VMs auf Kubernetes migriert werden. Wir erhoffen uns dadurch, dass wir die Services flexibler deployen können (z. B. Branch-Deployment). Die Tools und Eigenentwicklungen für die Plattform sollten so ausgewählt und entwickelt werden, dass sie mit Hinsicht auf die Cloudausschreibung möglichst wenig Änderungen für die Weiterverwendung benötigen. Bis zur Cloudausschreibung soll ein Kubernetes Cluster von der FjD angeschafft werden. Auf dem Cluster sollen von der FjD keine weiteren Services installiert werden.

Folgende Punkte sollten wir für die Plattform betrachten:

Evaluierung des Deploymentverfahrens

Anforderung an das Deployment:

  • Deployment über CI/CD Pipeline
  • Branch Deployments sind möglich

Folgende Tools könnte man dafür verwenden:

  • Flux
  • ArgoCD
  • Terraform

Evaluierung und Deployen einer Backuplösung

Anforderungen an die Backuplösung:

  • K8s State wird gebackuped
  • K8s persistent Volumes werden gebackuped
  • Datenbank Backups für Datenbank PODs sind möglich
  • Backups müssen extern abgelegt werden

Evaluierung und Deployen einer Monitoring, Alerting und Logginglösung

Anforderung an das Monitoring:

  • Monitoring ist über eine Weboberfläch erreichbar
  • Authentisierung ist über OIDC Anbindung möglich
  • K8s Mechanismen werden unterstützt (Metrics)

Anforderung an das Logging:

  • Logging kann zentral gesammelt werden

Anforderungen an das Alerting:

  • Alerting kann automatisch Tickets in einem Ticketsystem erstellen
  • Alerting kann Nachrichten an Teams, E-Mail verschicken

Evaluierung einer Secret Management Lösung

Anforderung an das Secret Management

  • Secrets sind verschlüsselt im Git eingecheckt
  • Übertragung an K8s erfolgt verschlüsselt
  • Werden zur Laufzeit entschlüsselt
  • Kann eine K8s interne oder externe Lösung sein (Vault)

Evaluierung einer Usermanagement Lösung für Zugriff auf K8s

Anforderungen an das Usermanagement

  • Anbindung per OIDC
  • Dev Zugriff soll eingeschränkt werden können

Evaluierung eines Ingress-Controllers

Anforderung an den Ingress-Controller

  • SSL Zertifikate sollen automatisch für jede externe URL generiert werden
  • DNS Einträge für neue externe Namen sollen automatisch eingerichtet werden
  • HTTP Requests sollen auf HTTPS redirected werden

Network Polices für ingress und egress sollen erarbeitet und eingerichtet werden

Edited by Manuel Menz