Intelligent Pod Placement

Overview

In Kubernetes, certain pods are unevictable - they can’t be rescheduled due to constraints like local volumes, Pod Disruption Budgets, or special annotations. These pods create cluster fragmentation, blocking autoscalers from scaling down and causing compute waste.

Komodor’s Intelligent Pod Placement solves this by:

  • Automatically detecting unevictable pods
  • Softly grouping them onto dedicated nodes
  • Freeing up other nodes for autoscaling

Intelligent Pod Placement helps reduce compute waste by intelligently grouping unevictable pods, enabling autoscalers to scale down idle nodes. It’s safe, automatic, and auditable - unlocking savings that traditional rightsizing can’t achieve alone.

This feature requires no manual changes (apart from upgrading the agent version and opting into the feature) and is powered by Komodor’s Admission Controller - providing safety, transparency, and automated savings.

What Are Unevictable Pods?

Unevictable pods are workloads that:

  • Use local storage (emptyDir, hostPath, local PV)
  • Are protected by PodDisruptionBudgets with disruptionsAllowed = 0
  • Have labels preventing scale-down, such as:
    • cluster-autoscaler.kubernetes.io/safe-to-evict: "false"
    • karpenter.sh/do-not-evict: "true"
    • etc.
  • Uncontrolled Pods

These pods block scale-down even if the rest of the node is underutilized.

How Komodor Solves It

Intelligent Bin Packing for Unevictable Workloads

Komodor introduces a lightweight admission controller that:

  1. Detects unevictable pods at creation time
  2. Adds soft node affinity rules to place them on already-labeled unevictable nodes
  3. Label the hosting nodes with komodor.com/unevictable=true, komodor.com/unevictable-scheduling-priority=<low/medium/high>. The priority is decided based on the number of unevictable Pods on the node.
  4. Reconcile this mapping regularly to adapt as pods move or terminate

Result: Unevictable pods are grouped together, freeing the rest of the cluster for scale-down and flexible workloads.

 

Intelligent Pod Placement Dashboard

The Intelligent Pod Placement Dashboard in Komodor shows the savings status - what was already saved using the smart bin-packing, as well as what can be additionally saved from clusters without the feature enabled.

Metric Description
Enabled Clusters Which clusters have the capability turned on
Nodes Count Number of nodes in the cluster
CPU/Memory recommendations How much resources Komodor detected that can be saved after intelligently simulating unevictable pods bin-packing
Unevictable pods % of unevictable pods out of the total pods in the cluster 
Potential Savings ($) Projected cost if the autoscaler could remove blocked nodes
Placed Unevictable Pods Unevictable pods that Komodor has successfully grouped
Active Savings ($) Estimated monthly savings achieved from actual blocked node reductions

 

Savings Calculation

Komodor runs daily simulations per node pool to estimate bin packing opportunities:

  • Potential Savings: Based on underutilized nodes running unevictable pods that could be consolidated
  • Active Savings: Estimated monthly savings achieved from actual blocked node reductions

Safety & Guardrails

  • Pod affinity is soft (preferredDuringSchedulingIgnoredDuringExecution)
  • If affinity cannot be applied, pods are scheduled normally
  • Komodor does not override existing affinity or taints
  • Node labeling merges with existing labels
  • DaemonSets are ignored to avoid noise
     

Enabling the Feature

You can enable Intelligent Pod Placement per cluster:

  1. Go to the Smart Pod Placement page
  2. Enable the feature for the desired clusters
  3. Review projected savings and handled pods
     

Only users with manage_cost_policies permission can configure this setting. 
All changes are audited.

Was this article helpful?

0 out of 0 found this helpful

Comments

0 comments

Please sign in to leave a comment.