Aller au contenu principal

OpenCost

Overview

OpenCost, c'est le fork open-source de Kubecost qui pense que tout doit être open-source, point final. Maintenant un projet CNCF (Cloud Native Computing Foundation), il fournit une visibilité complète sur les coûts Kubernetes avec attribution fine des coûts par namespace, pod, service, et deployment. Si tu es dans Kubernetes et que tu veux quelque chose de 100% open-source, c'est parfait.

OpenCost collecte les métriques de ressources Kubernetes et les combine avec les prix des instances cloud pour calculer les coûts réels. API REST, dashboard web, intégration avec Prometheus. Le projet est entièrement open-source et maintenu par la communauté CNCF.

OpenCost se distingue par son statut CNCF (c'est un projet officiel), sa communauté active (tu ne seras pas seul), et son focus sur l'open-source pur (pas de version enterprise, tout est open-source).


Informations essentielles

PropriétéValeur
Site officielhttps://www.opencost.io/
Repositoryhttps://github.com/opencost/opencost
LicenceApache 2.0
OrganisationCNCF (Cloud Native Computing Foundation)
LangageGo
PlateformesKubernetes (tous les providers)

Fonctionnalités principales

Attribution des coûts

  • Attribution des coûts par namespace, pod, service, deployment
  • Support des labels et annotations Kubernetes
  • Allocation des coûts partagés (cluster, node)
  • Coûts par équipe, projet, environnement

API REST

  • API REST complète pour interroger les coûts
  • Support de multiples fenêtres temporelles
  • Agrégation flexible par labels, namespaces, etc.
  • Export des données en JSON

Dashboard web

  • Interface web pour visualiser les coûts
  • Graphiques et visualisations interactives
  • Filtres par namespace, label, période
  • Export des rapports

Multi-cloud

  • Support AWS, Azure, GCP, on-premise
  • Calcul automatique des coûts selon le provider
  • Support des instances spot et réservées
  • Configuration flexible des prix

Cas d'usage

  • Attribution des coûts : Savoir combien coûte chaque équipe/projet
  • Chargeback/Showback : Facturer ou présenter les coûts aux équipes
  • Optimisation : Identifier les ressources surdimensionnées
  • Budgétisation : Définir et suivre les budgets par équipe
  • Intégration : Utiliser l'API pour intégrer dans d'autres outils

Installation

Via Helm

helm repo add opencost https://opencost.github.io/opencost-helm-chart.
helm install opencost opencost/opencost \
--namespace opencost \
--create-namespace

Via kubectl

kubectl apply --namespace opencost -f https://raw.githubusercontent.com/opencost/opencost/develop/kubernetes/opencost.yaml

Utilisation basique

Accès au dashboard

# Port-forward vers le service
kubectl port-forward --namespace opencost service/opencost 9090:9090

# Accéder à http://localhost:9090

Requêtes API

# Coûts par namespace (7 derniers jours)
curl http://localhost:9090/allocation/compute?window=7d.

# Coûts d'un namespace spécifique
curl "http://localhost:9090/allocation/compute?window=7d&aggregate=namespace&namespace=production"

Avantages

  • CNCF project : projet officiel de la CNCF, c'est du sérieux
  • 100% open-source : pas de version enterprise, tout est open-source, pas de compromis
  • API REST complète : facile à intégrer dans d'autres outils, tu fais ce que tu veux
  • Communauté active : développement actif et support communautaire, tu ne seras pas seul
  • Multi-cloud : support AWS, Azure, GCP, on-premise, tu choisis où tu es

Limitations

  • Nécessite Prometheus pour fonctionner : il faut Prometheus installé, évidemment
  • Dashboard moins avancé que Kubecost enterprise : mais l'essentiel est là
  • Consommation de ressources sur le cluster : il faut de la RAM, du CPU, c'est le prix de la puissance

Alternatives

  • Kubecost : Version originale avec version enterprise
  • Goldilocks : Outil de right-sizing Kubernetes
  • Kube-downscaler : Mise à l'échelle automatique

Ressources