Skip to content

ideahitme/smart-autoscaler

Repository files navigation

[WIP] - Cluster Autoscaler for Kubernetes on AWS

Limitations and things to be improved

Flows

Scale up

  • Identify unschedulable pods
  • Get the nodes
  • Identify autoscaling groups
  • Kill necessary number of fake pods and put the pods in its place
  • Create new node by increasing autoscaling group size
  • Deploy fake (see below) pods else where

Scale down

  • Compute theoretical possibility of rescheduling pods elsewhere from least loaded node elsewhere (consider only worker nodes)
  • If yes drain the node
  • Terminate the instance
  • Observe the pods rescheduling
  • If rescheduling fails scale back up
  • This part needs additional thinking

Periods

Scale up check is frequent and runs every minute Scale down is rare and runs every 30 minutes

Fake pods

  • For now pods with hardcoded resource requests 500m cpu 100mb
  • Randomly distributed
  • Can be killed on demand and recreated on a new node

TODOs

  • Add exponential back off for sorter on expanding fail

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published