Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
Yandex Application Load Balancer
  • Начало работы
  • Пошаговые инструкции
    • Все инструкции
    • Целевые группы
      • Создать целевую группу
      • Изменить целевую группу
      • Удалить целевую группу
    • Группы бэкендов
      • Создать группу бэкендов
      • Изменить группу бэкендов
      • Удалить группу бэкендов
    • HTTP-роутеры
      • Создать HTTP-роутер для HTTP-трафика
      • Создать HTTP-роутер для gRPC-трафика
      • Изменить HTTP-роутер
      • Удалить HTTP-роутер
    • L7-балансировщики
      • Создать L7-балансировщик
      • Изменить L7-балансировщик
      • Посмотреть статистику L7-балансировщика
      • Посмотреть логи L7-балансировщика
      • Получить идентификатор лог-группы L7-балансировщика
      • Остановить и запустить L7-балансировщик
      • Удалить L7-балансировщик
    • Инструменты для Managed Service for Kubernetes
      • Установить Ingress-контроллер
      • Установить Gateway API
      • Создать или изменить ресурсы по конфигурации
  • Практические руководства
    • Все практические руководства
    • Организация виртуального хостинга
    • Создание балансировщика с защитой от DDoS
    • Интеграция L7-балансировщика с CDN и Object Storage
    • Сине-зеленое и канареечное развертывание версий сервиса
    • Терминирование TLS-соединений
    • Запись логов балансировщика в PostgreSQL
    • Развертывание и нагрузочное тестирование gRPC-сервиса с масштабированием
  • Концепции
    • Обзор
    • Балансировщики нагрузки
    • HTTP-роутеры
    • Группы бэкендов
    • Целевые группы
    • Квоты и лимиты
  • Инструменты для Managed Service for Kubernetes
    • Ingress-контроллер
      • Обзор
      • Принципы работы
    • Gateway API
    • Необходимые настройки
      • Группы безопасности
      • Сервисный аккаунт
  • Управление доступом
  • Правила тарификации
  • Справочник API
    • Аутентификация в API
    • gRPC (англ.)
      • Overview
      • BackendGroupService
      • HttpRouterService
      • LoadBalancerService
      • TargetGroupService
      • VirtualHostService
      • OperationService
    • REST (англ.)
      • Overview
      • BackendGroup
        • Overview
        • addBackend
        • create
        • delete
        • get
        • list
        • listOperations
        • removeBackend
        • update
        • updateBackend
      • HttpRouter
        • Overview
        • create
        • delete
        • get
        • list
        • listOperations
        • update
      • LoadBalancer
        • Overview
        • addListener
        • addSniMatch
        • create
        • delete
        • get
        • getTargetStates
        • list
        • listOperations
        • removeListener
        • removeSniMatch
        • start
        • stop
        • update
        • updateListener
        • updateSniMatch
      • TargetGroup
        • Overview
        • addTargets
        • create
        • delete
        • get
        • list
        • listOperations
        • removeTargets
        • update
      • VirtualHost
        • Overview
        • create
        • delete
        • get
        • list
        • removeRoute
        • update
        • updateRoute
  • Справочники инструментов для Managed Service for Kubernetes
    • Обзор
    • Ingress-контроллер
      • Ingress
      • HttpBackendGroup
    • Gateway API
      • Gateway
      • HTTPRoute
    • Service
  • Справочник логов
  1. Начало работы

Как начать работать с Yandex Application Load Balancer

Статья создана
Yandex Cloud
,
улучшена
  • Перед началом работы
  • Создайте ВМ и запустите на ней тестовый веб-сервер
  • Создайте целевую группу
  • Создайте группу бэкендов
  • Создайте HTTP-роутер
  • Создайте L7-балансировщик
  • Протестируйте работу балансировщика

С помощью этой инструкции вы создадите первый L7-балансировщик, подключите к нему целевую группу и настроите передачу трафика на бэкенд тестового приложения.

Перед началом работы

  1. Войдите в консоль управления или зарегистрируйтесь. Если вы еще не зарегистрированы, перейдите в консоль управления и следуйте инструкциям.
  2. На странице биллинга убедитесь, что у вас подключен платежный аккаунт и он находится в статусе ACTIVE или TRIAL_ACTIVE. Если платежного аккаунта нет, создайте его.
  3. Если у вас еще нет каталога, создайте его. Во время создания каталога вы можете создать виртуальную сеть по умолчанию с подсетями во всех зонах доступности.

Создайте ВМ и запустите на ней тестовый веб-сервер

  1. Создайте виртуальную машину test-vm1 в зоне доступности ru-central1-a.

  2. Подключитесь к ВМ и запустите на ней тестовый веб-сервер, который будет отвечать на запросы на порте 80:

    sudo python3 -m http.server 80
    
  3. Убедитесь, что веб-сервер возвращает список папок из каталога. В терминале вашего компьютера выполните:

    curl -v <публичный IP-адрес тестовой ВМ>
    

Создайте целевую группу

На ВМ из целевой группы развертываются бэкенды вашего приложения. Целевая группа будет подключена к балансировщику, чтобы на эндпоинты бэкендов вашего приложения можно было направлять запросы.

Для примера в целевой группе будет находиться только одна виртуальная машина.

Консоль управления
CLI
  1. В консоли управления выберите каталог, в котором будет создаваться целевая группа.
  2. В списке сервисов выберите Application Load Balancer.
  3. В меню слева выберите Целевые группы.
  4. Нажмите кнопку Создать целевую группу.
  5. Введите имя целевой группы: test-target-group.
  6. Выберите ВМ test-vm1.
  7. Нажмите кнопку Создать.

Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.

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

