SAA 2023 | Software Architecture Alliance, September 2023, München, Mario-Leander Reimer (@LeanderReimer, CTO bei QAware)
== Dokument bitte herunterladen, falls unscharf! Please download slides if blurred! ==
Die Cloud hat bereits heute einen größeren CO2-Fußabdruck als die Luftfahrtindustrie, mit steigender Digitalisierung und Cloudifizierung wird sich dieser Trend fortsetzen, wenn wir nichts dagegen unternehmen. Viele Kubernetes-basierte Installationen sind gemessen am eigentlich benötigten Ressourcen Bedarf stark überdimensioniert und tragen so unnötig zur globalen Erwärmung bei. Wie sieht die Energiebilanz Ihres Clusters und Workloads aus?
In diesem Vortrag zeigen wir Ansätze und Technologien, die dabei helfen K8s-Cluster grün(er) zu machen. Zunächst braucht es Transparenz: Wie sieht die Energiebilanz des Clusters und seiner Workloads aus? Erst danach lassen sich diese gezielt auf ihre Energiesparsamkeit hin optimieren. Und das ist gar nicht so schwer, also packen wir es an!
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
1. qaware.de
Aus blau wird grün!
Ansätze und Technologien für nachhaltige
Kubernetes Cluster
Mario-Leander Reimer
mario-leander.reimer@qaware.de
@LeanderReimer https://cisweb.lancaster.ac.uk/
11. 11
QAware
Nachhaltige Software
Konzeption, Implementierung und
Betrieb von Software mit
begrenztem Energieverbrauch und
minimaler Belastung der Umwelt
https://www.greenmanifesto.de/
https://www.meetup.com/de-DE/green-software-development-manifesto/
15. Sustainability Engineering zur Optimierung des CO2
Footprint von Kubernetes Clustern
15
QAware
Monitoring
Wie hoch ist
der CO2
Footprint der
Ressourcen?
Messen,
messen,
messen.
Elasticity
Überdimensionierte
oder niedrige
Auslastung der
Ressourcen?
Infrastruktur und
Workloads sollten
proportional zum
Bedarf sein.
Architecture
Wo läuft der
Cluster? Auf
welcher
Hardware?
Sustainability
beim Aufbau der
Infrastruktur
berücksichtigen.
Waste
Abschalten oder
Abbau der
Ressourcen.
Nicht benötigte
oder vergessene
Umgebungen oder
Workloads?
18. Geschäftsanforderungen und Nachhaltigkeitsziele müssen in
Einklang gebracht werden.
Die Auswahl der Region für den Cluster und die Workloads hat erhebliche Auswirkungen auf deren KPIs,
einschließlich Leistung, Kosten und CO2-Fußabdruck.
■ Sicherstellen, dass die Region die erforderlichen gesetzlichen Regulatorien erfüllt (z.B. GDPR)
■ Sicherstellen, dass die Region die benötigten Services und Features unterstützt.
– Wie viele AZs gibt es in der Region?
– Welche Hardware Klassen unterstützt?
– Datenbanken? Storage? …
■ Kostenberechnung für den Cluster und Workloads für die gewählte Region.
■ Netzwerklatenz zwischen Ihren Endbenutzer Standorten und der Region testen!
18
QAware
https://docs.aws.amazon.com/wellarchitected/latest/sustainability-pillar/sus_sus_region_a2.html
AWS Graviton 2 ist bis zu 65% sparsamer
beim Energieverbrauch
AWS Graviton 2 ist bis zu 15% sparsamer
bei den Kosten
19. Cluster Rightsizing mit Cluster-Autoscaler und Karpenter
19
QAware
Node 1 Node 2 Node 3
X
Node 4
20. Sustainable Computing Projects
■ Kepler (Kubernetes-based Efficient Power Level Exporter) uses eBPF to probe energy
related system stats and exports as Prometheus metrics.
■ PEAKS (Power Efficiency Aware Kubernetes Scheduler) uses metrics exported by
Kepler to help Kubernetes schedule to improve energy efficiency by placing Pods on
optimal nodes.
■ CLEVER (Container Level Energy-efficient VPA Recommender) uses metrics exported
by Kepler to recommend Vertical Pod Autoscaler the resource profiles to improve
energy efficiency by running workloads.
20
QAware
https://www.sustainable-computing.io
25. Carbon-aware Scaling mit KEDA
■ https://keda.sh
■ KEDA ist ein Kubernetes-basierter ereignisgesteuerter
und zweck-orientierter Autoscaler.
■ Unterstützt 50+ Scaler Out-of-the-box, e.g. Cron,
RabbitMQ, …
■ Carbon Aware Scheduling
- Kubernetes Carbon Intensity Exporter
- Carbon Aware KEDA Operator
25
QAware
26. kube-green
An operator to reduce CO2 footprint of your clusters
26
QAware
apiVersion: kube-green.com/v1alpha1
kind: SleepInfo
metadata:
name: non-working-hours
spec:
weekdays: "1-5"
sleepAt: "18:00"
wakeUpAt: "08:00"
timeZone: "Europe/Rome"
suspendCronJobs: true
excludeRef:
- apiVersion: "apps/v1"
kind: Deployment
name: no-sleep-deployment
- matchLabels:
kube-green.dev/exclude: "true" https://kube-green.dev/docs/FAQ/#how-many-co2-is-produced-by-pod
27. Carbon aware Spatial Shifting with Karmada
27
QAware https://rossfairbanks.com/2023/07/12/carbon-aware-spatial-shifting-with-karmada/
karmada control plane
Cluster A
API Server
Cluster B
API Server
Agent
karmada API server
etcd
karmada
scheduler
karmada API server
Cluster
Controller
Policy
Controller
Binding
Controller
Execution
Controller
W1 W1 W1 W1
28. Carbon aware Spatial Shifting with Karmada
28
QAware https://rossfairbanks.com/2023/07/12/carbon-aware-spatial-shifting-with-karmada/
karmada control plane
Cluster A
API Server
Cluster B
API Server
Agent
karmada API server
etcd
karmada
scheduler
karmada API server
Cluster
Controller
Policy
Controller
Binding
Controller
Execution
Controller
W1 W1 W1 W1