Yandex Marketplace
November 12, 2022

Установка ALB контроллера в Marketplace k8s и через Helm

Application Load Balancer (ALB) Ingress Controller использует сервис Yandex Application Load Balancer для балансировки нагрузки и распределения трафика между приложениями Kubernetes.

В сервисе Managed Service for Kubernetes ALB Ingress Controller запускает Yandex Application Load Balancer и необходимые вспомогательные ресурсы, когда пользователь Kubernetes объявляет ресурс Ingress в кластере.

Для установки необходимо создать SA с необходимыми правами и создать авторизованный ключ для него.
Минимальные права SA для запуска:

  • alb.editor — для создания необходимых ресурсов.
  • vpc.publicAdmin — для управления внешней связностью.
  • certificate-manager.certificates.downloader — для работы с сертификатами, зарегистрированными в сервисе Yandex Certificate Manager.
  • compute.viewer — для использования узлов кластера Managed Service for Kubernetes в целевых группах балансировщика.

Я создал SA и ключи доступа ранее: https://teletype.in/@cameda/w93lPMPQWS4
Создание кластера k8s: https://teletype.in/@cameda/3BqWWeOkRZ0

Для создания нам необходимо указать:

  1. Имя приложения;
  2. namespace;
  3. Всё содержимое файла key.json.

После того как статус приложения станет Running будет добавлен новый сервис Application Load Balancer. В котором будут настроены целевые группы.

Для дальнейшей корректной работы балансировщика потребуется установить Deployment, Service, Ingress. Их спецификации рассмотрим в другом мануале.

Установка с помощью Helm чарта.

export FOLDER=$(yc config get folder-id)
export CLUSTER=<YOUR_CLUSTER_ID>
export HELM_EXPERIMENTAL_OCI=1 && \

cat /Users/cameda/key.json | helm registry login cr.yandex --username 'json_key' --password-stdin && \

helm pull oci://cr.yandex/yc-marketplace/yandex-cloud/yc-alb-ingress/yc-alb-ingress-controller-chart \
  --version v0.1.24 \
  --untar && \
helm install \
  --namespace default \
  --set folderId=$FOLDER \
  --set clusterId=$CLUSTER \
  --set-file saKeySecretKey=/Users/cameda/practicum/key.json \
  yc-alb-ingress-controller ./yc-alb-ingress-controller-chart/

Полезные ссылки.

Спецификация ingress: https://teletype.in/@cameda/NGvCl3lZrgB