﻿# Установка KEDA

> [HTML Version](install-keda.html)

KEDA — это дополнительное средство автомасштабирования, управляемое событиями. KEDA позволяет расширить функциональные возможности автомасштабирования для приложения ELMA365. С помощью KEDA вы можете управлять масштабированием любого контейнера в Kubernetes в зависимости от количества событий, которые необходимо обработать.

Установка состоит из трёх этапов:

1. [Загрузка Helm-чарта и конфигурационного файла](#download-helm-chart-and-config-file).

2. [Заполнение конфигурационного файла](#fill-config-file).

3. [Установка чарта KEDA с помощью Helm в Kubernetes-кластер](#instal-keda-chart).

## Шаг 1. Загрузка Helm-чарта и конфигурационного файла

Для установки через интернет получите конфигурационный файл \[OBJECT\], выполнив команду:

````
helm repo add elma365 https://charts.elma365.tech  
helm repo update  
helm show values elma365/keda > values-keda.yaml

````
Получение конфигурационного файла для установки в закрытом контуре без доступа в интернет

1. На компьютере с доступом в интернет скачайте образы ELMA365 и загрузите их в локальный реестр образов, выполнив следующую команду:

````
helm repo add elma365 https://charts.elma365.tech  
helm repo update  
helm pull elma365/keda

````
Подробнее об этом читайте в статье [«Загрузка образов ELMA365»](downloadin-images-elma365.md).

2. Полученный архив чарта \[OBJECT\] скопируйте на сервер, где будет производиться установка.

3. Распакуйте этот чарт и скопируйте конфигурационный файл по умолчанию \[OBJECT\] в \[OBJECT\]: 

````
tar -xf keda-X.Y.Z.tgz  
cp keda/values.yaml values-keda.yaml
````

## ````
Шаг 2. Заполнение конфигурационного файла

Заполните конфигурационный файл \[OBJECT\] для установки сервиса KEDA.

При необходимости укажите \[OBJECT\], за которым должен следить KEDA (по умолчанию сервис KEDA отслеживает все \[OBJECT\]). Для этого в параметре \[OBJECT\] укажите \[OBJECT\], в котором установлено приложение.

Если нужно обеспечить высокую доступность, задайте количество реплик **3** в параметрах \[OBJECT\] и \[OBJECT\].

````
\# Настройки keda  
keda:  
  # количество реплик для обеспечения высокой доступности  
  operator:  
    replicaCount: 1  
  metricsServer:  
    replicaCount: 1  
  # namespace за которым должен следить KEDA  
  watchNamespace:  
    ""  
  # установка crds  
  crds:  
    install: true  
...

````
Заполнение параметров подключения к приватному registry для установки в закрытом контуре без доступа в интернет

  
Для подключения к приватному **registry** нужно:

1. Скачать образы ELMA365 и загрузить их в локальный реестр образов. Подробнее об этом читайте в статье [«Загрузка образов ELMA365»](downloadin-images-elma365.md).

2. Задать адрес и путь в параметрах \[OBJECT\] и \[OBJECT\].

3. Указать наименование секрета с правами доступа к приватному **registry** в параметре \[OBJECT\]. Секрет должен быть создан вручную и зашифрован в Base64.

````
\# Настройки keda  
keda:  
...  
  # Параметры подключения к приватному registry  
  image:  
    # адрес и путь для приватного registry  
    keda:  
      repository: registry.example.com/kedacore/keda  
    metricsApiServer:      
      repository: registry.example.com/kedacore/keda-metrics-apiserver  
  # секрет с правами доступа к приватному registry должен быть создан вручную, зашифрованный в Base64  
  imagePullSecrets:  
    - name: myRegistryKeySecretName

````
  
Где формат **repository**:

- адрес — \[OBJECT\]; 

- путь — \[OBJECT\] (для \[OBJECT\] — \[OBJECT\]).

## Шаг 3. Установка чарта KEDA с помощью Helm в Kubernetes-кластер

Перед установкой чарта keda в кластер Deckhouse выполните следующие действия:

1. Отключите модуль \[OBJECT\]:

````
kubectl -ti -n d8-system exec svc/deckhouse-leader -c deckhouse -- deckhouse-controller module disable prometheus-metrics-adapter

````
2. Установите \[OBJECT\]:

````
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml

````
3. Если на вашей площадке уже используется Kubernetes HPA, отключите либо удалите его в \[OBJECT\]. Чтобы удалить, выполните команду:

````
kubectl delete hpa --all -n elma365

````
После этого выполните установку чарта keda в отдельный \[OBJECT\], например, в \[OBJECT\]. Namespace будет создан во время установки, если не был создан ранее.

Для установки через интернет:

````
helm upgrade --install keda elma365/keda -f values-keda.yaml -n keda --create-namespace 

````
Для офлайн-установки без доступа в интернет перейдите в каталог с загруженным чартом и выполните команду:

````
helm upgrade --install keda ./keda -f values-keda.yaml -n keda --create-namespace

````
Обратите внимание:

1. Установка компонента дополнений KEDA автоматически не включает поддержку расширенного автомасштабирования на стороне приложения ELMA365.

2. После установки не забудьте изменить параметры приложения ELMA365 и настроить расширенное автомасштабирование на стороне приложения ELMA365.

Подробнее читайте в статье [«Включение автомасштабирования сервисов в ELMA365 Enterprise»](autoscaling-service-enterprise.md).

## Удалить чарт KEDA с помощью Helm в Kubernetes-кластере

````
Начало внимание

````
Перед удалением компонента дополнений KEDA перенастройте приложение ELMA365 на использование инструмента автомасштабирования HPA.

````
Конец внимание

````
Чтобы удалить чарт KEDA в \[OBJECT\], выполните команду:

````
helm uninstall keda -n keda
````