Arbeitsbeispiel 1
Kubernetes auf AWS: halb so viele Nodes, Neustarts nur im vereinbarten Zeitfenster
Ausgangslage
Mehrere EKS-Cluster in mehreren AWS-Konten waren organisch gewachsen: feste Node-Gruppen für die Spitzenlast, überall On-Demand-Instanzen, Batch-Jobs und langlaufende Dienste auf denselben Nodes. Ein Cluster forderte rund 60 % seiner CPU an und nutzte rund 10 %. Jede automatische Konsolidierung der Nodes startete Dienste zu beliebigen Zeiten neu.
Vorgehen
Umstellung der Cluster auf Karpenter mit Konsolidierung unterausgelasteter Nodes, eigene Node-Pools für Batch-Jobs mit Schutz vor Verdrängung per Policy, Spot-Pools, denen Dienstverantwortliche per Toleration beitreten. Der erste Konsolidierungslauf erzeugte eine Schleife aus Node-Neuerstellungen; nach der Ursachenanalyse wurden Konsolidierung und Node-Rotation auf ein vereinbartes Zeitfenster pro Tag begrenzt, mit Alarmregeln auf das Node-Alter. Jede Änderung über Terraform/Terragrunt und geprüfte Merge Requests, Cluster für Cluster ausgerollt und nach jedem Schritt verifiziert.
Ergebnis
Mehr als die Hälfte weniger Nodes, Node-Kosten entsprechend gesenkt. Dienste starten nur noch im Zeitfenster neu; Vorfälle durch Konsolidierung sind verschwunden.