Skip to content
Branch: master
Find file History
kimxogus and k8s-ci-robot enabled option for default priority class (#12359)
Signed-off-by: Taehyun Kim <kgyoo8232@gmail.com>
Latest commit e9d3614 Mar 19, 2019

README.md

Cluster overprovisioner

This chart provide a buffer for cluster autoscaling to allow overprovisioning of cluster nodes. This is desired when you have work loads that need to scale up quickly without waiting for the new cluster nodes to be created and join the cluster.

It works but creating a deployment that creates pods of a lower than default PriorityClass. These pods request resources from the cluster but don't actually consume any resources. These pods are then evicted allowing other normal pods are created while also triggering a scale-up by the cluster-autoscaler.

This approach is the current recommended method to achieve overprovisioning.

Prerequisites

  • Kubernetes 1.11+ with Beta APIs enabled or 1.8-1.10 with alpha APIs enabled
  • Configure the cluster-autoscaler for your k8s version. Usually just add extraArgs.expendable-pods-priority-cutoff=-10 setting.

Installing the Chart

To install the chart with the release name my-release and default configuration:

$ helm install --name my-release stable/cluster-overprovisioner

Uninstalling the Chart

To delete the chart:

$ helm delete my-release

Configuration

Some thought or experimentation is required to set deployment.resources and deployment.replicaCount correctly. Aspects such as cluster size, costs and size of buffer required should be considered.

The following table lists the configurable parameters for this chart and their default values.

Parameter Description Default
priorityClassOverprovision.name Name of the overprovision priorityClass overprovision
priorityClassOverprovision.value Priority value of the overprovision priorityClass -1
priorityClassDefault.enabled If true, enable default priorityClass true
priorityClassDefault.name Name of the default priorityClass default
priorityClassDefault.value Priority value of the default priorityClass 0
replicaCount Number of replicas 1
resources Resources for the overprovision pods {}
image.repository Image repository k8s.gcr.io/pause
image.tag Image tag 3.1
image.pullPolicy Container pull policy IfNotPresent
affinity Map of node/pod affinities {}
nodeSelector Node labels for pod assignment {}
annotations Optional deployment annotations {}
fullnameOverride Override the fullname of the chart nil
nameOverride Override the name of the chart nil
tolerations Optional deployment tolerations []

Specify each parameter using the --set key=value[,key=value] argument to helm install or provide a YAML file containing the values for the above parameters:

$ helm install --name my-release stable/cluster-overprovisioner --values values.yaml
You can’t perform that action at this time.