Skip to content
🟡In Arbeit58%
Vollständigkeit:
70%
Korrektheit:
75%
⏳ Noch nicht geprüft

VM-Sizing und Host-Ressourcen für CIVITAS/CORE ​

Zielplattform ​

CIVITAS/CORE wird auf zwei Servern betrieben. Hinter HAProxy läuft die Plattform auf udp.data-dna.eu, Standalone auf udp.projekte-koenig.eu. Die Betriebsarten sind in Netzwerk-Topologie beschrieben.

Verfügbare Hardware ​

Komponenteudp.data-dna.euudp.projekte-koenig.eu (Hetzner AX41-1-LTD)
CPUAMD Ryzen 7 H 255, 8 Kerne / 16 ThreadsAMD Ryzen 5 3600, 6 Kerne / 12 Threads
RAM physisch64 GiB64 GB laut Anbieter, 62 GiB sichtbar
Storage raw2 × 476 GiB NVMe2 × 476,9 GiB NVMe als RAID1
Storage-Pool für die VMzfspool, rpool (~455 GiB verfügbar)lvmthin, 390 GiB
Swapkeiner konfiguriert6 GiB als logisches Volume

Systemanforderungen CIVITAS/CORE ​

V2 (aktuell) ​

Quelle: https://docs.core.civitasconnect.digital/docs_v2/next/Deployment/prerequisites/

AnforderungMinimumEmpfohlen
Kubernetes≥ 1.32, x86_64—
vCPU48+
RAM16 GiB32+ GiB
Storage ClassRWO (ReadWriteOnce)—
Ingress Controllernginx oder traefik—
cert-managermit Cluster Issuer—
DNSidm.<domain>, portal.<domain>—
SMTPzwingend für Keycloak—

V1.5 (Sizing-Referenz für Einzel-Node-Betrieb) ​

Quelle: https://docs.core.civitasconnect.digital/docs/1.5.0/Deployment/Deployment-Requirements/

SzenariovCPURAMStorage
Sandbox (1 Node)8–1032 GiB600 GiB SSD
Minimum (3 Nodes)8–10 je Node32 GiB je Node300 GiB je Node
Standard (3 Nodes)12 je Node64 GiB je Node300 GiB je Node

Für den vorliegenden Einzel-Node-Betrieb gilt das Sandbox-Szenario als maßgebliche Referenz.

Ressourcenzuordnung nach Komponente ​

Die folgenden Angaben orientieren sich an den tatsächlichen Laufzeitanforderungen der CIVITAS/CORE-Komponenten laut Deployment-Doku:

KomponenteRessourcenbedarfBegründung
Keycloak (idm)2–4 GiB RAM, 1–2 vCPUIdentity-Management, SMTP-Anbindung, Startup-intensiv
CIVITAS Portal2–4 GiB RAM, 1–2 vCPUFrontend-Serving, Ingress-Endpunkt
Kubernetes Control Plane (k3s/k0s)1–2 GiB RAM, 1 vCPUOverhead für Single-Node-Cluster
Datenbank-Backend (PostgreSQL o.ä.)4–8 GiB RAM, 2 vCPUPersistenz, je nach Datenlast
Weiterer Plattform-Overhead4–8 GiB RAM, 2 vCPUOperator, Cert-Manager, Ingress, Monitoring
Reserve / Burst4 GiB RAM, 2 vCPUPeaks, Updates, Neustarts
Summe VM~20–30 GiB RAM, 10–12 vCPUArbeitswert für initiales Sizing

Abgleich: Anforderungen vs. verfügbare Ressourcen ​

RessourceCIVITAS/CORE Sandbox-MinimumVerfügbar auf udp.data-dna.euVerfügbar für VMBewertung
vCPU8–1016 Threads12 (4 Reserve Host)ausreichend
RAM32 GiB56 GiB verfügbar40 GiB (16 GiB Reserve)ausreichend
Storage600 GiB455 GiB frei in rpool300 GiB ZFS-Volumeknapp – Begründung unten
Swapempfohlennicht konfiguriert—Risiko

