Descheduler используется для перераспределения рабочей нагрузки между узлами кластера Kubernetes путём вытеснения подов. Descheduler периодически проверяет размещение подов в кластере Kubernetes и производит их вытеснение на менее загруженные узлы, используя набор преднастроенных стратегий. Для работы Descheduler нужно не менее трёх узлов в кластере Kubernetes.
начало внимание
Для Kubernetes-кластеров, развёрнутых на платформе Deckhouse, не требуется установка Descheduler. В этом случае используйте встроенный модуль.
конец внимание
Установка состоит из трёх этапов:
- Загрузка Helm-чарта и конфигурационного файла.
- Заполнение конфигурационного файла.
- Установка чарта Descheduler с помощью Helm в Kubernetes-кластер.
Шаг 1: Загрузка Helm-чарта и конфигурационного файла
Для установки через интернет получите конфигурационный файл values-descheduler.yaml
, выполнив команду:
helm repo add elma365 https://charts.elma365.tech
helm repo update
helm show values elma365/descheduler > values-descheduler.yaml
Получение конфигурационного файла для установки в закрытом контуре без доступа в интернет
helm repo add elma365 https://charts.elma365.tech Подробнее об этом читайте в статье «Загрузка образов ELMA365».
tar -xf descheduler-X.Y.Z.tgz |
Шаг 2: Заполнение конфигурационного файла
Заполните конфигурационный файл values-descheduler.yaml
для установки Descheduler.
Для этого настройте периодичность выполнения descheduler, установив нужный интервал в минутах для параметра descheduler.deschedulingInterval
. По умолчанию задан интервал в 2 минуты. Descheduler устанавливается в namespace kube-system
. Этот namespace
задан по умолчанию.
## Настройки descheduler (необходимо не менее 3 узлов в кластере)
descheduler:
## переопределить имя сервиса
fullnameOverride: descheduler
## запускать как CronJob или Deployment
kind: Deployment
## namespace для descheduler (перед установкой его необходимо создать kubectl create ns kube-system)
namespace: kube-system
## устанавливает время между последовательными исполнениями descheduler
deschedulingInterval: 2m
## селекторы для запуска на определенных узлах
nodeSelector: {}
...
Для подключения к приватному registry нужно:
## Настройки descheduler (необходимо не менее 3 узлов в кластере) где формат repository:
|
Шаг 3: Установка чарта Descheduler с помощью Helm в Kubernetes-кластер
Выполните установку чарта Descheduler в namespace kube-system
.
Для установки через интернет:
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 в namespace kube-system
, выполните команду:
helm uninstall descheduler -n kube-system