Request versus usage drift
CPU and memory requests that no longer match what containers consume. Over-requesting wastes node capacity that every other team pays for.
- CPU request versus measured usage
- Memory request versus measured usage
Varcio is a Kubernetes cost management and allocation tool that maps container cost to namespace, deployment and team using Kubecost, OpenCost, the native Kubernetes API or its bundled in-cluster agent. Fourteen Kubernetes detectors flag request drift, idle pods, spot candidates, bin-packing headroom and orphaned volumes, with rightsizing based on measured utilisation rather than requests alone.
Kubernetes hides cost behind shared nodes. 14 detectors and namespace-level allocation make it visible, attributable and fixable.
A cloud bill shows the nodes, not the workloads. Every team shares the same instances, so the invoice cannot tell you which namespace is responsible for growth, and scheduling works on requests, which are often set once and never revisited. The result is clusters sized for requests that bear little relation to what containers actually use.
Varcio maps container cost to namespace, deployment and team, and rightsizes from measured utilisation rather than requests alone. Each finding carries an estimated monthly saving, confidence, effort, risk and a recommended action, ranked in the same queue as findings from your cloud accounts.
CPU and memory requests that no longer match what containers consume. Over-requesting wastes node capacity that every other team pays for.
Running pods whose actual CPU and memory use is near zero while they still reserve their requested capacity on the node.
Workloads suited to cheaper spot capacity, and nodes with enough headroom that pods could run on fewer of them. These checks use the native Kubernetes API connection.
With the native Kubernetes API connection, Varcio also inspects cluster objects directly, including storage that still bills after its workload has gone.
Container cost attributed to namespace, deployment and team, with team taken from team, owner or cost-center labels, so shared cluster spend can be reported and charged back.
Kubernetes cost sits in the same ledger as AWS, Azure, Google Cloud and OCI, where 23 cross-cloud detectors look for duplicated environments.
Which signals Varcio can use depends on how the cluster is connected. Kubecost, OpenCost and agent data drive allocation, rightsizing and idle-pod findings; the native Kubernetes API adds node and cluster-object checks.
Cost by namespace, deployment and team from Kubecost, OpenCost, the agent or the native API, used to find growth that is not matched by demand.
CPU and memory requests compared with measured usage to find drift and idle pods. The agent reads usage from metrics-server.
Node capacity and pricing, used to find spot candidates and bin-packing headroom.
DaemonSets, Persistent Volumes and claims, services and endpoints, and container settings such as requests, limits and privileged mode.
Use the cost engine you already run, connect to the Kubernetes API, or install the bundled agent. Only the agent works without Varcio reaching an endpoint in your environment.
If your clusters already run Kubecost, or OpenCost, the vendor-neutral CNCF incubating project, Varcio reads allocation data from it, so you keep your existing installation. The Kubecost or OpenCost endpoint must be reachable from Varcio.
Varcio connects to the cluster API with a bearer token you provide. This mode adds the node and cluster-object detectors, such as spot candidates, DaemonSet overhead, orphaned volumes and privileged containers, and needs an API endpoint Varcio can reach.
The agent runs inside the cluster, reads usage from metrics-server and pushes metrics outbound, so there are no ports to open and no API server to expose. Its cluster role is read-only on pods, nodes, namespaces and pod metrics. The agent is available on Business and Enterprise plans.
Allocation, findings, forecasting, anomaly detection and Apex questions run on read-only access indefinitely. Write-back through the agent is optional and stays off unless you enable it.
If the cloud accounts that host your nodes are also connected, cluster cost and the underlying cloud spend sit in the same ledger.
Most Kubernetes changes land through manifests and pipelines. Varcio fits that flow, and can also apply approved changes through its agent.
A rightsizing finding gives the owning team the measured usage, the current requests and a costed recommendation. Many teams apply that change where they already manage workloads — manifests, Helm values or a GitOps repository — so the fix is reviewed like any other change. Where infrastructure is defined in Terraform, PR cost review shows the cost delta on the pull request before merge.
If you prefer, the agent can apply the change. Write-back is off unless you explicitly enable it and grant the agent permission to patch Deployments. Each change is queued as an approval request, and the agent applies it only after approval; rolling back is a new action in the opposite direction.
These controls apply to all remediation Varcio executes, on every cloud, alongside the write permissions you grant and Varcio verifies before anything changes.
Resources carrying a protected tag are excluded from every remediation run, so a production database or a regulated workload cannot be changed by a rule that happens to match it.
Approved changes run only inside the windows you define, which keeps stops, deletions and resizes away from peak traffic, release trains and change freezes.
Before a live run, Varcio checks for step-up approval on high blast-radius changes, a rollback success floor, and a maintenance window for larger blast radius. If a gate is not met, the run drops to a dry run instead.
Any action can be previewed without making live API calls, and individual rules can be held to dry run. Per-rule action caps, a maximum number of actions per run and a monthly action budget bound how much changes at once.
Write actions requested through Apex come back as a plan that runs only after an authorised person types APPROVE, backed by a single-use token, or approves from Slack or Microsoft Teams. Autopilot runs in observe, suggest or autopilot mode. In autopilot mode it can act without a person above a confidence threshold, including deleting unattached volumes and orphaned snapshots, but resources that look production, public, critical or deletion-protected go to approval instead.
Every action records who requested it, who approved it, what changed and when, so finance, security and auditors can reconstruct any change after the fact.
OpenCost and Kubecost are established Kubernetes cost tools, and Varcio can use either as a data source. Here is what each provides, according to their documentation.
A vendor-neutral open source project, created by Kubecost and now a CNCF incubating project, for measuring and allocating container and cloud infrastructure costs by namespace, pod and label, with cloud billing integration and a published OpenCost Specification.
Kubernetes cost allocation across clusters, teams, namespaces, workloads and shared resources, reconciliation with cloud provider bills, rightsizing recommendations across containers, nodes and storage, and budgets, anomaly detection and forecasting.
| Capability | OpenCost and Kubecost | Varcio |
|---|---|---|
| Allocation | OpenCost by namespace, pod and label; Kubecost across clusters, teams, namespaces, workloads and shared resources | Namespace, deployment and team, in the same ledger as cloud account spend |
| Cloud billing context | OpenCost cloud billing integration; Kubecost reconciliation with cloud bills | Cluster cost alongside AWS, Azure, Google Cloud and OCI, with 23 cross-cloud detectors |
| Rightsizing | Kubecost recommendations across containers, nodes and storage | 14 detectors, with rightsizing from measured utilisation rather than requests alone |
| Alerts and forecasting | Kubecost budgets, anomaly detection and forecasting | Anomaly detection, forecasting and policy guardrails, with alerts in Slack or Teams |
| Data source | Runs in your cluster | Reads Kubecost, OpenCost or the native Kubernetes API, or receives metrics pushed outbound by the bundled agent |
| Acting on findings | Changes applied through manifests, Helm or GitOps | Optional, approval-gated write-back through the agent: set requests, scale to zero, restore replicas |
| Beyond the cluster | Focused on Kubernetes cost | Cloud waste detection, PR cost review, approval-gated remediation and Apex across the whole estate |
Scroll sideways to see the full table.
For a team that needs cost allocation inside its clusters and nothing more, OpenCost may be all that is required, and Kubecost adds a broader commercial feature set on top. Varcio is built for organisations where Kubernetes is one part of a larger cost picture.
Varcio combines cluster cost with cloud account spend in one ledger, ranks Kubernetes findings with cloud findings by savings, confidence and effort, applies tag governance, allocation and policies across both, and routes findings and approvals through Slack or Teams. Because it can read from Kubecost or OpenCost, adopting Varcio does not mean replacing what already works.
Cost is shared work. Each team sees the same findings and ledger, framed for the decisions it owns.
Sees which namespaces and deployments are over-requesting, with measured usage as evidence, and gives application teams specific, costed rightsizing changes.
Allocates shared cluster cost to teams for showback or chargeback, using the same model as cloud account spend.
Tracks idle pods, DaemonSet overhead and orphaned volumes, and receives anomalies and approvals in Slack or Teams.
Understands what each team’s services cost to run on shared clusters, and plans rightsizing work from a ranked backlog.
Bring CPU and memory requests into line with measured usage, since requests drive how many nodes you need. Remove idle pods that reserve capacity without using it, review DaemonSets whose cost scales with node count, look for spot candidates and bin-packing headroom, and delete orphaned Persistent Volumes that still bill for storage. Then allocate cost to namespaces and teams so owners see and act on their share. Varcio automates this with 14 Kubernetes detectors and namespace, deployment and team allocation.
Attribute container cost to namespaces and deployments, map those to owning teams through labels, and report it as showback or chargeback. Varcio maps container cost to namespace, deployment and team, taking team from team, owner or cost-center labels, with Kubecost, OpenCost, the native Kubernetes API or its bundled agent as the source.
No. Varcio can use an existing Kubecost or OpenCost installation, connect to the Kubernetes API with a bearer token, or receive metrics from its bundled in-cluster agent. The agent needs metrics-server and is available on Business and Enterprise plans.
No. The bundled agent pushes metrics outbound, so no inbound access to the cluster is needed, and its cluster role only reads pods, nodes, namespaces and pod metrics. The Kubecost, OpenCost and native Kubernetes API modes are different: they need an endpoint that Varcio can reach.
Only if you enable write-back. It is off by default, and turning it on means granting the agent permission to patch Deployments. The agent can then set requests, scale an idle Deployment to zero or restore replicas, and each change runs only after it has been approved.
Requests are what a team asked for, often set once at deployment. The scheduler reserves capacity based on them, so over-requesting forces extra nodes even when containers use far less. Rightsizing from measured utilisation shows what workloads actually need.
For in-cluster cost allocation, OpenCost may be sufficient. It is an open source CNCF incubating project that allocates cost by namespace, pod and label. Teams add Varcio when they need Kubernetes cost combined with cloud spend, ranked findings, cross-cloud detection, governance and approval workflows.
Yes. Kubernetes cost sits in the same normalised ledger as AWS, Azure, Google Cloud and OCI, and 23 cross-cloud detectors run across it.
Connect Kubecost, OpenCost, the Kubernetes API or the outbound-only agent and see container cost by namespace, deployment and team.