Установка Ingress-контроллера Application Load Balancer
Для балансировки нагрузки и распределения трафика между приложениями Kubernetes используйте Ingress-контроллер Yandex Application Load Balancer. Он запускает балансировщик и необходимые вспомогательные ресурсы, когда пользователь создает ресурс Ingress
в кластере Managed Service for Kubernetes.
Перед началом работы
-
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра
--folder-name
или--folder-id
. -
Убедитесь, что группы безопасности для кластера Managed Service for Kubernetes и его групп узлов настроены корректно. Если отсутствует какое-либо из правил — добавьте его.
Также убедитесь, что настроены группы безопасности, необходимые для работы Application Load Balancer.
Важно
От настройки групп безопасности зависит работоспособность и доступность кластера, а также запущенных в нем сервисов и приложений.
-
Создайте сервисный аккаунт, необходимый для работы Ingress-контроллера, и назначьте ему роли:
alb.editor
— для создания необходимых ресурсов.vpc.publicAdmin
— для управления внешней связностью.certificate-manager.certificates.downloader
— для работы с сертификатами, зарегистрированными в сервисе Yandex Certificate Manager.compute.viewer
— для использования узлов кластера Managed Service for Kubernetes в целевых группах балансировщика.
-
Создайте авторизованный ключ доступа для сервисного аккаунта в формате JSON и сохраните его в файл
sa-key.json
:yc iam key create \ --service-account-name <имя_сервисного_аккаунта_для_Ingress-контроллера> \ --output sa-key.json
Установка с помощью Yandex Cloud Marketplace
- Перейдите на страницу каталога и выберите сервис Managed Service for Kubernetes.
- Нажмите на имя нужного кластера и выберите вкладку
- В разделе Доступные для установки приложения выберите ALB Ingress Controller и нажмите кнопку Использовать.
- Задайте настройки приложения:
- Пространство имен — выберите пространство имен или создайте новое.
- Название приложения — укажите название приложения.
- Идентификатор каталога — укажите идентификатор каталога.
- Идентификатор кластера — укажите идентификатор кластера.
- Ключ сервисного аккаунта — вставьте содержимое файла
sa-key.json
.
- Нажмите кнопку Установить.
- Дождитесь перехода приложения в статус
Deployed
.
Установка с помощью Helm-чарта
-
Установите менеджер пакетов Helm
версии не ниже 3.7.0. -
Установите kubectl
и настройте его на работу с созданным кластером. -
Установите утилиту
jq
для потоковой обработки JSON-файлов:sudo apt update && sudo apt install jq
-
Для установки Helm-чарта
с Ingress-контроллером выполните команды:export HELM_EXPERIMENTAL_OCI=1 && \ cat sa-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.2.0 \ --untar && \ helm install \ --namespace <пространство_имен> \ --create-namespace \ --set folderId=<идентификатор_каталога> \ --set clusterId=<идентификатор_кластера> \ --set-file saKeySecretKey=sa-key.json \ yc-alb-ingress-controller ./yc-alb-ingress-controller-chart/
См. также
-
Описание Ingress-контроллеров в документации:
-
Практическое руководство по настройке Ingress-контроллера Application Load Balancer.
-
Практическое руководство по настройке логирования для Ingress-контроллеров Application Load Balancer.