CNCF in association with the FinOps foundation recently published a landmark report identifying improved Kubernetes cost visibility as a primary means of reducing K8s cost. According to the report “...most (companies) can reduce those (K8s) expenses with a more granular and active Kubernetes cost-monitoring strategy.”
So what does the CNCF mean by a “more granular and active Kubernetes cost-monitoring strategy” and how can you deploy one at your company?
In this article we will quickly outline the contours of just such a strategy. However, before we do that, let’s take a look at some major takeaways from the report.
Around 68% of respondents to the CNCF survey indicated an increase in Kubernetes-related costs. 36% registered a cost spike in excess of 20%.
One reason for this is the growing Kubernetes footprint as organisations containerise more applications and deploy them to Kubernetes. However, the report also indicates another reason for increasing costs: the lack of real-time cost visibility into Kubernetes environments and the absence of tooling that can help flag cost inefficiencies.
The report is based on responses from the global cloud-native community, with around half representing companies with more than 500 employees and 30% with more than 5000 employees. On the surface this gives the report an obvious enterprise tilt.
However, employees at startups with less than $10,000 in monthly Kubernetes costs make up 35% of respondents. This points to the fact that concerns over Kubernetes cost are not limited to organizations with higher head-counts and larger infrastructure footprints.
Add to this the 20% increase in Kubernetes-related costs over the past year, that was indicated by 36% of respondents and it becomes clear that Kubernetes cost is quickly floating to the top of IT teams at both scale-ups and startups.
Around a quarter of respondents (24%) do not monitor Kubernetes cost at all. 44% rely on ad-hoc monthly estimates. Only a combined 27% have accurate chargeback or showback mechanisms in place.
The lack of a granular cost monitoring setup from the get-go can lead to aborted attempts at Kubernetes adoption at a majority of organizations. Even if organizations push through the initial opaqueness Kubernetes bills will only grow larger as more applications are ported over.
Without a comprehensive cost monitoring setup, Kubernetes teams leave a lot of cost optimization potential on the table, in the shape of abandoned, orphaned or over provisioned resources.
Now that we have outlined some of the major takeaways from the CNCF FinOps report, let’s review some aspects of a Kubernetes cost monitoring strategy. As part of this review we will outline core capabilities that need to be a part of a Kubernetes cost monitoring strategy.
Native Kubernetes artefacts include clusters, namespaces, pods and everything in-between. Kubernetes environments can reside on multiple underlying infrastructure layers, from public cloud providers to private cloud and bare-metal. Most enterprise environments also leverage multiple out-of-cluster resources in the shape of public cloud third-party external services. Building out cost visibility will entail co-relating the costs of the underlying infrastructure to Kubernetes artefacts as well as integrating the costs for out-of-cluster resources.
Costs per cluster, namespace or pod will enable platform architects or DevOps teams to readily answer cost-related questions from finance or management.
Enterprises typically have more nuanced cost visibility requirements - where they need to figure out the costs of individual teams, business units, projects or environments. These organizational groupings can vary a great deal based on the requirements and internal make-up of an enterprise.
Whatever these groupings turn out to be, building out a Kubernetes cost monitoring strategy requires that platform architects adopt tooling that can help them allocate costs to these organizational groupings.
Once the foundations of a cost monitoring setup have been laid-down, the next step is flagging and resolving cost in-efficiencies. As is apparent from the CNCF report, Kubernetes environments tend to be highly over-provisioned leading to significant resource wastage and cost inefficiencies.
Flagging this resource wastage and pro-actively rightsizing Kubernetes artefacts, can lead to significant cost savings. Building out this functionality is therefore a core capability that should be a part of any Kubernetes cost monitoring setup.
Dynamic, self service environments like Kubernetes and the underlying cloud infrastructure it is deployed on, frequently result in significant cost spikes. These spikes can be perfectly justifiable as the result of increased infrastructure usage due to a seasonal spike in traffic or a new feature launch. They can also be the result of a configuration mistake from a developer.
Whichever the case, identifying and resolving these cost anomalies needs to be a part of a Kubernetes cost-monitoring setup and will enable platform architects team leads to make pro-active cost control interventions.
Budgeting and forecasting is another core capability that should be a part of a granular cost monitoring setup as identified by the CNCF report. The ability to assign budgets to teams or projects consuming parts of a Kubernetes cluster should be a baseline requirement. This capability can then be complimented by the ability to generate alerts for budget overruns as well as cost and usage forecasts.
In this blog post we identified some of the core takeaways from the recent CNCF Kubernetes FinOps report. The report identifies increasing Kubernetes costs as the result of both a growing Kubernetes footprint inside organizations as well as the absence of a comprehensive cost monitoring setup. Most organizations lack a cost monitoring setup for Kubernetes which places them at a disadvantage and leaves significant cost cutting opportunities on the table.
We also outlined the contours of a cost monitoring setup for Kubernetes environments which would allow organizations to improve cost visibility and have more control over Kubernetes costs.
Replex combines all these capabilities into one intuitive solution that provides all-encompassing cost visibility for Kubernetes environments from clusters right down to pods, allows admins to create and monitor budgets, generate alerts for cost spikes, aggregate and allocate costs for custom organizational groupings like teams and projects and identify opportunities for cost cutting.
Interested in taking Replex out for a spin?
Fan of all things cloud, containers and micro-services!
Part 4 of our Introduction to FinOps for Kubernetes: Challenges and Best Practices article series, which outlines a comprehensive list of best practices aimed at implementing FinOps processes for cloud native Kubernetes environments.
August 26, 2021
5 min read
Part 3 of our Introduction to FinOps for Kubernetes: Challenges and Best Practices article series, which outlines a comprehensive list of best practices aimed at implementing FinOps processes for cloud native Kubernetes environments.
July 12, 2021
5 min read