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