Für udp.projekte-koenig.eu:

RessourceCIVITAS/CORE Sandbox-MinimumVerfügbar auf udp.projekte-koenig.euVerfügbar für VMBewertung
vCPU8-1012 Threads10 (2 Reserve Host)ausreichend
RAM32 GiB62 GiB sichtbar40 GiB (22 GiB Reserve)ausreichend
Storage600 GiB390 GiB Thin-Pool300 GiB (lvmthin)unter Empfehlung
Swapempfohlen6 GiB auf dem Hostvorhandenerfüllt

Empfohlenes VM-Sizing (erste Ausbaustufe) ​

Parameterudp.data-dna.euudp.projekte-koenig.euBegründung
vCPU121012 von 16 Threads bzw. 10 von 12 Threads; Reserve für den Host
RAM40 GiB40 GiBrund 70 % des verfügbaren RAM; Reserve für den Host
Disk300 GiB (ZFS thin-provisioned)300 GiB (LVM-thin, raw)deckt Sandbox-Anforderungen; liegt unter der Empfehlung von 600 GiB
Gastbetriebssystemoffen (→ Folgespezifikation Kubernetes-Laufzeit)offenDebian 12 oder Ubuntu 24.04 empfohlen
Netzwerkinternes VLAN im SOHO-Clustervmbr1 als isoliertes Netz mit NAT durch den Knoten (siehe Standalone)Hinter HAProxy nicht öffentlich, Standalone öffentlich erreichbar

Die VM-Parameter (CPU, RAM, Disk, Bridge, Storage) sind per .env überschreibbar (VM_CORES, VM_BRIDGE, PROXMOX_STORAGE, …). PROXMOX_STORAGE unterstützt zfspool und lvmthin. Andere Typen (auch Verzeichnis-/NFS-Storage) werden vor jeder Änderung abgelehnt. Details in umgebungsvariablen-env-datei.md.

VM_CORES zählt vCPUs (Threads), nicht physische Kerne. Auf einem Host mit SMT (6 Kerne / 12 Threads) wird auf udp.projekte-koenig.eu VM_CORES=10 gesetzt, um zwei Threads für den Host zu belassen.

Risiken und Einschränkungen ​

udp.data-dna.eu ​

  • Kein Swap: Kubernetes empfiehlt zwar deaktivierten Swap, der Proxmox-Host selbst hat keinen Swap konfiguriert. Bei RAM-Druck des Hosts gibt es keinen Puffer - Risiko bei parallelen VMs.
  • Storage knapp: 300 GiB decken das Sandbox-Minimum, liegen aber unter der Empfehlung von 600 GiB. Persistente Volumes, Snapshots und Log-Wachstum können schnell zu Engpässen führen.
  • ZFS-Mirror (rpool): Beide NVMe-Platten sind als ZFS-Mirror konfiguriert. Einzelplatten-Ausfall ist tolerierbar.
  • Single-Node, kein HA: Jeder Ausfall des Knotens ist gleichzeitig Ausfall der gesamten Plattform. Kein automatisches Failover möglich. Knoten ist in Backup über Proxmox eingebunden und wird täglich gesichert.

udp.projekte-koenig.eu ​

  • Es ist ein einzelner Server ohne Failover.
  • Die beiden NVMe sind per mdadm als RAID1 gespiegelt. Ein Plattenausfall ist damit abgedeckt.
  • Der Swap liegt auf dem Host.
  • Das Profil setzt PBS_STORAGE leer, die Backup-Prüfung wird übersprungen.

Offene Punkte (→ Folgespezifikationen) ​

  • Gastbetriebssystem und Kubernetes-Distribution (→ kubernetes-laufzeit.md)
  • DNS-Setup für idm.<domain> und portal.<domain> (→ netzwerk-dns-tls.md)
  • Backup-Strategie für VM und persistente Volumes (→ persistenz-storage-backup.md)
  • Swap-Entscheidung auf Proxmox-Host-Ebene