Background Image
StartseiteJournalkube-green: Nachhaltige Kubernetes-Orchestrierung für geringeren CO₂-Fußabdruck

kube-green: Nachhaltige Kubernetes-Orchestrierung für geringeren CO₂-Fußabdruck

Nachhaltigkeit ist ein zentrales Thema in der Cloud-Welt. Mit kube-green können Kubernetes-Workloads basierend auf Nutzungszeiten automatisch heruntergefahren werden, um Energie und CO₂-Emissionen zu reduzieren. In diesem Artikel erfährst du, wie kube-green funktioniert, welche Vorteile es bietet und wie es in Kubernetes integriert wird.

Green IT / Nachhaltigkeit
3 Min
21. Dez. 2024

Warum ist Nachhaltigkeit in Kubernetes wichtig?

Cloud-native Anwendungen sind oft rund um die Uhr in Betrieb, auch wenn sie nicht benötigt werden. Besonders in Entwicklungs- und Staging-Umgebungen laufen viele Ressourcen ungenutzt weiter – ein erheblicher Energieverlust.

Die Cloud Native Computing Foundation (CNCF) hat das Thema Umweltschutz und Nachhaltigkeit auf der KubeCon + CloudNativeCon EU 2023 in den Fokus gerückt. Dort wurden verschiedene Projekte vorgestellt, die den CO₂-Ausstoß von Kubernetes-Clustern reduzieren sollen.

kube-green ist eines dieser Projekte. Es ermöglicht das automatische Herunterfahren nicht genutzter Workloads, um den Energieverbrauch zu senken und nachhaltiger mit Cloud-Ressourcen umzugehen.

Nachhaltige Ressourcenverwaltung mit kube-green

kube-green ist ein Kubernetes-Operator, der dabei hilft, nicht genutzte Ressourcen automatisch herunterzufahren. Dazu gehören Pods, Deployments und CronJobs, die zu bestimmten Zeiten oder basierend auf Regeln gestoppt und später wieder aktiviert werden können.

Automatische Skalierung von Deployments und CronJobs

Aktuell unterstützt kube-green folgende Kubernetes-Ressourcen:

  • Deployments: Replikas werden auf 0 gesetzt, wenn der Workload nicht benötigt wird.
  • CronJobs: Sie werden vorübergehend deaktiviert, um unnötige CPU- und Speicherlast zu vermeiden.

Dadurch lassen sich erhebliche Ressourcen einsparen, insbesondere in Entwicklungsumgebungen.

Zeitgesteuertes Abschalten und Reaktivieren von Pods

Mit kube-green lassen sich Schlaf- und Aufwachzeiten für Workloads definieren. Das erfolgt über eine benutzerdefinierte Kubernetes-Ressource namens SleepInfo.

Beispiel für eine SleepInfo-Konfiguration:

apiVersion: kube-green.com/v1alpha1
kind: SleepInfo
metadata:
  name: sleep-config
  namespace: dev-environment
spec:
  weekdays: [1, 2, 3, 4, 5]  # Montag bis Freitag
  sleepAt: "20:00"  # Workloads um 20:00 Uhr herunterfahren
  wakeUpAt: "08:00"  # Workloads um 08:00 Uhr starten
  timezone: "Europe/Berlin"
  excludeRef:
    - name: "critical-service"
      kind: Deployment

Emissionsreduktion durch optimierte Ressourcennutzung

Durch das gezielte Abschalten von Ressourcen lassen sich CO₂-Emissionen reduzieren. Laut Berechnungen kann ein einzelner Kubernetes-Knoten pro Jahr 160 kg CO₂ erzeugen. kube-green kann diesen Wert um bis zu 30 % senken, je nach Clustergröße und Nutzungsmuster.

Installation und erste Schritte mit kube-green

Um kube-green in einem Kubernetes-Cluster zu installieren, sind folgende Schritte nötig:

1. Cert-Manager installieren Bevor kube-green genutzt werden kann, muss der Cert-Manager installiert werden:

kubectl apply -f https://github.com/cert-manager/cert-manager/releases/latest/download/cert-manager.yaml

2. kube-green installieren

kubectl apply -f https://github.com/kube-green/kube-green/releases/latest/download/kube-green.yaml

3. Funktion prüfen

kubectl get pods -n kube-green

Nach der erfolgreichen Installation können SleepInfo-Ressourcen erstellt werden.

Prometheus-Metriken und CO₂-Einsparungen messen

kube-green stellt Metriken für Prometheus bereit. Damit lässt sich verfolgen, welche Einsparungen durch das Tool erzielt wurden.

Beispiel einer Metrik für aktivierte SleepInfo-Ressourcen:

kube_green_sleepinfo_active{namespace="dev-environment"} 1

Optimale Konfiguration für maximale Effizienz

  • Entwicklungsumgebungen: Schlafzeiten außerhalb der Arbeitszeiten definieren.
  • Staging-Umgebungen: Nachtabschaltung aktivieren, falls keine Tests laufen.
  • Produktion: Nur nicht-kritische Services mit kube-green verwalten.

Technische Limitierungen und potenzielle Herausforderungen

  • Stateful Services sollten nicht abgeschaltet werden.
  • Externe Abhängigkeiten können nach einem Wake-up Verzögerungen verursachen.
  • Nicht alle Kubernetes-Ressourcen werden aktuell unterstützt.

Adoption und Einsatzbeispiele aus der Praxis

Mehrere Unternehmen und Organisationen setzen bereits auf kube-green, um ihre Cloud-Ressourcen effizienter zu nutzen. Die CNCF fördert das Projekt aktiv, und es gibt erste Produktiv-Einsätze in großen Clustern.

Integration mit KEDA und weiteren Green Cloud Tools

kube-green lässt sich mit anderen Nachhaltigkeits-Tools kombinieren, darunter:

  • KEDA: Dynamische Skalierung basierend auf Event-getriebenen Workloads.
  • Kepler: Energieverbrauchsanalyse für Kubernetes-Cluster.
  • Cloud Carbon Footprint: Berechnung des gesamten CO₂-Ausstoßes einer Cloud-Infrastruktur.

Fazit

kube-green bietet eine einfache, aber effektive Lösung, um den Energieverbrauch von Kubernetes-Clustern zu senken. Durch automatisches Abschalten nicht genutzter Ressourcen lassen sich Kosten sparen und die Umwelt schonen. Das Tool ist besonders für Entwicklungs- und Testumgebungen geeignet, in denen viele Pods außerhalb der Arbeitszeiten unnötig laufen.

Autor
Dr. Michael R. Geiß
Profil anschauen
Bildtrennung
Follow us

Folgen Sie uns auf Social Media

Bleiben Sie auf dem Laufenden über aktuelle Projekte und relevante Themen, die wir mit Ihnen auf Social Media teilen.