TDM Consult GmbHBusiness Flies
Zum Inhalt springen

Kubernetes ​

Dieses Kapitel skizziert den geplanten Aufbau von Business Flies im Kubernetes-Cluster. Die Struktur orientiert sich am Deployment der ETE-Anwendung: gemeinsame Kustomize-Basisressourcen werden durch umgebungsspezifische Overlays für Integration und Produktion ergänzt.

Die beschriebenen Namen und Parameter sind ein erster Planungsstand. Sie werden mit der tatsächlichen Implementierung abgeglichen und anschließend verbindlich dokumentiert.

Geplante Workloads ​

WorkloadAufgabeBetriebsart
bflies-frontendAuslieferung der Vue-3-AnwendungZustandsloses Deployment
bflies-backendSpring-Boot-API und FachlogikZustandsloses Deployment
bflies-mysqlRelationale DatenbankZustandsbehaftetes Deployment mit Persistent Volume
bflies-flywayKontrollierte DatenbankmigrationJob pro Release beziehungsweise Migration

Keycloak wird als vorhandener zentraler Identitätsdienst verwendet und gehört nicht zum Business-Flies-Deployment.

Umgebungen ​

Analog zu ETE werden genau zwei getrennte Zielumgebungen aufgebaut:

UmgebungNamespaceZweck
INTbflies-intIntegrationstests, technische Prüfung und fachliche Abnahme
PRODbflies-prodProduktionsbetrieb

Die Administration erfolgt über Rancher im Projekt bflies.

INT und PROD erhalten jeweils einen eigenen Namespace, eigene Konfigurationen und Secrets, eigene Workloads, eigene Ingress-Ziele sowie einen getrennten persistenten Datenbankspeicher. Ressourcen oder Daten werden nicht zwischen den Umgebungen geteilt.

Die Kustomize-Basis enthält die gemeinsamen Objekte. Overlays setzen insbesondere Namespace, Namenspräfix, Labels, Images, Hosts, Konfigurationsdateien und Ressourcenlimits.

text
src/deployment/k8s/
|-- base/
|   |-- deployments
|   |-- services
|   |-- ingresses
|   `-- kustomization.yaml
`-- overlays/
    |-- int/
    |   |-- config
    |   |-- resource patches
    |   `-- kustomization.yaml
    `-- prod/
        |-- config
        |-- resource patches
        `-- kustomization.yaml

Erwartete Kubernetes-Objekte ​

ObjektartErwartete Instanzen
NamespaceJe einer für INT und PROD
ConfigMapFrontend-, Backend- und MySQL-Konfiguration
SecretBackend-, Datenbank- und gegebenenfalls Registry-Zugangsdaten
DeploymentFrontend, Backend und MySQL
ServiceFrontend, Backend und MySQL
IngressFrontend und Backend
PersistentVolumeDauerhafter Datenbankspeicher je Umgebung
PersistentVolumeClaimBindung des Datenbankspeichers im Namespace
JobFlyway-Migration vor einem Backend-Rollout
NetworkPolicyBegrenzung der erlaubten Netzwerkpfade

Deployment ​

Rancher ​

  • Erstellung eines neuen Projektes bflies in der Rancher UI.
  • Erstellung zweier Namespaces bflies-int und bflies-prod im neuen Projekt.

Persistent Volume ​

Datenbank ​

  • Deployment des Secret
  • Deployment der ConfigMap
  • Ausrollen des Deployment
  • Das Service Objekt für den Zugriff im Cluster einrichten
  • Anschließend Dump aus PROD zurücksichern

Unterkapitel ​

Noch zu entscheiden ​

  • konkrete Cluster- und Storage-Klasse beziehungsweise iSCSI-Zuordnung,
  • produktive Hostnamen und Kontextpfade,
  • Datenbankimage und Datenbankversion,
  • Secret-Verwaltung im Cluster,
  • Ausführungsmodell und Fehlerbehandlung des Flyway-Jobs,
  • initiale CPU-/Memory-Werte und Skalierungsgrenzen,
  • Notwendigkeit eines externen Datenbankzugangs per NodePort.