The Descheduler is used for redistributing workloads among the nodes of a Kubernetes cluster by evicting Pods. The Descheduler periodically checks the placement of Pods in the Kubernetes cluster and evicts them to less loaded nodes using a set of pre-configured strategies. For Descheduler to operate, a minimum of three nodes in the Kubernetes cluster is required.
начало внимание
For a Kubernetes clusters deployed on the Deckhouse platform, the installation of Descheduler is not required. In this case, use the built-in module.
конец внимание
The installation consists of three steps:
- Download the Helm chart and the configuration file.
- Fill out the configuration file.
- Install the Descheduler chart using helm in the Kubernetes cluster.
Step 1: Download the Helm chart and the configuration file
To install via the internet, obtain the configuration file values-descheduler.yaml
by executing the command:
helm repo add elma365 https://charts.elma365.tech
helm repo update
helm show values elma365/descheduler > values-descheduler.yaml
Obtaining the configuration file for installation in a closed loop without internet access
helm repo add elma365 https://charts.elma365.tech For more details, see Download BRIX images.
tar -xf descheduler-X.Y.Z.tgz |
Step 2: Fill out the configuration file
Fill out the configuration file values-descheduler.yaml
for the Descheduler installation.
For this purpose, configure the frequency of the Descheduler by setting the desired interval in minutes for the parameter descheduler.deschedulingInterval
. The default interval is set to 2 minutes. The Descheduler is installed in namespace kube-system
. This namespace
is set by default.
## Descheduler settings (at least 3 nodes in the cluster are required)
descheduler:
## override service name
fullnameOverride: descheduler
## run as a CronJob or Deployment
kind: Deployment
## namespace for descheduler (must be created before installation with kubectl create ns kube-system)
namespace: kube-system
## sets the time between consecutive executions of descheduler
deschedulingInterval: 2m
## selectors to run on specific nodes
nodeSelector: {}
...
To connect to a private registry, you need to:
## Descheduler settings (at least 3 nodes in the cluster are required) Where the repository format is as follows:
|
Step 3: Install the Descheduler chart using helm in the Kubernetes cluster
Install the Descheduler chart in namespace kube-system
.
For online installation:
helm upgrade --install descheduler elma365/descheduler -f values-descheduler.yaml -n kube-system
For offline installation without internet access, navigate to the directory with the downloaded chart and execute the command:
helm upgrade --install descheduler ./descheduler -f values-descheduler.yaml -n kube-system
Delete the Descheduler chart using helm in the Kubernetes cluster
To delete the Descheduler chart in namespace kube-system
, execute the command:
helm uninstall descheduler -n kube-system