autoscaler/cluster-autoscaler
Marcin Wielgus 1374af2b79 Merge pull request #322 from sethpollack/gpu
AWS Scaling from/to 0, extract GPU information
2017-09-12 12:47:30 +02:00
..
Godeps Godeps update for CA 2017-09-08 14:56:39 +02:00
cloudprovider fix formatting 2017-09-10 12:39:09 -04:00
clusterstate Log event on scale-up timeout 2017-09-01 14:19:14 +02:00
config Change from deprecated Core to CoreV1 for kube client 2017-09-04 22:16:21 +03:00
core Remove nodes that are not in the cluster from unremovableNodes 2017-09-11 20:01:02 +02:00
deploy
estimator Small optimize code 2017-09-04 23:50:45 +03:00
expander
metrics
proposals Small optimize code 2017-09-04 23:50:45 +03:00
simulator Merge pull request #310 from krzysztof-jastrzebski/core-test 2017-09-07 17:15:58 +05:30
utils implement blocking scale up beyond max cores & memory 2017-09-08 12:50:00 +02:00
vendor Add Sirupsen 2017-09-08 14:56:46 +02:00
.gitignore
Dockerfile
FAQ.md Describe scale down disabled annotation in Cluster Autoscaler FAQ 2017-09-07 15:31:08 +02:00
Makefile Test-in-docker in CA Makefile 2017-09-05 11:47:01 +02:00
OWNERS
README.md
fix_gopath.sh
main.go implement blocking scale up beyond max cores & memory 2017-09-08 12:50:00 +02:00
run.sh
update_toc.py
version.go Bump cluster autoscaler to 0.7.0-alpha3 2017-09-08 15:34:34 +02:00

README.md

Cluster Autoscaler

Introduction

Cluster Autoscaler is a tool that automatically adjusts the size of the Kubernetes cluster when:

  • there are pods that failed to run in the cluster due to insufficient resources.
  • some nodes in the cluster are so underutilized, for an extended period of time, that they can be deleted and their pods will be easily placed on some other, existing nodes.

FAQ/Documentation

Is available HERE.

Releases

We strongly recommend using Cluster Autoscaler with version for which it was meant. We don't do ANY cross version testing so if you put the newest Cluster Autoscaler on an old cluster there is a big chance that it won't work as expected.

Kubernetes Version CA Version
1.7.X 0.6.X
1.6.X 0.5.X, 0.6.X*
1.5.X 0.4.X
1.4.X 0.3.X

*Cluster Autoscaler 0.5.X is the official version shipped with k8s 1.6. We've done some basic tests using k8s 1.6 / CA 0.6 and we're not aware of any problems with this setup. However, CA internally simulates k8s scheduler and using different versions of scheduler code can lead to subtle issues.

Notable changes

CA Version 0.6:

CA Version 0.5.4:

  • Fixes problems with node drain when pods are ignoring SIGTERM.

CA Version 0.5.3:

CA Version 0.5.2:

CA Version 0.5.1:

CA Version 0.5:

  • CA continues to operate even if some nodes are unready and is able to scale-down them.
  • CA exports its status to kube-system/cluster-autoscaler-status config map.
  • CA respects PodDisruptionBudgets.
  • Azure support.
  • Alpha support for dynamic config changes.
  • Multiple expanders to decide which node group to scale up.

CA Version 0.4:

  • Bulk empty node deletions.
  • Better scale-up estimator based on binpacking.
  • Improved logging.

CA Version 0.3:

  • AWS support.
  • Performance improvements around scale down.

Deployment

Cluster Autoscaler runs on the Kubernetes master node (at least in the default setup on GCE and GKE). It is possible to run customized Cluster Autoscaler inside of the cluster but then extra care needs to be taken to ensure that Cluster Autoscaler is up and running. User can put it into kube-system namespace (Cluster Autoscaler doesn't scale down node with non-manifest based kube-system pods running on them) and mark with scheduler.alpha.kubernetes.io/critical-pod annotation (so that the rescheduler, if enabled, will kill other pods to make space for it to run).

Right now it is possible to run Cluster Autoscaler on: