Skip to main content
Skip table of contents

Kubernetes Billing via OpenCost

OpenCost is an open-source cost monitoring tool designed for Kubernetes. This guide explains how to integrate Kubernetes Billing via OpenCost with Cloudaware.

Overview

Cloud billing reports from major providers often lack the granularity needed to understand costs at the level of individual Kubernetes cluster components. Tools such as OpenCost and Parquet Exporter provide this level of detail, enabling more accurate cost tracking and attribution within the cluster.

OpenCost collects in-cluster resource-usage data and calculates the associated costs. The Parquet Exporter plugin exports this usage and cost data to cloud storage on a daily schedule. Cloudaware then retrieves and imports the exported data for further processing and analysis.

High-level integration flow

To integrate Kubernetes Billing with Cloudaware:

  1. Add the cloud account to Cloudaware.

  2. Configure OpenCost for the Kubernetes cluster.

  3. Set up the integration in Cloudaware.

See the setup guidelines below for details.

Add cloud account

To add a cloud account to Cloudaware, use the following start guides:

Deploy OpenCost and Parquet Exporter

Deploy OpenCost and the Parquet Exporter for your cluster:

Set up Kubernetes billing in Cloudaware

Once the export files are available in the designated buckets, configure the Kubernetes Billing integration in Cloudaware:

  1. Log in to Cloudaware → Admin.

    Kubernetes Billing via OpenCost - admin.png

  2. Find Kubernetes Billing in Billing integrations. Click +ADD.

    Kubernetes Billing via OpenCost - add integration.png

  3. Select the cloud provider* and fill out the form:

    Kubernetes Billing via OpenCost - integration details.png


    For AWS
    Account: select the AWS account that owns the S3 bucket where the Parquet exports are stored.
    Region: enter the S3 bucket’s AWS region code, e.g., us-east-1.
    Bucket: enter the S3 bucket name, e.g., my-k8s-cost-bucket.
    Cluster Prefix (optional): specify the value preceding the cluster ID in the cluster ARN if any subfolders or naming prefixes are used. Leave blank if cost reports are stored in the bucket root. See Step 5 in the OpenCost Deployment for AWS guide.

    For Azure
    Active Directory: select the tenant that contains the identity used to access the Storage Account with the Parquet exports.
    Storage Account: enter the Storage Account name, e.g., costexportssa.
    Container: enter the Blob container name.
    Cluster Prefix (optional): specify the value preceding the cluster ID in the cluster path if any subfolders or naming prefixes are used. Leave blank if cost reports are stored in the container root. See Step 6 in the OpenCost Deployment for Microsoft Azure guide.

    For Google
    Service Account: select the GCP service account that has permission to read Parquet exports in the bucket.
    Bucket: enter the storage bucket name, e.g., my-cost-exports.
    Cluster Prefix (optional): specify the value preceding the cluster ID in the cluster path if any subfolders or naming prefixes are used. Leave blank if cost reports are stored in the bucket root. See Step 6 in the OpenCost Deployment for Google Cloud guide.

    Click CHECK to validate the connection. Once validation succeeds, click SAVE.

*For multi-cloud environments, configure a separate Kubernetes Billing integration for each cloud provider.

Within a single cloud provider, each cluster that uses a different subfolder or naming prefix for reports must be added to Cloudaware as a separate integration.

  1. Verify the integration status. A green light in the ‘Status’ column indicates successful configuration. If the light is red, contact support@cloudaware.com.

    Kubernetes Billing via OpenCost - integration status.png

Allow up to 24 hours for Cloudaware to display all added cluster integrations in the CMDB.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.