Skip to main content
Vantage allows you to see in-cluster costs for Kubernetes clusters, including seeing costs by Container, Service, Namespace and Label. Vantage supports any type of Kubernetes deployment (e.g., EKS, GKE, self-managed). This allows teams to easily understand how their shared clusters are being utilized and how to account for cluster costs across teams and applications. The Vantage Kubernetes agent is the recommended integration point for ingesting Kubernetes costs into Vantage. Note that a primary provider (e.g., AWS, Azure, GCP, OKE, or on-premises) is required to connect Kubernetes costs.

How the Integration Works

Vantage looks at pod lifecycle data and the underlying nodes that pods run on. By joining the lifecycle data of each pod (along with the greater of either the reserved or actual CPU/memory prescribed) with the specific rate information of the underlying node, Vantage allocates subcategories of the node (vCPU, memory, GPU, storage, etc.) to the pod. The lifecycle of the EC2 instance is also automatically determined (On-Demand, Spot, Reserved, Savings Plans, EDP, etc.). This allows you to see costs by the following dimensions:
  • By container name
  • By Kubernetes service
  • By Kubernetes namespace
  • By Kubernetes label
Vantage automatically profiles your clusters for all existing Services, Namespaces, and Labels to be available for you in the Vantage console as dimensions for filtering and reporting.

Enable Kubernetes Costs

You must have a Vantage Organization Owner or Integration Owner role to add or remove this integration. See the Role-Based Access Control documentation for details.
To get started, follow the instructions for setting up the Vantage Kubernetes agent. After setting up the Kubernetes agent, you will see the status of your integration change to Importing within the Vantage console. This status indicates that Vantage is actively importing your Kubernetes cost data. See the Integration Status documentation for details on integration statuses.

Manage Workspace Access

Once the import is complete and the integration status changes to Stable, you can select which workspaces this integration is associated with. See the Workspaces documentation for information.

Data Refresh

See the provider data refresh documentation for information on when data for each provider refreshes in Vantage.

Reporting Dimensions

On Kubernetes Cost Reports, you can filter across several dimensions:
  • Account (associated account name)
  • Tag (includes Kubernetes grouping names and values, for example, namespace, and virtual tags created in Vantage for this provider)
  • Region (e.g., Westus2)
  • Charge Type (e.g., Usage)
  • Cluster (cluster name)

Troubleshooting

If you’ve installed the Vantage Kubernetes agent but costs are not yet visible in Cost Reports, check the following:
SymptomPossible CauseResolution
No Kubernetes costs appearAgent recently installedKubernetes cost data is refreshed once daily. Allow up to 24 hours for initial data to appear.
Costs appear but are delayedCloud provider data lagKubernetes costs depend on the underlying infrastructure provider (AWS, Azure, GCP) making their billing data available. A one-day delay in the cloud provider’s Cost and Usage Report causes a similar delay in Kubernetes costs.
Costs appear for some clusters but not othersAgent not installed on all clustersVerify the agent is deployed on each cluster you want to monitor. Check agent status on the Integrations page.
Integration shows Error or Warning stateAgent connectivity or permissions issueVerify that the agent pod is running (kubectl get pods -n vantage) and can reach the Vantage API. See the Kubernetes agent documentation for setup requirements.
Expected labels or namespaces are missingLabels not yet processed or not applied at the pod levelNew labels are picked up as part of daily cost processing and can take up to 24 hours to appear. Vantage uses pod-level labels as the primary source (along with namespace labels, node labels, PVC labels, and annotations). Labels applied only to higher-level objects like Deployments or StatefulSets without propagating to pods are not captured.
A primary provider integration (e.g., AWS, Azure, GCP, OKE, or on-premises) must be connected before Kubernetes costs can be allocated. If you have not yet connected your cloud provider, see the Getting Started documentation.