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

Установка Linkerd с помощью Cert-manager

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

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

О подготовке сертификатов с помощью openssl для Linkerd и его установке читайте в статье «Установка Linkerd».

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

  • автоматизировать подготовку сертификатов с помощью инструмента Cert-manager и установить Linkerd;

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

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

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

  1. Установите Cert-manager и создайте пространства имён. Cert-manager будет использовать их для хранения ресурсов, связанных с веб-перехватчиком:

kubectl create namespace linkerd
kubectl label namespace linkerd linkerd.io/is-control-plane=true config.linkerd.io/admission-webhooks=disabled linkerd.io/control-plane-ns=linkerd
kubectl annotate namespace linkerd linkerd.io/inject=disabled

  1. Установите инструмент step, чтобы создать пару ключей для подписи каждого сертификата:

wget https://dl.smallstep.com/cli/docs-cli-install/latest/step-cli_amd64.deb
sudo dpkg -i step-cli_amd64.deb

  1. Сгенерируйте сертификаты с помощью step, чтобы использовать их для подписи:
  • сертификатов веб-перехватчика;

Выполните команду

  • сертификата Control Plane.

Выполните команду

Шаг 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.

Укажите DNS-имя домена Kubernetes-кластера в параметре linkerd.clusterDomain. В этом примере указано имя cluster.local:

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

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

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

Заполнение параметров подключения к приватному registry для установки в закрытом контуре без доступа в интернет

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

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

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

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

helm upgrade --install linkerd elma365/linkerd -f values-linkerd.yaml -n linkerd --create-namespace \
--set-file linkerd.identityTrustAnchorsPEM=caRoot.crt \
--set linkerd.identity.issuer.scheme=kubernetes.io/tls \
--set linkerd.policyValidator.externalSecret=true \
--set-file linkerd.policyValidator.caBundle=caWebhook.crt \
--set linkerd.proxyInjector.externalSecret=true \
--set-file linkerd.proxyInjector.caBundle=caWebhook.crt \
--set linkerd.profileValidator.externalSecret=true \
--set-file linkerd.profileValidator.caBundle=caWebhook.crt

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

helm upgrade --install linkerd ./linkerd -f values-linkerd.yaml -n linkerd --create-namespace \
--set-file linkerd.identityTrustAnchorsPEM=caRoot.crt \
--set linkerd.identity.issuer.scheme=kubernetes.io/tls \
--set linkerd.policyValidator.externalSecret=true \
--set-file linkerd.policyValidator.caBundle=caWebhook.crt \
--set linkerd.proxyInjector.externalSecret=true \
--set-file linkerd.proxyInjector.caBundle=caWebhook.crt \
--set linkerd.profileValidator.externalSecret=true \
--set-file linkerd.profileValidator.caBundle=caWebhook.crt

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

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

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

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

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

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

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

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

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

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

helm uninstall linkerd -n linkerd