ELMA365 On-Premises > ELMA365 On-Premises Enterprise > Установка дополнений для приложения ELMA365 / Установка Linkerd 

Установка Linkerd

Linkerd — это выделенный уровень инфраструктуры, который помогает обрабатывать связь между сервисами, автоматически шифровать соединения, обрабатывать повторные запросы и тайм-ауты. Установка компонента дополнений Linkerd позволяет обеспечить балансировку gRPC-трафика при масштабировании сервисов ELMA365. Также он предоставляет использование телеметрии (коэффициент успешности, задержки) и многое другое.

Linkerd является необходимым компонентом для включения поддержки масштабирования сервисов на стороне приложения ELMA365. Без установленного Linkerd масштабирование микросервисов ELMA365 работать не будет.

Про установку Linkerd с помощью инструмента Cert-manager, читайте в статье «Установка Linkerd с помощью Cert-manager».

В этой статье рассмотрим, как:

  • подготовить сертификаты с помощью openssl для Linkerd и установить его;

Установка Linkerd состоит из четырёх этапов:

  1. Подготовить сертификаты для Linkerd.
  2. Загрузить Helm-чарт и конфигурационный файл.
  3. Заполнить конфигурационный файл.
  4. Установить чарт Linkerd с помощью Helm в Kubernetes-кластер.

Шаг 1: Подготовить сертификаты для Linkerd

Сгенерируйте сертификаты с помощью openssl, выполнив команды ниже. Linkerd нужен сертификат привязки доверия и сертификаты эмитента с соответствующим ключом для поддержки взаимных TLS-соединений между сервисами. Для всех сертификатов требуется алгоритм ECDSA P-256.

# Создать закрытый ключ CA
openssl ecparam -name prime256v1 -genkey -noout -out ca-private.pem
# Создать открытый ключ CA
openssl ec -in ca-private.pem -pubout -out ca-public.pem
# Создать самоподписанный сертификат CA
openssl req -x509 -new -key ca-private.pem -days 3650 -out ca.crt -subj "/CN=root.linkerd.cluster.local"
# Создать закрытый ключ эмитента
openssl ecparam -name prime256v1 -genkey -noout -out issuer-private.pem
# Создать открытый ключ эмитента
openssl ec -in issuer-private.pem -pubout -out issuer-public.pem
# Создать запрос на подпись сертификата
openssl req -new -key issuer-private.pem -out issuer.csr -subj "/CN=identity.linkerd.cluster.local" -addext basicConstraints=critical,CA:TRUE
# Создать сертификат эмитента, подписав запрос
openssl x509 \
-extfile /etc/ssl/openssl.cnf \
-extensions v3_ca \
-req \
-in issuer.csr \
-days 3650 \
-CA ca.crt \
-CAkey ca-private.pem \
-CAcreateserial \
-extensions v3_ca \
-out issuer.crt
# Удалить запрос на подпись сертификата
rm issuer.csr

Шаг 2: Загрузить Helm-чарт и конфигурационный файл

Для установки через интернет получите конфигурационный файл values-linkerd.yaml, выполнив команду:

helm repo add elma365 https://charts.elma365.tech
helm repo update
helm show values elma365/linkerd > values-linkerd.yaml

Получение конфигурационного файла для установки в закрытом контуре без доступа в интернет

Шаг 3: Заполнить конфигурационный файл

В конфигурационном файле values-linkerd.yaml заполните следующие параметры для установки Linkerd:

  1. Укажите DNS‑имя домена Kubernetes‑кластера в параметре linkerd.clusterDomain, в данном случае — cluster.local.

## Настройки linkerd
linkerd:
  ## DNS-имя домена Kubernetes
  clusterDomain: cluster.local
  ## добавляет ресурс PodSecurityPolicy (устарело начиная с версии k8s v1.21)
  enablePSP: false
  ## отключить heartbeat
  disableHeartBeat: false  
...

  1. Для обеспечения высокой доступности вы можете раскомментировать параметры секции Параметры для обеспечения высокой доступности.

Пример включения высокой доступности

  1. Если вы установили средства мониторинга, укажите параметр для сбора метрик Linkerd:

## Параметр подключения сбора метрик
podMonitor:
  enabled: true

  1. Если вы устанавливаете Linkerd в закрытом контуре без доступа в интернет, заполните параметры подключения к приватному registry.

Пример заполнения параметров подключения к приватному registry

Шаг 4: Установить чарт Linkerd с помощью Helm в Kubernetes-кластер

Выполните установку чарта Linkerd в namespace linkerd. Namespace будет создан во время установки, если не был создан ранее.

В рамках статьи, команда установки выполняется из директории, где на шаге 1 были созданы сертификаты. Если выполнение команды происходит из другой директории, укажите пути до созданых на шаге 1 сертификатов (ca.crt, issuer.crt, issuer-private.pem).

Для установки через интернет:

helm upgrade --install linkerd elma365/linkerd -f values-linkerd.yaml -n linkerd --create-namespace \
--set-file linkerd.identityTrustAnchorsPEM=ca.crt \
--set-file linkerd.identity.issuer.tls.crtPEM=issuer.crt \
--set-file linkerd.identity.issuer.tls.keyPEM=issuer-private.pem

Для офлайн-установки без доступа в интернет:

helm upgrade --install linkerd ./linkerd -f values-linkerd.yaml -n linkerd --create-namespace \
--set-file linkerd.identityTrustAnchorsPEM=ca.crt \
--set-file linkerd.identity.issuer.tls.crtPEM=issuer.crt \
--set-file linkerd.identity.issuer.tls.keyPEM=issuer-private.pem

Начало внимание

Установка компонента дополнений Linkerd автоматически не включает поддержку масштабирования сервисов на стороне приложения ELMA365.

После установки измените параметры приложения ELMA365 и настройте автомасштабирование на стороне приложения ELMA365.

Подробнее читайте в статье «Включение автомасштабирования сервисов в ELMA365 Enterprise».

Конец внимание

Удалить чарт Linkerd с помощью Helm в Kubernetes-кластере

Начало внимание

Перед удалением компонента дополнений Linkerd отключите автомасштабирование на стороне приложения ELMA365.

Конец внимание

Чтобы удалить чарт Linkerd в namespace linkerd, выполните команду:

helm uninstall linkerd -n linkerd