Setting appropriate resource requests and limits for Kubernetes containers is critical for ensuring application performance. But without the ability to map requests and limits against container usage, application developers and cloud operations managers are left in the dark, wondering if their containerized workloads are at risk for shutting down at any moment, or on the flip side, reserving capacity that is going unused and thus wasting precious budget.
Setting requests juuuust right.
Setting appropriate capacity requests for Kubernetes containers help ensure the optimal balance of performance and cost.
If set too low… your Kubernetes pod may not run properly. It may be throttled as other pods consume the available node resources, or even evicted from the node / terminated if other pods with appropriate requests are given priority.
If set too high… your Kubernetes pod will reserve node capacity that it will not use. This reserved capacity amounts to resource waste, driving cost without adding value.
See K8 Usage, Requests, Limits in VMware Aria Cost powered by CloudHealth
A few months ago, VMware Aria Cost powered by CloudHealth (formerly CloudHealth) released a set of Kubernetes usage reports that show businesses how much CPU/Memory (i.e., capacity) their Kubernetes-based workloads are consuming in relation to the CPU/Memory requests and limits set by the application developer. FinOps teams, CCoE managers, or other centralized cloud management teams can look at our container usage reports to identify clusters that are underutilizing or overutilizing capacity (CPU/Memory). They can identify the owner of each cluster and instruct them to adjust the Requests and Limits to meet the needs of the container.
Introducing Kubernetes Request Rightsizing Recommendations
This week, VMware Aria Cost powered by CloudHealth is excited to share our latest release for Kubernetes optimization: Kubernetes Request Rightsizing. This feature leverages our new rightsizing framework and adds to the capabilities delivered with our container usage reports.
Challenge with Kubernetes Rightsizing
Rightsizing resources used in the CI/CD pipeline has long been a proven strategy for optimizing overall cost. When workloads are added, scaled up or down, or removed, the environment must be re-evaluated for optimal resource requirements. Rightsizing quickly becomes a time-consuming activity that can cost more to manage than is ultimately saved. This problem can be compounded in a Kubernetes environment, with ephemeral compute constructs.
Dictionary definition: ephemeral – lasting for a very short time.
Ephemeral compute constructs such as Kubernetes pods, can be destroyed or recycled once the workload has completed. This results in resources being terminated and new resources being spun up in rapid succession, infinitely. All this change in the environment creates a lot of opportunity for rightsizing, but the sheer volume can be difficult to manage.
Solution: Request Recommendations
VMware Aria Cost powered by CloudHealth’s tunable rightsizing recommendations make it much faster and easier to optimize resource usage, eliminating waste in the environment and thus, reducing cloud spend. VMware Aria Cost powered by CloudHealth collects container usage data and analyzes CPU and Memory usage against the Requests for CPU and Memory set by the developer. VMware Aria Cost then delivers recommendations for adjusting the CPU and Memory Requests for each container.
Request-based Rightsizing Recommendations help application developers determine appropriate requests for their containers by recommending a range based on past usage and custom efficiency targets. Application developers can go to our rightsizing recommendations engine where they see a subset of clusters that they have permission for (according to FlexOrgs).
- Custom Efficiency Targets – Users can customize these recommendations by setting specific targets for CPU and Memory. Users can choose to use CPU/Memory Averages or Maxes and set a desired range from 1% to 120% for each metric.
- Filtering – Users can filter by cluster, namespace, or workload to drill down and look at a sub-set of resources.
- FlexOrgs aware – Kubernetes Request-based Rightsizing Recommendations work with FlexOrgs, so users in sub-OUs will only see and act on clusters that they have permission for.
Being familiar with each container, application developers can determine the appropriate Request within the recommended range.
Drive Cost Savings with Request Optimization
As application owners lower Request thresholds to meet workload needs, fewer compute nodes will need to be provisioned. This is how we can use usage data to drive down cloud costs. The result of request rightsizing is a cost-optimized environment that is continuously monitored, proactively managed, and rebalanced as necessary while meeting the capacity, performance and governance needs of your business applications and software.
If you’d like to learn more about Kubernetes cost allocation and usage optimization with VMware Aria Cost powered by CloudHealth, check out our white paper: FinOps for Kubernetes.