Kubecost Core Architecture Overview

Below are the major components deployed with the Kubecost Helm chart, excluding certain Enterprise components such as durable storage:

  1. Kubecost Cost-Analyzer Pod
    1. Frontend: Runs Nginx and handles routing to Kubecost backend and Prometheus/Grafana
    2. Cost-model: Provides cost allocation calculations and metrics, both reads and writes to Prometheus
  2. Prometheus
    1. Prometheus server: Time-series data store for cost and health metrics
    2. Kube-state-metrics (optional): Provides Kubernetes API metrics, e.g. resource requests
    3. Node-exporter (optional): Provides metrics for reserved instance recommendations, various Kubecost Grafana dashboards, and cluster health alerts
    4. Pushgateway (optional): Provides the ability for users to push new metrics to Prometheus
    5. Alertmanager (optional): Used for custom alerts
  3. Network costs (optional): used for determining network egress costs. See our Network Traffic Cost Allocation doc for more information.
  4. 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:

Architecture Overview

Enterprise Architecture Overview

The most common implementation of durable storage in the Kubecost application is with Thanos. Below is a high-level reference for the required components. More information on each Thanos component can be found here.

Thanos Overview