Настройка конфигурации GSLB#
Для высокоуровневой маршрутизации реализована DNS-балансировка с помощью GSLB.
GSLB-сервис осуществляет балансировку серверов методом round-robin. В фоновом режиме проводят проверки работоспособности, заданные в конфигурации. Серверы могут быть временно удалены из пула балансировки в случае, если не прошли проверку. При балансировке также учитываются данные по времени ответа сервера, полученные во время проверок работоспособности.
Файлы конфигурации модуля GSLB лежат по путям
/etc/angie-adc-gslb/Corefile
и /etc/angie-adc-gslb/gslbd.yaml
.
Пример конфигурации GSLB-модуля#
options:
ttl: 1
zones:
www.example.org: # wildcard zone *.example.org
# hostname: www.example.org # for wildcard zone checks
rules:
- rule: rr
servers:
- group: www
test.example.com:
rules:
- rule: rr
servers:
- server: www5
rules:
rr:
type: round_robin
servers:
- server: www1
- server: www2
groups:
www:
servers:
- server: www3
- server: www4
servers:
www1:
addresses:
- 172.22.0.10
# healthpeers: "http://172.22.0.10/api/http/upstreams/examplecom/peers"
# healthinterval: 10s
# healthtimeout: 2s
www2:
addresses:
- 172.22.1.10
# healthpeers: "http://172.22.1.10/api/http/upstreams/examplecom/peers"
# healthinterval: 15s
# healthtimeout: 3s
www3:
addresses:
- 172.22.0.10
# healthpeers: "http://172.22.0.10/api/http/upstreams/exampleorg/peers"
# healthinterval: 10s
# healthtimeout: 2s
www4:
addresses:
- 172.22.1.10
# healthpeers: "http://172.22.1.10/api/http/upstreams/exampleorg/peers"
# healthinterval: 15s
# healthtimeout: 3s
www5:
addresses:
- 172.22.0.10
В этом примере зоны www.example.org
и test.example.com
используют правило rr
(round-robin), определенное в блоке rules
.
Если один из серверов, заданных в servers
, станет недоступным, запросы автоматически перераспределятся
на оставшиеся доступные серверы.
Для серверов www1
, www2
, www3
и www4
заданы проверки работоспособности.
Глобальные параметры#
options:
ttl: 1
Параметр ttl
задает значение TTL (Time to Live) для DNS-записей —
как часто должны обновляться записи, что позволяет оценить доступность серверов.
Значение 1
означает, что клиенты и кэширующие DNS-серверы должны обновлять записи каждую секунду.
Настройки зон#
zones:
www.example.org:
rules:
- rule: rr
servers:
- group: www
test.example.com:
rules:
- rule: rr
servers:
- server: www5
Для зон www.example.org
и test.example.com
используются правила,
определенные в блоке rules
.
Особенности:
Для каждой зоны требуется указать хотя бы одно правило
rule
.Если серверы для зоны не указаны, то будут взяты серверы из соответствующего правила.
Если серверы для зоны указаны, то они имеют приоритет и будут использоваться вместо тех, которые заданы в правиле.
Для
rule
,group
,server
можно задавать произвольные имена.
Правила распределения нагрузки#
rules:
rr:
type: round_robin
servers:
- server: www1
- server: www2
Правило rr
:
тип:
round_robin
(круговое распределение);серверы
www1
иwww2
принимают запросы по очереди без учета их веса;для
rule
можно задать произвольное имя;в
servers
можно указывать как серверы, так и группы серверов.
Группы серверов#
groups:
www:
servers:
- server: www3
- server: www4
Задает состав группы серверов:
для
group
можно задать произвольное имя;можно указывать как серверы, так и другие группы.
Конфигурация серверов#
servers:
www1:
addresses:
- 172.22.0.10
# healthpeers: "http://172.22.0.10/api/http/upstreams/examplecom/peers"
# healthinterval: 10s
# healthtimeout: 2s
www2:
addresses:
- 172.22.1.10
# healthpeers: "http://172.22.1.10/api/http/upstreams/examplecom/peers"
# healthinterval: 15s
# healthtimeout: 3s
www3:
addresses:
- 172.22.0.10
# healthpeers: "http://172.22.0.10/api/http/upstreams/exampleorg/peers"
# healthinterval: 10s
# healthtimeout: 2s
www4:
addresses:
- 172.22.1.10
# healthpeers: "http://172.22.1.10/api/http/upstreams/exampleorg/peers"
# healthinterval: 15s
# healthtimeout: 3s
www5:
addresses:
- 172.22.0.10
Задает конфигурацию серверов, используемых для балансировки нагрузки:
имя сервера;
IP-адрес (адрес, на который будут направляться запросы при балансировке, можно указать несколько адресов списком);
-
активные проверки работоспособности сервера (подробнее см. ниже):
healthpeers
healthinterval
healthtimeout
Проверки работоспособности#
Для включения проверок работоспособности сервера необходимо указать следующие параметры:
healthpeers
— путь до Angie ADC API.healthinterval
— интервал между проверками; рекомендуемые значения от5s
до10m
в зависимости от ваших задач; параметр обязателен, если указан параметрhealthpeers
.healthtimeout
— таймаут на каждую проверку; рекомендуемые значения от1s
до1m
в зависимости от ваших задач; параметр обязателен, если указан параметрhealthpeers
.
Если хотя бы один апстрим проходит проверку, то сервер считается рабочим. При непрохождении проверки сервер будет удален из пула балансировки до успешного прохождения проверки.