Veröffentlicht am

Kubecost: Kubernetes-Kosten pro Team und Namespace

Teilen:
Authors

Kubecost: Kubernetes-Kosten pro Team und Namespace analysieren

TL;DR

Kubecost zeigt Kubernetes-Kosten in Echtzeit pro Namespace, Label und Team. Die Installation erfolgt per Helm in unter fuenf Minuten. Efficiency Scoring deckt ueberdimensionierte Workloads auf. Budget-Alerts warnen automatisch bei Kostenueberschreitungen. Die Free-Version reicht fuer einzelne Cluster, Enterprise bietet Multi-Cluster-Support und SSO.


Warum Kubernetes-Kostenanalyse scheitert

In Kubernetes teilen sich Teams einen Cluster. Ein Node kostet 400 Euro pro Monat, aber darauf laufen Pods von sechs verschiedenen Namespaces. Wer zahlt wie viel?

# Typisches Szenario: 12 Nodes, 5 Teams, keine Zuordnung
kubectl get nodes --no-headers | wc -l
# 12

kubectl get namespaces --no-headers | wc -l
# 23

Ohne Tooling ist die Zuordnung unmoeglich. Kubecost loest dieses Problem, indem es Resource Requests, tatsaechliche Nutzung und Cloud-Preise kombiniert.

Kubecost per Helm installieren

Voraussetzung ist ein laufender Kubernetes-Cluster mit Helm 3.

# Helm-Repository hinzufuegen
helm repo add kubecost https://kubecost.github.io/cost-analyzer
helm repo update

# Kubecost installieren
helm install kubecost kubecost/cost-analyzer \
  --namespace kubecost \
  --create-namespace \
  --set kubecostToken="dein-token-von-kubecost.com" \
  --set prometheus.server.persistentVolume.size=32Gi \
  --set prometheus.server.retention=45d

Nach der Installation:

# Pods pruefen
kubectl get pods -n kubecost

# UI per Port-Forward oeffnen
kubectl port-forward -n kubecost svc/kubecost-cost-analyzer 9090:9090

# Browser: http://localhost:9090

Kubecost bringt einen eigenen Prometheus mit. Falls bereits Prometheus im Cluster laeuft, kann Kubecost diesen nutzen:

helm install kubecost kubecost/cost-analyzer \
  --namespace kubecost \
  --create-namespace \
  --set global.prometheus.fqdn="http://prometheus-server.monitoring:9090" \
  --set global.prometheus.enabled=false

Kostenallokation: Namespace, Label, Team

Kubecost berechnet Kosten anhand von drei Faktoren: Resource Requests (was reserviert wurde), tatsaechliche Nutzung und Cloud-Preise pro Node-Typ.

Allokation per Namespace

Das Allocation-Dashboard zeigt sofort, welcher Namespace wie viel kostet. Die Ansicht laesst sich auf beliebige Zeitraeume filtern -- von einer Stunde bis zu 90 Tagen.

# Kubecost API: Kosten der letzten 7 Tage pro Namespace
curl -s "http://localhost:9090/model/allocation?window=7d&aggregate=namespace" | \
  python3 -m json.tool

Allokation per Label

Die praezisere Methode ist die Zuordnung ueber Labels. Kubecost unterstuetzt beliebige Label-Keys:

# Deployment mit Team- und Cost-Center-Labels
apiVersion: apps/v1
kind: Deployment
metadata:
  name: payment-service
  namespace: production
spec:
  replicas: 3
  template:
    metadata:
      labels:
        app: payment-service
        team: payments
        cost-center: cc-3100
    spec:
      containers:
        - name: payment-service
          image: registry.example.com/payment:v4.2.0
          resources:
            requests:
              cpu: 250m
              memory: 256Mi
            limits:
              cpu: 500m
              memory: 512Mi
# Kosten nach Team-Label aggregieren
curl -s "http://localhost:9090/model/allocation?window=30d&aggregate=label:team"

# Kosten nach Cost-Center
curl -s "http://localhost:9090/model/allocation?window=30d&aggregate=label:cost-center"

In der Kubecost-UI lassen sich diese Aggregationen direkt im Dropdown auswaehlen, ohne API-Aufrufe.

Efficiency Scoring: Verschwendung erkennen

Das Efficiency Scoring ist eine der staerksten Kubecost-Funktionen. Es vergleicht reservierte Ressourcen (Requests) mit der tatsaechlichen Nutzung und berechnet einen Prozentwert.

Efficiency ScoreBedeutungHandlung
90-100%Optimal dimensioniertKeine Aenderung noetig
60-90%Leichte UeberdimensionierungRequests anpassen
30-60%Deutliche VerschwendungDringend optimieren
Unter 30%Massive VerschwendungRequests und Replicas reduzieren

Ein typischer Cluster hat eine Gesamt-Efficiency von 30-50%. Das bedeutet: Die Haelfte der bezahlten Kapazitaet wird nicht genutzt.

# Savings-Empfehlungen abrufen
curl -s "http://localhost:9090/model/savings" | python3 -m json.tool

