Настройка конфигурации#
GSLB-сервис балансирует серверы методом round-robin
и weighted round-robin
(далее будут поддерживаться и другие методы балансировки).
В фоновом режиме проводятся проверки работоспособности,
заданные в конфигурации балансировщика нагрузки.
Серверы могут быть временно удалены из пула балансировки, если не прошли проверку.
Также учитываются данные по времени ответа сервера, полученные во время проверок работоспособности.
GSLB настраивается на том же виртуальном сервере Angie ADC, что и балансировщик нагрузки.
Файлы конфигурации модуля GSLB находятся по пути
В этом примере: Зоны Если один из серверов, заданных в Для серверов В этом примере: Зона Серверы получают нагрузку в соответствии со своими весами ( Глобальные параметры: Зоны: Для каждой зоны требуется указать хотя бы одно правило Если серверы для зоны не указаны, то будут взяты серверы из соответствующего правила. Если серверы для зоны указаны, то они имеют приоритет и будут использоваться вместо тех,
которые заданы в правиле. Для Одни и те же серверы, группы серверов и правила можно использовать
в нескольких зонах. Правила: Для В Группы серверов: Для Можно указывать как серверы, так и другие группы. Серверы: Имя сервера. IP-адрес (адрес, на который будут направляться запросы при балансировке,
можно указать несколько адресов списком). Пассивные проверки работоспособности: Если хотя бы один апстрим проходит проверку, то сервер считается рабочим.
При непрохождении проверки сервер будет удален из пула балансировки до успешного прохождения проверки./etc/angie-adc-gslb/Corefile
и /etc/angie-adc-gslb/gslbd.yaml
.Пример конфигурации для round-robin#
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
заданы пассивные проверки работоспособности.Пример конфигурации для weighted round-robin#
options:
ttl: 1
zones:
wrr.example.com:
rules:
- rule: wrr-servers
rules:
wrr-servers:
type: round_robin
weighted: true
servers:
- server: www1
- server: www2
servers:
www1:
addresses:
- 172.22.0.10
weight: 2
www2:
addresses:
- 172.22.1.10
weight: 1
wrr.example.com
использует правило wrr-servers
(взвешенный round-robin),
определенное в блоке rules
.www1
будет использоваться
примерно в два раза чаще, чем www2
).Параметры#
ttl
задает значение TTL (Time to Live) для DNS-записей —
как часто должны обновляться записи, что позволяет оценить доступность серверов.
Значение 1
означает, что клиенты и кэширующие DNS-серверы должны обновлять записи каждую секунду.rule
.rule
, group
, server
можно задавать произвольные имена.rule
можно задать произвольное имя.servers
можно указывать как серверы, так и группы серверов.group
можно задать произвольное имя.healthpeers
— путь до API.healthinterval
— интервал между проверками; параметр обязателен,
если указан параметр healthpeers
.healthtimeout
— таймаут на каждую проверку; параметр обязателен,
если указан параметр healthpeers
.