Kapazitätsplanung¶
Kapazitätsplanung stellt sicher, dass die ayedo Software Delivery Plattform ausreichend Ressourcen für laufende Workloads bereitstellt und gleichzeitig Resilienz gegen Ausfälle und Kapazität für Rolling Updates gewährleistet.
Relevante Vorschriften¶
GDPR Art. 32¶
GDPR Artikel 32 fordert:
Die Fähigkeit, die Vertraulichkeit, Integrität, Verfügbarkeit und Belastbarkeit der Systeme und Dienste im Zusammenhang mit der Verarbeitung auf Dauer sicherzustellen. [Hervorhebung hinzugefügt]
BSI IT-Grundschutz¶
APP.4.4.A18: Überwachung der Cluster-Ressourcen
Die Ressourcen des Clusters SOLLTEN kontinuierlich überwacht werden. Die Kapazitätsplanung SOLLTE sowohl für den Betrieb der Steuerungsebene als auch für die in den Pods betriebenen Anwendungen durchgeführt werden.
NIS2 Art. 21(2)¶
Anforderung an "Resilience of critical infrastructure" und "Business continuity".
Mapping zu Norm-Controls¶
ISO 27001 Annex A 8.6 Kapazitätsplanung¶
Die Nutzung von Ressourcen MUSS überwacht und abgestimmt werden, und Prognosen über den künftigen Kapazitätsbedarf MÜSSEN erstellt werden, um die erforderliche Systemleistung zur Erfüllung der Geschäftsziele sicherzustellen.
Implementierung in der ayedo SDP:
- ✅ Kontinuierliche Überwachung von CPU, Memory, Storage
- ✅ Automatisches Alerting bei Kapazitätsengpässen
- ✅ Grafana-Dashboards für Capacity Planning
- ✅ VictoriaMetrics für langfristige Trend-Analyse
Kubernetes Status Dashboard¶
Die ayedo SDP stellt ein Kubernetes Status Dashboard in Grafana bereit, das einen schnellen Überblick über den Cluster-Status bietet:
Dashboard-Inhalte:
- Unhealthy Pods: Pods, die nicht im Running-Status sind
- Unhealthy Nodes: Nodes mit Problemen
- Resource Requests vs. Allocatable: Verhältnis von angeforderten zu verfügbaren Ressourcen
- Pods ohne Resource Requests: Identifikation von Best-Practice-Verletzungen
- CPU & Memory Usage: Aktuelle Auslastung pro Node und Node Group
- Storage Usage: PersistentVolumes und Storage-Backend-Auslastung
Zugriff auf das Dashboard:
Das Dashboard ist über Grafana verfügbar und wird automatisch für alle Cluster der ayedo SDP bereitgestellt.
Resilienz-Modelle¶
Die ayedo SDP unterstützt zwei Resilienz-Modelle:
Node-Resilient¶
- Cluster ist ausgelegt, um einen Node-Ausfall pro Node Group zu verkraften
- Geeignet für On-Premises-Deployments ohne Multi-AZ
- Mindestens 3 Worker Nodes empfohlen
Zone-Resilient¶
- Cluster ist über drei Availability Zones verteilt
- Kann einen kompletten Zone-Ausfall verkraften
- Empfohlen für Public Cloud-Deployments (Loopback)
- Alle HA-Komponenten (Control Plane, Storage, etc.) sind über Zones verteilt
Upscaling¶
Wann skalieren?¶
Die ayedo SDP triggert automatisch Alerts in folgenden Situationen:
P1 Alert (Sofortiges Handeln erforderlich)¶
- CPU-Auslastung: Durchschnitt über 1 Stunde > 95%
- Memory-Auslastung: Durchschnitt über 1 Stunde > 85%
Aktion: Workload umverteilen oder Node Group upscalen
P2 Alert (Handlung innerhalb eines Arbeitstages)¶
- CPU oder Memory: Durchschnitt über 24 Stunden > 75%
Aktion: Kapazitätsplanung und proaktives Upscaling
Überwachte Metriken¶
Primäre Metriken:
- CPU Usage: Tatsächliche CPU-Nutzung der Nodes
- Memory Usage: Tatsächliche Memory-Nutzung der Nodes
Sekundäre Metriken (für weitere Analyse):
- CPU Requests zu CPU Allocatable Ratio
- Memory Requests zu Memory Allocatable Ratio
- Load Average
- Host Disk Usage
- PersistentVolumeClaim Usage
- Storage Backend Usage (Longhorn, Ceph)
Wie upscalen?¶
Option 1: Node hinzufügen
Fügen Sie einen neuen Node des gleichen Typs hinzu, wie die anderen Nodes in der Node Group.
Option 2: Konsolidierung zu größeren Nodes
Bei 6+ Nodes: Erwägen Sie Konsolidierung auf 3 Nodes mit doppelter Größe:
- Vorteile:
- Reduzierte Infrastruktur-Kosten
- Geringerer administrativer Aufwand
-
Weniger Risk von Provider-Limits (z.B. max. 5 VMs per Anti-Affinity-Group)
-
Wichtig: Koordination mit Anwendungsentwickler bzgl. Scheduling Constraints
Downscaling¶
Wann downscalen?¶
Kapazität sollte regelmäßig überprüft werden, z.B. nach Maintenance Windows.
Vorsicht beim Downscaling
Downscaling kann Application Uptime gefährden. Seien Sie konservativ!
Vor dem Downscaling prüfen:
- Kapazitätstrends der letzten 3-6 Monate analysieren
- Saisonalität berücksichtigen (Wochenenden, Feiertage, Ferienzeiten)
- Mit Anwendungsentwickler absprechen:
- Ist die reduzierte Nutzung ein echter Trend?
- Sind neue Releases/Apps geplant, die mehr Ressourcen benötigen?
Wie downscalen?¶
- Node drainieren und cordon:
kubectl drain <node> --ignore-daemonsets - Node aus Cluster entfernen
- Infrastruktur dekommissionieren
Wichtig: Downscaling sollte nur periodisch erfolgen, während Upscaling sofort bei Bedarf durchgeführt werden sollte, um Oszillationen zu vermeiden.
Node Groups¶
Node Groups repräsentieren logische Gruppierungen von Nodes (z.B. worker, control-plane).
Labeling für Monitoring:
Diese Labels sind erforderlich, damit Monitoring und Alerting korrekt funktionieren.
Standard Node Groups:
control-plane: Kubernetes Control Plane Nodesworker: Standard Worker Nodesworker-gpu: Worker Nodes mit GPU (optional)storage: Dedizierte Storage Nodes (optional)
Grafana Dashboards¶
Die ayedo SDP stellt mehrere Grafana-Dashboards bereit:
Kubernetes Status Dashboard¶
- Cluster-Übersicht
- Node Health
- Pod Health
- Resource Allocation
Node Capacity Dashboard¶
- CPU/Memory Usage pro Node
- CPU/Memory Usage pro Node Group
- Trend-Analyse über 7/30 Tage
- Capacity Planning Projections
Storage Capacity Dashboard¶
- PersistentVolume Usage
- Storage Backend Usage (Longhorn/Ceph)
- Storage Performance Metrics
Alerting¶
Automatische Benachrichtigungen via VictoriaMetrics Alerts:
Critical Alerts (P1)¶
NodeCPUUsageHigh: CPU > 95% über 1hNodeMemoryUsageHigh: Memory > 85% über 1hNodeGroupCPUUsageHigh: Node Group CPU > 95% über 1hNodeGroupMemoryUsageHigh: Node Group Memory > 85% über 1h
Warning Alerts (P2)¶
NodeGroupCPUUsageMedium: Node Group CPU > 75% über 24hNodeGroupMemoryUsageMedium: Node Group Memory > 75% über 24hPersistentVolumeUsageHigh: PV > 85%
Best Practices¶
Für Plattform Administratoren¶
- Proaktiv skalieren: Upscaling bei P2 Alerts, nicht erst bei P1
- Monitoring: Täglich Grafana-Dashboards überprüfen
- Kapazitätsplanung: Monatliche Review-Meetings
- Dokumentation: Upscaling/Downscaling-Entscheidungen dokumentieren
Für Anwendungsentwickler¶
- Resource Requests definieren: Alle Pods müssen CPU/Memory Requests haben
- Resource Limits setzen: Limits verhindern Resource Exhaustion
- HPA nutzen: Horizontal Pod Autoscaler für variable Workloads
- Rightsizing: Periodisch Requests/Limits anpassen
Compliance-Checkliste¶
- ✅ Kontinuierliche Ressourcen-Überwachung via VictoriaMetrics
- ✅ Grafana-Dashboards für Kapazitätsplanung
- ✅ Automatisches Alerting bei Kapazitätsengpässen
- ✅ Dokumentierte Prozesse für Up-/Downscaling
- ✅ Regelmäßige Kapazitätsplanung (monatlich)
- ✅ Resilienz gegen Node-/Zone-Ausfälle
- ✅ Node Groups mit korrekten Labels
- ✅ Resource Requests Enforcement via Kyverno Policies
Weitere Informationen¶
Support¶
Bei Fragen zu Kapazitätsplanung:
- E-Mail: support@ayedo.de
- Website: ayedo.de