Below are the major components deployed with the Kubecost Helm chart, excluding certain Enterprise components such as durable storage:
- Kubecost Cost-Analyzer Pod
- Frontend: Runs Nginx and handles routing to Kubecost backend and Prometheus/Grafana
- Cost-model: Provides cost allocation calculations and metrics, both reads and writes to Prometheus
- Prometheus
- Prometheus server: Time-series data store for cost and health metrics
- Kube-state-metrics (optional): Provides Kubernetes API metrics, e.g. resource requests
- Node-exporter (optional): Provides metrics for reserved instance recommendations, various Kubecost Grafana dashboards, and cluster health alerts
- Alertmanager (optional): Used for custom alerts
- Network costs (optional): used for determining network egress costs. See our Network Traffic Cost Allocation doc for more information.
- Grafana (optional): Provides supporting dashboards for Kubecost product
Today, the core Kubecost product can be run with just components 1 and 2.1. See an overview of core components in this diagram:
{% hint style="warning" %} Prometheus is not optional. Disabling Prometheus will result in zero costs in Kubecost. For more information, see Kubecost's Prometheus Configuration Guide. {% endhint %}
Kubecost interacts with provider pricing in a few different ways:
- onDemand Rates (AWS, Azure, GCP, and Custom Pricing CSV)
- Negotiated Rates (Azure, GCP, and Custom Pricing CSV)
- Spot Data Feed (AWS)
- Cloud Provider Billing for Reconciliation and Out-of-Cluster Spend
In an Enterprise federated setup, only the Primary Kubecost Cluster needs access to the Cloud Provider Billing.
Aggregator is the primary query backend for Kubecost using a federated ETL setup. Below is a high-level reference for the required components. More detail about these components can be found in our Federated ETL documentation.