1
0
mirror of https://github.com/kubernetes-sigs/descheduler.git synced 2026-01-26 05:14:13 +01:00
Files
descheduler/charts/descheduler

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

Introduction

This chart bootstraps a descheduler 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

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
kind Use as CronJob or Deployment CronJob
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
imagePullSecrets Docker repository secrets []
nameOverride String to partially override descheduler.fullname template (will prepend the release name) ""
fullnameOverride String to fully override descheduler.fullname template ""
cronJobApiVersion CronJob API Group Version "batch/v1"
schedule The cron schedule to run the descheduler job on "*/2 * * * *"
startingDeadlineSeconds If set, configure startingDeadlineSeconds for the descheduler job nil
successfulJobsHistoryLimit If set, configure successfulJobsHistoryLimit for the descheduler job nil
failedJobsHistoryLimit If set, configure failedJobsHistoryLimit for the descheduler job nil
deschedulingInterval If using kind:Deployment, sets time between consecutive descheduler executions. 5m
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
resources Descheduler container CPU and memory requests/limits see values.yaml
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
nodeSelector Node selectors to run the descheduler cronjob on specific nodes nil
tolerations tolerations to run the descheduler cronjob on specific nodes nil
suspend Set spec.suspend in descheduler cronjob false