Kubecost Core Architecture Overview
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
- Pushgateway (optional): Provides the ability for users to push new metrics to Prometheus
- 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:
Provider Pricing Architecture Overview
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.