﻿# Установка Descheduler 

> [HTML Version](install-descheduler.html)

Descheduler используется для перераспределения рабочей нагрузки между узлами кластера Kubernetes путём вытеснения подов. Descheduler периодически проверяет размещение подов в кластере Kubernetes и производит их вытеснение на менее загруженные узлы, используя набор преднастроенных стратегий. Для работы Descheduler нужно не менее трёх узлов в кластере Kubernetes.

````
начало внимание 

````
Для Kubernetes-кластеров, развёрнутых на платформе Deckhouse, не требуется установка Descheduler. В этом случае используйте встроенный [модуль](https://deckhouse.ru/documentation/v1/modules/400-descheduler/). 

````
конец внимание 

````
Установка состоит из трёх этапов:

1. [Загрузка Helm-чарта и конфигурационного файла](#download-helm-chart-and-config-file). 

2. [Заполнение конфигурационного файла](#fill-config-file). 

3. [Установка чарта Descheduler с помощью Helm в Kubernetes-кластер](#install-chart-descheduler).

## Шаг 1. Загрузка Helm-чарта и конфигурационного файла

Для установки через интернет получите конфигурационный файл \[OBJECT\], выполнив команду:

````
helm repo add elma365 https://charts.elma365.tech  
helm repo update  
helm show values elma365/descheduler > values-descheduler.yaml

````
Получение конфигурационного файла для установки в закрытом контуре без доступа в интернет

1. На компьютере с доступом в интернет скачайте образы ELMA365 и загрузите их в локальный реестр образов, выполнив следующую команду:

````
helm repo add elma365 https://charts.elma365.tech  
helm repo update  
helm pull elma365/descheduler

````
Подробнее об этом читайте в статье [«Загрузка образов ELMA365»](downloadin-images-elma365.md).

2. Полученный архив чарта \[OBJECT\] скопируйте на сервер, где будет производиться установка.

3. Распакуйте этот чарт и скопируйте конфигурационный файл по умолчанию \[OBJECT\] в \[OBJECT\]: 

````
tar -xf descheduler-X.Y.Z.tgz  
cp descheduler/values.yaml values-descheduler.yaml
````

## ````
Шаг 2. Заполнение конфигурационного файла

Заполните конфигурационный файл \[OBJECT\] для установки Descheduler.

Для этого настройте периодичность выполнения descheduler, установив нужный интервал в минутах для параметра \[OBJECT\]. По умолчанию задан интервал в 2 минуты. Descheduler устанавливается в \[OBJECT\]. Этот \[OBJECT\] задан по умолчанию.

````
\# Настройки descheduler (необходимо не менее 3 узлов в кластере)  
descheduler:  
  # переопределить имя сервиса  
  fullnameOverride: descheduler  
  # запускать как CronJob или Deployment  
  kind: Deployment  
  # namespace для descheduler (перед установкой его необходимо создать kubectl create ns kube-system)  
  namespace: kube-system  
  # устанавливает время между последовательными исполнениями descheduler  
  deschedulingInterval: 2m  
  # селекторы для запуска на определенных узлах  
  nodeSelector: \{\}  
...

````
Заполнение параметров подключения к приватному registry для установки в закрытом контуре без доступа в интернет

  
Для подключения к приватному **registry** нужно: 

1. Скачать образы ELMA365 и загрузить их в локальный реестр образов. Подробнее об этом читайте в статье [«Загрузка образов ELMA365»](downloadin-images-elma365.md).

2. Задать адрес и путь для параметра \[OBJECT\].

3. Указать наименование секрета с правами доступа к приватному **registry** в параметре \[OBJECT\]. Секрет должен быть создан вручную и зашифрован в Base64.

````
\# Настройки descheduler (необходимо не менее 3 узлов в кластере)  
descheduler:  
...  
  # Параметры подключения к приватному registry  
  image:  
    # адрес и путь для приватного registry  
    repository: registry.example.com/descheduler/descheduler  
  # секрет с правами доступа к приватному registry должен быть создан вручную, зашифрованный в Base64  
  imagePullSecrets:  
    - myRegistryKeySecretName

````
  
Где формат **repository**:

- адрес — \[OBJECT\]; 

- путь — \[OBJECT\]. 

## Шаг 3. Установка чарта Descheduler с помощью Helm в Kubernetes-кластер 

Выполните установку чарта Descheduler в \[OBJECT\].

Для установки через интернет:

````
helm upgrade --install descheduler elma365/descheduler -f values-descheduler.yaml -n kube-system 

````
Для офлайн-установки без доступа в интернет перейдите в каталог с загруженным чартом и выполните команду:

````
helm upgrade --install descheduler ./descheduler -f values-descheduler.yaml -n kube-system

## ````
Удалить чарт Descheduler с помощью Helm в Kubernetes-кластере

Чтобы удалить чарт Descheduler в \[OBJECT\], выполните команду:

````
helm uninstall descheduler -n kube-system 
````