In the cloud, energy is not created equal. A kilowatt-hour in Sweden (Hydro/Wind) emits significantly less carbon than a kilowatt-hour in a coal-heavy region. Furthermore, a kilowatt-hour at noon (Solar peak) is cleaner than one at midnight.
Green Kubernetes is the practice of making scheduling decisions based on this carbon intensity. This post walks through the tooling required to implement this in 2025.
The Metric: Carbon Intensity (gCO 2 eq/kWh)
We need a real-time signal. The standard in 2025 is the Carbon Aware SDK from the Green Software Foundation, which aggregates data from sources like WattTime and Electricity Maps.
Tool 1: KEDA Carbon Aware Scaler
For batch jobs (training, ETL, rendering), we use KEDA (Kubernetes Event-driven Autoscaling).
The Logic: "If the grid carbon intensity in us-east-1 is > 400g, scale deployment to 0. If < 200g, scale to 10."
Configuration Snippet:
YAML
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
name: carbon-sensitive-job
spec:
scaleTargetRef:
name: ai-model-trainer
triggers:
- type: carbon-intensity
metadata:
region: "us-east-1"
emissionThreshold: "350" # Pause if grid is dirty
handler: "pause" # or 'scaleDown'
Tool 2: Kepler (Kubernetes-based Efficient Power Level Exporter)
KEDA handles when to run. Kepler handles reporting. Kepler uses eBPF (Extended Berkeley Packet Filter) to probe CPU performance counters and estimate the energy consumption of specific pods. It exports these metrics to Prometheus.
The Dashboard: By combining KEDA (Grid Intensity) and Kepler (Pod Energy Usage), you can build a Grafana dashboard that shows: "This training run consumed 50 kWh. Because we delayed it by 4 hours, we saved 12 kg of CO2".
Advanced Pattern: Multi-Region Carbon Cluster
For mission-critical workloads that cannot pause, use a Federated Scheduler (like Karmada) to shift traffic.
Ingress Controller: Checks carbon intensity across 3 regions (e.g., Virginia, Dublin, Oregon).
Routing: Updates DNS or Load Balancer weights to send 80% of traffic to the region with the lowest current carbon intensity.
Latency Guardrail: A policy ensures traffic isn't routed if the latency penalty exceeds 100ms.
Why do this? Beyond saving the planet, "Carbon Aware" is increasingly a regulatory requirement (CSRD) and a condition for cheaper "Green Compute" spot instances offered by some providers.
All in One Place
Atler Pilot decodes your cloud spend story by bringing monitoring, automation, and intelligent insights together for faster and better cloud operations.

