Mastering Kubernetes 2023, Juli 2023, Mario-Leander Reimer
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/
17. Sustainability Engineering zur Optimierung des CO2
Footprint von Kubernetes Clustern
17
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?
19. 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!
19
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
21. Cluster Rightsizing mit Cluster-Autoscaler und Karpenter
21
QAware
Node 1 Node 2 Node 3
X
Node 4
22. Workload Rightsizing mit VPA und Goldilocks
22
QAware
https://github.com/FairwindsOps/goldilocks
apiVersion: "autoscaling.k8s.io/v1"
kind: VerticalPodAutoscaler
metadata:
name: hamster-vpa
spec:
targetRef:
apiVersion: "apps/v1"
kind: Deployment
name: hamster
updatePolicy:
# updateMode: "Auto"
updateMode: "Off"
resourcePolicy
:
containerPolicies
:
- containerName: '*'
minAllowed:
cpu: 100m
memory: 50Mi
maxAllowed:
cpu: 1
memory: 500Mi
controlledResources
: ["cpu", "memory"]
Festlegen von Anforderungen
und Limits für CPU und RAM
realistische
Performance-Tests
Auswertung des gemessenen
Ressourcenverbrauchs
https://github.com/kubernetes/autoscaler/tree/master/vertical-pod-autoscaler
23. kube-green
An operator to reduce CO2 footprint of your clusters
23
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
24. Carbon-aware Scheduling 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
24
QAware
25. 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.
25
QAware
https://www.sustainable-computing.io