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:

  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 (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