Kubernetes Billing
Use the Kubernetes Billing integration to ingest OpenCost cost exports in Parquet format from EKS, AKS, and GKE clusters and view managed Kubernetes costs in Cloudaware Cost Management.
- Audience: Cloudaware administrators, platform/DevOps engineers, FinOps, finance teams
- Outcome: Kubernetes cluster costs visible in Cloudaware Cost Management through a repeatable ingestion path per cloud/provider and cluster
This section covers:
- OpenCost and Parquet exporter deployment requirements.
- Supported export destinations for AWS, Azure, and Google Cloud.
- Cloud storage permissions required for Cloudaware ingestion.
- Kubernetes Billing configuration in Cloudaware.
- Verification and troubleshooting steps.
How It Works
Cloudaware’s OpenCost-based flow has three steps:
- OpenCost runs in the Kubernetes cluster and calculates Kubernetes cost data.
- The Parquet exporter writes Parquet cost exports to cloud object storage:
- AWS: S3 bucket
- Microsoft Azure: Storage account/container (Blob)
- Google Cloud: GCS bucket
- Cloudaware ingests the exports from the storage location, providing Kubernetes cost data normalized for Cost Management dashboards and reporting.
In multi-cloud environments, create separate Kubernetes Billing integrations per provider. If clusters write exports under different prefixes/subfolders, create separate integrations per cluster/prefix.
Prerequisites
Before you configure Kubernetes Billing via OpenCost, make sure you have:
- Access to a Cloudaware account.
- A user with access to the Admin Console and permissions to manage cloud accounts, organizations, and integrations (Cloudaware Administrator).
- A cloud account configured in Cloudaware (see setup guides for AWS, Microsoft Azure, and Google Cloud)
- OpenCost and the Parquet exporter deployed (see OpenCost Deployment for Kubernetes Billing and provider-specific guides).
- An export destination in object storage. Configure the exporter to write Parquet files to S3/Blob/GCS, and ensure Cloudaware can read the location.
Use consistent label keys (team/app/env/cost center) across clusters to simplify reporting and governance.
Configure Kubernetes Billing in Cloudaware
To enable Kubernetes costs ingestion in Cloudaware:
- In Cloudaware, go to Admin (Admin Console).
- Find Kubernetes Billing, click + ADD.
- Select the cloud provider.
- Complete the form using configuration fields:
- AWS: Account, Region, Bucket, Cluster Prefix
- Microsoft Azure: Active Directory, Storage Account, Container, Cluster Prefix
- Google Cloud: Service Account, Bucket, Cluster Prefix
- Click CHECK, then SAVE.
- Confirm that the integration status indicator is green.
- Repeat for additional providers and clusters.
Provider Configuration Fields
AWS (S3)
- Account: AWS account that owns the bucket
- Region: AWS region of the bucket
- Bucket: S3 bucket name that holds the Parquet exports
- Cluster Prefix: optional; prefix/subfolder for a cluster’s exports
If clusters write to different prefixes or buckets, create separate integrations per cluster/prefix.
Microsoft Azure (Blob Storage)
- Active Directory: Azure tenant used for access
- Storage Account: Storage account that holds the exports
- Container: Blob container that holds the exports
- Cluster Prefix: optional; prefix/subfolder for a cluster’s exports
If clusters write to different containers or storage accounts, create separate integrations accordingly.
Google Cloud (GCS)
- Service Account: Service account with access to the bucket
- Bucket: GCS bucket name that holds the Parquet exports
- Cluster Prefix: optional; prefix/subfolder for a cluster’s exports
If clusters write to different prefixes or buckets, create separate integrations per cluster/prefix.
Verification
In your cluster:
- Confirm OpenCost is running.
- Confirm the Parquet exporter is writing Parquet files to the expected bucket/container and prefix.
In Cloudaware:
- Open Admin → Kubernetes Billing and confirm the integration:
- Passes CHECK for the configured storage location.
- Is saved and active after SAVE.
- Confirm cost data appears on the relevant Kubernetes resources in the CMDB.
View Kubernetes Billing Data in Cloudaware
Note that new cluster integrations can take up to 24 hours to appear in CMDB. After ingestion is working:
- In CMDB, expect Kubernetes objects and related cost context to appear after ingestion is established.
- Use Kubernetes billing data in Advanced Analytics to:
- Track spend by cluster, namespace, pod, container, node, label, etc.
- Identify gaps that limit downstream reporting, for example, missing labels/metadata.
- Build dashboards for cluster cost trends and usage. Contact your Cloudaware technical account manager (TAM) to request a dashboard for your business needs.
Verify the pipeline in order — cluster billing export, storage location, then Cloudaware ingestion — before you tune dashboards and governance.
Troubleshooting
If costs do not appear as expected:
- Confirm the exporter is writing to the exact bucket/container and prefix configured in Cloudaware.
- Confirm Cloudaware has read access to the storage location (role/service account/tenant configuration).
- Create separate integrations where exports are separated by provider or by cluster prefixes.
Security Notes
- Grant Cloudaware least-privilege access to read the object storage location holding billing exports.
- Rotate service account credentials and access keys per policy, and limit exporter write permissions to only what is required.