The Kubernetes Resource Optimization Advisor (k8s-roa) is a tool designed to help optimize the resource allocation for Kubernetes workloads. By analyzing the actual usage patterns of CPU, memory, and other resources, the tool provides recommendations for adjusting resource requests and limits, thereby improving cluster efficiency and reducing costs.
A typical use case could involve a web application running in a Kubernetes cluster. The Optimization Advisor would continuously monitor the CPU and memory usage of the application's pods. If it detects that certain pods consistently use less CPU than requested, it would recommend lowering the CPU request, freeing up cluster resources for other workloads. Conversely, if it detects that a pod frequently hits its memory limit, it would recommend increasing the memory limit to prevent performance degradation or crashes. Additionally k8s-roa can constantly monitor the resource utilization on your nodes and recommend amount of nodes based of current load and historical trends. By implementing the Kubernetes Resource Optimization Advisor, you can achieve a more efficient and cost-effective deployment, ensuring that your Kubernetes workloads run smoothly and are well-provisioned.
- collecting usage resources data from Nodes and Pods
- saving data to Prometheus
- reports & recommendations for adjusting resource requests and limits based on usage patterns
- unit tests
- visualization usage and recommendations
- helm chart
- high resources utilization alerts
- machine learning model to predict future resource needs
- integration with HPA (based on custom metrics)