The 2021 CNCF survey estimates about 5.6 million Kubernetes developers worldwide, which is a 67% increase compared to the previous year. Around 90% of Kubernetes users use managed services from the major cloud providers. (Datadog container report)
While running Kubernetes in production, the costs can quickly spiral out of control. But deriving actionable insights from the cloud provider billing APIs or console is challenging.
Gaining visibility into Kubernetes costs is an essential first step in taking back control of your Kubernetes costs. You would then want a granular view of costs based on namespace, workload, nodes, and pods to translate it into environment and app costs. Second, you are using the metrics to get a handle on the utilization by setting the correct scaling and resource requests.
Several third-party software tools are built to save on your Kubernetes running costs. They often cover both the visibility and utilization aspects of Kubernetes costs. This article looks at five popular tools to understand and save on Kubernetes costs.
Kubecost allows us to keep the cost of the k8s cluster by either estimating cost or connecting to a managed k8s provider to get a precise figure. Apart from showing the cost, it also recommends tips on how to save costs. The front-end UI displays this data on Grafana dashboards.
Kubecost can monitor the costs of Kubernetes in any environment, including air-gapped, on-prem, and cloud providers AWS, GCP, and Azure. In the Kubecost dashboard, you can see the following sections: Overview, Cost Allocation, Savings, Report, and Others. Integrates with cloud provider’s billing APIs to collect the actual costs and automatically updates it. Here's the Helm chart to install Prometheus, kube-state metrics, Grafana, and more.
- Out-of-the-box cost metrics in Prometheus format to plug into observability tools and DevOps automation stages.
- It comes with a built-in cluster health score and recommendations.
- Configurable real-time alerts and automated recurring cost reports.
Kubecost has a forever free tier that covers one cluster, 15-day metrics retention, cost monitoring, and allocation. Their business plan costs $449/mo for 100 nodes and $799/mo for 200 nodes. Paid plans also include longer metrics retention, saved reports, and team updates & notifications. Enterprise plans are also available; contact the Kubecost team here.
All plans include unlimited users, no infrastructure data shared, and open-core software.
They also offer a self-managed open-source product called OpenCost.io.
Anodot is a business intelligence platform with analytical features built around revenue-critical business incidents. Their cloud cost management tool directly links business KPIs and cloud spending. The tool also provides personalized recommendations.
You can seamlessly monitor and optimize your cloud spending across AWS, GCP, and Azure. With the ability to dive deeper into your data details to get a clear picture of how infrastructure and economies are changing.
|Units||Description||1 Month||12 Months|
|Up to 1,000 Metrics||Use up to 1,000 metrics reported to Anodot per month||$2,000||$20,000|
|Users||Up to 5 users allowed to access the Anodot application||$100||$1,000|
- Mapping costs in correlation with business metrics.
- Node-level insights into Kubernetes costs. It combines Kubernetes costs with non-containerized costs and business metrics.
- Integrated platform to monitor business data like payments, cost management, and CX
Image source: https://www.anodot.com/cloud-cost-management/
CloudZero provides cloud cost optimization, Kubernetes cost analysis, unit cost analysis, SaaS COGS management, and more. It works similarly to infrastructure as code. You can define how to organize costs in a code artifact. It comes with the ability to dive down costs to cost per customer, cost per feature, cost per environment, cost per team, or cost per product.
It works with Kubernetes, shared costs in multi-tenant applications, and non-taggable AWS services. Easily ingest your data from cloud providers like AWS, Azure, and GCP, plus software platforms like New Relic, MongoDB, Databricks, and Snowflake. Set cost anomaly alerts, view cost breakdowns by product, and receive weekly updates.
- SaaS COGS measurement, granular cost visibility
- Cost intelligence between untagged, untaggable, and shared resources
- Single dashboard for AWS, Azure, GCP, Snowflake, New Relic, and Kubernetes
Their CloudZero on-demand pricing is based on the units of $1K/month AWS spend (overages and limitations apply). Their CloudZero Custom plan provides Unlimited access to the CloudZero platform, regardless of your AWS spend. Additional usage is charged monthly for each $1K AWS spent over the contract - $19/unit.
|Units||1 Month||12 Months||24 Months||36 Months|
|CloudZero On Demand||$19||$209||$399||$608|
Image source: https://www.g2.com/products/cloudzero/reviews
💡 New to Kubernetes and not sure how to set up your first cluster? Check out our quick start guide for Kubernetes on both AWS and GCP.
It provides an automated approach to cloud cost optimization and monitoring. Cast.ai supports AWS, GCP, Azure, and self-hosted Kubernetes. It can automatically analyze your cluster and prepare a custom savings report in as little as 5 minutes. They claim that their clients save an average of 63% on their cloud bills.
The tool can reduce costs by instant rebalancing, real-time autoscaling, spot instance automation with Fallback, regular cost monitoring and reporting, and providing security insights.
- 24/7 automatic monitoring, analyzing, and optimizing
- Real-time engine for instant rebalancing
- Vendor-neutral solution with no lock-in
They provide a free tier that gives basic recommendations and has unlimited analysis. The paid plans are charged based on a monthly subscription + charge per CPU. Starting at $200/mo + $5/CPU.
Image source: https://cast.ai/
Loft.sh provides self-serve Kubernetes solutions for cost optimization, CI/CD, policy enforcement, user management, collaboration, and more. It helps save on Kubernetes costs by using quotas and space constraints which helps while sharing your clusters among multiple users and teams. Auto delete for idle namespaces and sleep mode for idle workloads also saves costs.
- Easy-to-use self-serve tools for managing Kubernetes clusters
- Automatic idle detection and sleep mode to save costs
- Sharing clusters across multiple teams and users
Loft has a free version that allows up to 3 users and 2 clusters. The paid version costs $20/user/month. They also have an enterprise version available. Their open-source tools are also great tools to make using Kubernetes easier.
Image source: https://loft.sh/docs/clusters/guides/monitoring
Vantage.sh brings all your cloud costs to one central place. With integrations with AWS, Snowflake, Datadog, and more, it securely accesses cost data. Through this, you can understand per-resource costs, forecast future savings, dive into Kubernetes costs, and get alerts for unexpected changes.
- Fully managed with support for Prometheus and OpenCost
- Breakdown of resource usage and costs by service, namespace, or label
- Ability to monitor all cloud costs beyond Kubernetes in one place
Vantage has a free tier to get started which supports up to $2,500 monthly cost. The paid tiers depend on the monthly tracked costs across your connected cloud resources. They also have an enterprise version which is billed at 1% of your monthly costs. More details on the pricing here.
Image source: https://www.vantage.sh/features/kubernetes
The engineering-centric cloud cost management tool is built to scale with cloud complexity. It provides a centralized view of all your multi-cloud costs, including granular support and reporting for Kubernetes, containers, and microservices. These data points are also mapped to the business context and can be drilled down further to get analytics.
- As their blog explains, Yotascale’s tools help you leverage tags and labels for more accurate visibility into your cloud resource usage.
- Yotascale takes the shared resources and allocates them not just by tags in AWS but also by Kubernetes labels, splitting up the cost of a cluster based on the utilization metrics from the pod, which can then be allocated back to the specific team deploying them.
- Yotascale also shows your EC2 resources running on your Kubernetes clusters with a breakdown by pod, including the complete picture of the cost of service and application by an individual engineering team.
Yotascale is currently available with their Starter Package at $49K for six months. This package includes $25K worth of cloud consultation, unlimited AWS resources, support, premium onboarding, and training. You can sign up here.
Image source: https://www.g2.com/products/yotascale/reviews
In the table below, we've summarized five things people often ask about these products.
- Availability of a free option
- Provision of cloud infra costs along with k8s costs
- k8s costs breakdown (granular metrics)
- If alerts and thresholds can be set for easy admin
- If business metrics (teams, customers, COGS, etc.) are provided out of the box
|Free option||Granular metrics||Infra metrics ( storage, etc.)||Alerts and thresholds||Business metrics|
|Kubecost||Self-hosted OSS (OpenCost)||Yes. Node, network.||No||Yes||No|
|Anodot||No||Yes. API, network, resource, container.||Yes||Yes||Yes|
|Cast.ai||Free tier||Yes. Resource, cluster, workload, namespace.||No||No||No|
|Loft||Free self-hosted||Yes. Namespace, workload, resource.||No||No||No|
|Vantage||Free tier||Yes. Service, label, namespace, resource.||Yes||Yes||Yes|
|Yotascale||No||Yes. Namespace, pod, label, deployment.||Yes||Yes||Yes|
Kubernetes cost optimization tools can be hard to justify if it is not aligned with your cluster and resource usage. It happens because getting significant savings from these tools depends on choosing a tool with the right pricing model.
The typical pricing models for such cost optimization tools are subscription-based, percentage of savings, node-based pricing, and usage (metrics reported) based. These models can be seen in the products above.
Here are a few things to keep in mind while setting up the cost optimization tools:
- Before getting started, monitor your clusters to identify potential savings. You can do so with the Kubernetes dashboard, a free Cast.ai, or a Kubecost plan.
- Check if the cloud service provider’s monitoring is sufficient or if you require separate monitoring dashboards.
- Setting up Prometheus + Grafana or ELK Stack for cost monitoring is possible but takes time and effort to install and configure.
- It is essential to have team consensus before making the buying decision into FinOps tools. Using the same tool across all teams using Kubernetes makes your operations more manageable.
- Cutting back on automation and choosing the right amount for your cluster can help save money, especially if your cluster doesn’t need as much autoscaling, rebalancing, etc.
- You can save more by paying for longer terms on tools like CloudZero on demand & Anodot.
Continue reading with this article on Kubernetes practical considerations that goes beyond cost and talks about other essentials like developer experience and setup evolution.
With Argonaut, you can quickly deploy and manage your Kubernetes deployments in AWS or GCP. Moreover, you can also provision cloud infra, deploy, and manage all your apps from one place. Get started with Argonaut today!