Балансировка внутри VRF
- Проверено на версии — 2.2.1
- Требуется — изолированная сеть на VLAN, серверы приложения в этой сети
Приложение балансируется внутри изолированной сети: и VIP, и серверы находятся в VRF demo. Значения — из сквозного примера.
Что получится
- Балансировщики будут принимать соединения на
10.88.0.100внутри VRFdemo. - Проверки доступности серверов пойдут с адресов агентов в этом же VRF, а не с адресов рабочего трафика.
- Соединения к серверам будут открываться из VRF
demo, поэтому серверам не нужен маршрут в сеть балансировщиков.
Перед началом
- Профиль
demoсоздан и показывает статус Работает. - Серверы приложения доступны в сети
10.88.0.0/24— например,10.88.0.201и10.88.0.202.
Настройка
- Создайте клиентские серверы для
10.88.0.201и10.88.0.202. В поле VRF каждого сервера выберитеdemo. - Создайте группу серверов и добавьте в неё оба сервера. В поле VRF группы выберите
demo. - В секции Проверка здоровья группы подключите монитор — без него балансировщик будет считать доступными все серверы.
- Создайте конфигурацию балансировки:
- в поле VRF выберите
demo; - в секции Отказоустойчивость (HA) выберите тип VRRP (Active-Passive) и в группе VIP укажите
10.88.0.100/32; - в секции Сервисы выберите созданную группу серверов.
- в поле VRF выберите
- Сохраните конфигурацию.
Отдельно заводить VIP на вкладке Сеть → <сетевой агент> → IP/VIP не нужно: адрес поднимается из настроек отказоустойчивости и появляется в списке после сохранения конфигурации.
VRF конфигурации балансировки и VRF её группы серверов должны совпадать. Если серверы приложения находятся в другом VRF, потребуется Cross-VRF политика — см. Серверы в другом VRF.
Проверка
В интерфейсе системы
-
В группе серверов узлы перешли в состояние ОК. Если они остаются недоступными, проверьте, что серверы отвечают на адресах из изолированной сети, а не из общей.
-
На вкладке Сеть → <сетевой агент> → IP/VIP у одного из агентов появился VIP
10.88.0.100. Этот агент и есть MASTER. -
Текущее распределение ролей MASTER и BACKUP отдаёт запрос статуса VRRP:
GET /api/v1/clusters/{clusterId}/services/{serviceId}/vrrp_status -
Обмен с серверами можно снять инструментом TCP Dump на интерфейсе
ens19.300— в нём видно, с какого адреса балансировщик обращается к серверам.
Трафиком
С узла изолированной сети обратитесь к VIP:
curl -sS -o /dev/null -w '%{http_code}\n' http://10.88.0.100:8080/В журнале сервера приложения источником запросов будет 10.88.0.11 или 10.88.0.12 — адрес агента в VRF, а не адрес его рабочего трафика.
Частые ошибки
| Сообщение | Что означает | Что сделать |
|---|---|---|
Нужна cross-VRF политика demo→tenant2: VIP в VRF "demo", backend — в "tenant2" | VRF конфигурации балансировки и VRF группы серверов различаются | Приведите их к одному VRF либо создайте политику по сценарию Серверы в другом VRF |
VRF группы нельзя изменить, пока она обслуживает сервис — перенесите сервис целиком | Попытка сменить VRF у группы, на которую ссылается конфигурация балансировки | Отвяжите группу от конфигурации либо переносите конфигурацию вместе с группой |
VRF сервера нельзя изменить, пока он состоит в группе | Попытка сменить VRF у сервера, уже включённого в группу | Выведите сервер из группы, смените VRF, верните обратно |
Правка VRF оставит сервис "..." без data-контекста семейства IPv4 на агенте slb-node-2 — сначала измените сервис или добавьте адрес в VRF | Из профиля убирают агента, на котором работает конфигурация балансировки | Верните агента в сегмент либо снимите с него конфигурацию |
Дальше
- Обмен маршрутами по BGP — анонсировать VIP за пределы сегмента.
- SNAT-группа в VRF — если одного адреса агента не хватает на все соединения к серверам.