Descheduler for Kubernetes
Descheduler for Kubernetes is used to rebalance clusters by evicting pods that can potentially be scheduled on better nodes. In the current implementation, descheduler does not schedule replacement of evicted pods but relies on the default scheduler for that.
TL;DR:
helm repo add descheduler https://kubernetes-sigs.github.io/descheduler/
helm install my-release --namespace kube-system descheduler/descheduler-helm-chart
Introduction
This chart bootstraps a desheduler cron job on a Kubernetes cluster using the Helm package manager.
Prerequisites
- Kubernetes 1.14+
Installing the Chart
To install the chart with the release name my-release:
helm install --namespace kube-system my-release descheduler/descheduler-helm-chart
The command deploys descheduler on the Kubernetes cluster in the default configuration. The configuration section lists the parameters that can be configured during installation.
Tip
: List all releases using
helm list
Uninstalling the Chart
To uninstall/delete the my-release deployment:
helm delete my-release
The command removes all the Kubernetes components associated with the chart and deletes the release.
Configuration
The following table lists the configurable parameters of the descheduler chart and their default values.
| Parameter | Description | Default |
|---|---|---|
image.repository |
Docker repository to use | k8s.gcr.io/descheduler/descheduler |
image.tag |
Docker tag to use | v[chart appVersion] |
image.pullPolicy |
Docker image pull policy | IfNotPresent |
nameOverride |
String to partially override descheduler.fullname template (will prepend the release name) |
"" |
fullnameOverride |
String to fully override descheduler.fullname template |
"" |
schedule |
The cron schedule to run the descheduler job on | "*/2 * * * *" |
cmdOptions |
The options to pass to the descheduler command | see values.yaml |
deschedulerPolicy.strategies |
The descheduler strategies to apply | see values.yaml |
priorityClassName |
The name of the priority class to add to pods | system-cluster-critical |
rbac.create |
If true, create & use RBAC resources |
true |
podSecurityPolicy.create |
If true, create PodSecurityPolicy |
true |
serviceAccount.create |
If true, create a service account for the cron job |
true |
serviceAccount.name |
The name of the service account to use, if not set and create is true a name is generated using the fullname template | nil |