Below are the major components to the Kubecost helm chart, excluding certain Enterprise components such a durable storage:
- Kubecost Cost-Analyzer Pod
a. Frontend -- runs Nginx and handles routing to Kubecost backend + Prometheus/Grafana
b. Kubecost server -- backend for API calls
c. Cost-model -- provides cost allocation calculations and metrics, both reads and writes to Prometheus - Cost-Analyzer Checks Jobs -- used for recurring product alerts & email updates
- Prometheus
a. Prometheus server -- time-series data store for cost & health metrics
b. Kube-state-metrics -- provides Kubernetes API metrics, e.g. resource requests
c. Node-exporter -- provides node-level utilization metrics for right-sizing recommendations and cluster utilization
d. Pushgateway -- provides ability for users to push new metrics to Prometheus
e. Alertmanager -- used for custom alerts - Network costs -- optional daemonset for collecting network metrics learn more
- Grafana -- provides supporting dashboards for Kubecost product
Today, the core Kubecost product can be run with just components 1, 3a, 3b, 3c.
See an overview of core components in this diagram:
The most common implementation of durable storage in the Kubecost application application is with Thanos. Below is a high-level reference for required components. More information on each Thanos component can be found here.