# Container-Rightsizing-Empfehlungen
curl -s "http://localhost:9090/model/savings/requestSizing?window=7d"

Kubecost zeigt konkrete Empfehlungen: Welche Deployments koennen ihre CPU-Requests von 1000m auf 200m reduzieren, weil die tatsaechliche Nutzung bei 150m liegt.

Budget-Alerts konfigurieren

Kubecost kann bei Budgetueberschreitungen per E-Mail, Slack oder Webhook warnen.

# kubecost-alerts.yaml (als Helm Values)
kubecostProductConfigs:
  alertConfigs:
    enabled: true
    alerts:
      - type: budget
        threshold: 500
        window: 30d
        aggregation: namespace
        filter: "production"
        ownerContact:
          - "team-platform@example.com"
          - "slack:#kubernetes-costs"

      - type: efficiency
        threshold: 0.4
        window: 7d
        aggregation: namespace
        ownerContact:
          - "team-leads@example.com"

      - type: spendChange
        relativeThreshold: 0.3
        window: 7d
        baselineWindow: 30d
        aggregation: cluster
        ownerContact:
          - "finops@example.com"
# Alert-Konfiguration anwenden
helm upgrade kubecost kubecost/cost-analyzer \
  --namespace kubecost \
  -f kubecost-alerts.yaml

Der spendChange-Alert ist besonders nuetzlich: Er warnt, wenn die Ausgaben der letzten Woche 30% ueber dem 30-Tage-Durchschnitt liegen.

Dashboard-Interpretation

Das Kubecost-Dashboard gliedert sich in vier Hauptbereiche:

Allocation: Kostenaufschluesselung nach Namespace, Label, Controller oder Service. Zeigt CPU-, RAM-, Storage- und Network-Kosten separat. Idle Costs werden anteilig auf Namespaces verteilt.

Savings: Konkrete Einsparempfehlungen mit geschaetztem Euro-Betrag. Rightsizing-Vorschlaege fuer ueberdimensionierte Container, ungenutzte Persistent Volumes und verwaiste Load Balancer.

Health: Cluster-Gesundheit und Reliability-Score. Warnt vor fehlenden Resource Requests, Single-Replica-Deployments und Pods ohne PodDisruptionBudget.

Reports: Automatisierte Showback-Reports, die per E-Mail oder Slack versendet werden koennen. Konfigurierbar auf Team- oder Namespace-Ebene.

Kubecost Free vs. Enterprise

FeatureFreeEnterprise
KostenallokationJa (1 Cluster)Ja (Multi-Cluster)
Efficiency ScoringJaJa
Savings-EmpfehlungenBegrenztVollstaendig
Datenretention15 TageUnbegrenzt
SSO/SAMLNeinJa
RBAC fuer DashboardNeinJa
Slack/Teams-AlertsBegrenztVollstaendig
SupportCommunityKommerziell

Fuer einzelne Cluster reicht die Free-Version. Enterprise lohnt sich ab drei Clustern oder wenn RBAC-basierte Reports und SSO benoetigt werden.

Einen Vergleich mit der Open-Source-Alternative finden Sie in unserem OpenCost FinOps Guide.

FAQ

Wie unterscheidet sich Kubecost von OpenCost?

OpenCost ist das Open-Source-Kernprojekt (CNCF Sandbox), auf dem Kubecost aufbaut. Kubecost ergaenzt Enterprise-Features wie Multi-Cluster-Support, SSO, laengere Datenretention und automatische Savings-Empfehlungen.

Bringt Kubecost einen eigenen Prometheus mit?

Ja, Kubecost installiert standardmaessig einen eigenen Prometheus. Optional kann ein bestehender Prometheus genutzt werden, was Ressourcen spart und doppelte Datenerhebung vermeidet.

Wie genau sind die Kostenberechnungen?

Kubecost nutzt die tatsaechlichen Cloud-Preise ueber die Billing-APIs von AWS, Azure und GCP. Fuer On-Prem-Cluster lassen sich Custom-Preise pro CPU-Stunde und GB-RAM konfigurieren. Die Genauigkeit liegt typischerweise bei 95-98%.

Kann Kubecost auch Network-Kosten berechnen?

Ja, ab der Enterprise-Version werden Egress-Kosten zwischen Availability Zones und Regionen erfasst. Dafuer wird ein Network-Cost-DaemonSet deployed, der den tatsaechlichen Traffic misst.

Wie viel Ressourcen verbraucht Kubecost selbst?

Die Free-Version benoetigt ca. 500m CPU und 1 GB RAM (inklusive eigenem Prometheus). Ohne eigenen Prometheus sinkt der Verbrauch auf ca. 200m CPU und 512 MB RAM.

Verwandte Artikel

Kubernetes-Expertise gesucht?

Managed Services, Beratung, Training oder Security – wir unterstützen deutsche Unternehmen bei allen Kubernetes-Themen.

Kubernetes-Beratung gesucht?

Wir helfen deutschen Unternehmen bei der Kubernetes-Implementierung, Migration und Optimierung. DSGVO-konform und praxiserprobt.

📖 Verwandte Artikel

Weitere interessante Beiträge zu ähnlichen Themen