Skip to content

Introducing CruiseKube - Runtime Resource Optimization for Kubernetes

CruiseKube Logo

Today, we’re excited to announce the release of CruiseKube - a runtime resource optimization engine for Kubernetes that continuously right-sizes pods without restarts, unlocking significant cost efficiency gains while preserving reliability.

What is CruiseKube?

CruiseKube is a Kubernetes-native, continuous resource optimization system that autonomously right-sizes CPU and memory for workloads at runtime and admission time. It focuses on eliminating persistent over-provisioning while preserving workload reliability and scheduling constraints.

Unlike static requests, manual tuning, or reactive autoscaling, CruiseKube operates as a closed-loop control system that observes real workload behavior and incrementally converges resource requests toward optimal values.

When do you need CruiseKube?

You would need CruiseKube if you are facing any of these issues -

  • Chronic over-provisioning driven by guesswork, peak-based sizing, and fear of CPU throttling or OOM crashes
  • Cost inefficiency that node-level bin packing as provided by autoscalers (Cluster Autoscaler/Karpenter) alone cannot fix
  • Operational Load arising from manual tuning of workloads on Kubernetes by developers or DevOps teams

CruiseKube explicitly addresses the pod-level right-sizing problem, in a fully hands-off manner.

How does it work?

CruiseKube Architecture

At a high level, CruiseKube has the following components -

  • Statistics Engine: Fetches real-time CPU and memory usage at pod and node level from Prometheus and stores them in a database
  • Runtime Optimizer: Continuously optimizes pod-level resources for running pods across the cluster. It leverages the statistics generated by the statistics engine to generate recommendations per pod
  • Admission Optimizer: Intercepts new pod creations and optimizes the resources of the pod before it is scheduled. This provides a safety net to ensure that the pod is scheduled on a node with sufficient capacity.

Together, these components allow CruiseKube to take ownership of the resource assignment process for pods, ensuring that the pods are always running with the optimal resources.

Why is it different?

CruiseKube is different from other resource optimization tools in the following ways -

  • Changes are done at pod-level, rather than workload level, thus avoiding the need to restart pods
  • Utilizes PSI adjusted usage to take CPU contention into account for CPU optimization
  • Takes OOM into account for memory optimization and reacts to OOM kills in real-time to improve reliability
  • Optimizes across pods on the same node by sharing resources between all pods, thus improving the node level resource utilization
  • Provides an interface to the user to configure priorities and other controls for the optimization process

Getting Started

Getting started with CruiseKube is as simple as installing the cruisekube helm chart with appropriate values. Please follow the installation guide to get started.

What's next?

By open-sourcing CruiseKube, we are pushing the boundaries of what is possible with Kubernetes resource optimization. Do get involved in the community by joining our Discord server and sharing your feedback and ideas.

Please provide your feedback and ideas on the GitHub Discussions page or by opening an issue on the GitHub Issues page.