HAProxy не балансирует запросы между узлами кластера Galera

Я столкнулся с проблемой балансировки запросов от сервера приложений к узлам кластера Galera.

HA - это

node1 10.62.10.35 (HAProxy + Keepalived) Master

node1 10.62.10.36 (HAProxy + Keepalived) Backup

node1 10.62.10.37 (HAProxy + Keepalived) Backup

Конфигурация главного узла Keepalived1

global_defs { router_id PSQL1 } vrrp_script haproxy { скрипт "killall -0 haproxy" интервал 2 вес 2 } vrrp_instance 50 { virtual_router_id 50 Advert_int 1 приоритет 101 государственный МАСТЕР интерфейс ens160 virtual_ipaddress { 10.62.10.254/22 разработчика Ens160 } track_script { haproxy } }

Конфигурация резервного узла Keepalived 2

global_defs { router_id PSQL2 } vrrp_script haproxy { скрипт "killall -0 haproxy" интервал 2 вес 2 } vrrp_instance 50 { virtual_router_id 50 Advert_int 1 приоритет 3 состояние РЕЗЕРВНОЕ КОПИРОВАНИЕ интерфейс ens160 virtual_ipaddress { 10.62.10.254/22 разработчика Ens160 } track_script { haproxy } }

Конфигурация резервного Keepalived node3 аналогична узлу node2 за исключением приоритета и router_id.

Конфигурация HAProxy аналогична на каждом узле

** ` веб-интерфейс

    listen 10.62.10.254:3306
    mode tcp
    default_backend galera

веб-интерфейс

    bind *:8080
    mode http
    default_backend web

веб-интерфейс веб-интерфейса

    balance roundrobin
    option tcpka
    option mysql-check user haproxy_check
    server node1 10.62.10.35:3306 check weight 1
    server node2 10.62.10.36:3306 check weight 1
    server node3 10.62.10.37:3306 check weight 1

веб-интерфейс внутреннего интерфейса

     mode http
     stats enable
     stats uri /
     stats realm Strictly\ Private
     stats auth Admin:admin
     stats auth Another_User:passwd

Keepalived работает. Если главный узел не работает (или keepalived / haproxy остановлены), следующий резервный узел использует адрес 10.62.10.254. Но когда Мастер жив, и я останавливаю на нем только MYSQL, HAproxy не отправляет запросы другим узлам. Когда я останавливаю Master keepalived, узел резервного копирования также использует для запросов только свой локальный сервер MYSQL.

Есть предложения?

Спасибо за ответы и хорошего дня.

0
задан 22 June 2017 в 13:10
1 ответ

Я нашел решение. Если вы запускаете haproxy и MYSQL на одном сервере, вам нужно изменить порт 3306 на 3307 во внешнем интерфейсе.

** `frontend galera

bind 10.62.10.254:3307
mode tcp
default_backend galera
0
ответ дан 24 November 2019 в 04:20

Теги

Похожие вопросы