yc alb target-group create test-target-group \
  --target subnet-name=<имя подсети ВМ>,ip-address=<внутренний IP-адрес ВМ>

Создайте группу бэкендов

Группы бэкендов содержат настройки балансировки трафика и проверок состояния целевых ресурсов. Создайте группу и добавьте в нее один бэкенд.

Консоль управления
CLI
  1. В меню слева выберите Группы бэкендов.
  2. Нажмите кнопку Создать группу бэкендов.
  3. Введите имя группы бэкендов: test-backend-group.
  4. В блоке Бэкенды нажмите кнопку Добавить. Задайте настройки бэкенда:
    1. Введите имя бэкенда: backend-1.
    2. В списке Целевая группа выберите test-target-group.
    3. Укажите Порт: 80.
  5. Разверните поле Настройки протокола и задайте их параметры:
    1. Выберите тип HTTP.
  6. Нажмите кнопку Добавить проверку состояния и задайте настройки проверки:
    1. Таймаут: 1.
    2. Интервал: 3.
    3. Порог работоспособности: 2.
    4. Порог неработоспособности: 2.
    5. Тип: HTTP.
    6. Путь: /.
  7. Нажмите кнопку Создать.
  1. Создайте группу бэкендов:

    yc alb backend-group create test-backend-group
    
  2. Создайте бэкенд и проверку состояния:

    yc alb backend-group add-http-backend \
      --backend-group-name test-backend-group \
      --name backend-1 \
      --port 80 \
      --target-group-name test-target-group \
      --target-group-id <ID целевой группы> \
      --http-healthcheck healthy-threshold=2,unhealthy-threshold=2,timeout=1s,interval=3s,path=/
    

Создайте HTTP-роутер

HTTP-роутеры определяют правила маршрутизации запросов к бэкендам и позволяют модифицировать запросы прямо на балансировщике.

Консоль управления
CLI
  1. В меню слева выберите HTTP-роутеры.
  2. Нажмите кнопку Создать HTTP-роутер.
  3. Введите имя роутера: test-http-router.
  4. В блоке Виртуальные хосты нажмите кнопку Добавить виртуальный хост.
  5. Введите имя хоста: test-virtual-host.
  6. Нажмите кнопку Добавить маршрут.
  7. Введите Имя: test-route.
  8. В поле Путь выберите Начинается с и укажите путь /.
  9. В поле Действие оставьте Маршрутизация.
  10. В списке Группа бэкендов выберите test-backend-group.
  11. Остальные настройки оставьте без изменений и нажмите кнопку Создать.
  1. Создайте HTTP-роутер:

    yc alb http-router create test-http-router
    
  2. Создайте виртуальный хост:

    yc alb virtual-host create test-virtual-host --http-router-name test-http-router
    
  3. Добавьте маршрут:

    yc alb virtual-host append-http-route test-route \
      --http-router-name test-http-router \
      --prefix-path-match / \
      --backend-group-name test-backend-group \
      --virtual-host-name test-virtual-host
    

Создайте L7-балансировщик

Балансировщик принимает запросы и распределяет их по ВМ из целевой группы по правилам, указанным в HTTP-роутере. Для приема трафика балансировщик использует обработчики.

Для примера будет создан балансировщик с узлом в одной подсети в одной зоне доступности.

Консоль управления
CLI
  1. В меню слева выберите Балансировщики.
  2. Нажмите кнопку Создать балансировщик.
  3. Введите имя балансировщика: test-load-balancer.
  4. В блоке Сетевые настройки выберите сеть, в подсетях которой будет размещаться узлы балансировщика.
  5. В блоке Размещение выберите подсети для узлов балансировщика в каждой зоне доступности и включите передачу трафика.
  6. В блоке Обработчики нажмите кнопку Добавить обработчик. Задайте настройки обработчика:
    1. Введите имя обработчика: test-listener.
    2. В блоке Настройки публичного IP-адреса включите передачу трафика.
    3. Укажите порт 80.
    4. Выберите тип Автоматически.
  7. В поле HTTP-роутер выберите test-http-router.
  8. Нажмите кнопку Создать.
  1. Создайте балансировщик с узлом в одной подсети:

    yc alb load-balancer create test-load-balancer \
      --network-name <имя сети> \
      --location subnet-name=<имя подсети в зоне ru-central1-a>,zone=ru-central1-a \
      --location subnet-name=<имя подсети в зоне ru-central1-b>,zone=ru-central1-b \
      --location subnet-name=<имя подсети в зоне ru-central1-c>,zone=ru-central1-c
    
  2. Добавьте обработчик:

    yc alb load-balancer add-listener test-load-balancer \
      --listener-name test-listener \
      --http-router-id <ID HTTP-роутера> \
      --external-ipv4-endpoint port=80
    

Протестируйте работу балансировщика

В терминале выполните следующую команду:

curl -v <публичный IP-адрес балансировщика>:80

В ответ должен вернуться HTTP-ответ с кодом 200 и список папок из каталога тестовой ВМ в HTML-разметке.

После этого вы можете добавить другие виртуальные машины в целевую группу, создать новые бэкенды для вашего приложения и построить маршруты до их эндпоинтов.

Была ли статья полезна?

Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
В этой статье:
  • Перед началом работы
  • Создайте ВМ и запустите на ней тестовый веб-сервер
  • Создайте целевую группу
  • Создайте группу бэкендов
  • Создайте HTTP-роутер
  • Создайте L7-балансировщик
  • Протестируйте работу балансировщика