Я новичок в кластере ... Мы используем приложение Tomcat, которое работает на серверах CentOS.
Можно ли получить балансировку нагрузки только с 2 серверами? Активный / активный кластер. Я знаю, что это возможно с HAProxy, но в этом случае мы должны добавить третий сервер.
Можно ли создать кластерную архитектуру с двумя моими серверами CentOS и иметь виртуальный IP-адрес для присоединения к обоим моим серверам?
Спасибо
Что касается терминологии, я не называю большинство балансировщиков нагрузки кластерами. Хосты за ними могут быть довольно независимыми, в отличие от кластеров.
Балансировщик нагрузки может находиться перед одним или несколькими хостами. Да, все внутренние хосты могут быть активными. Два или более для высокой доступности.
Во многих проектах балансировщик нагрузки является единственным компонентом, которому требуется виртуальный IP-адрес (он же служебный адрес). Он выберет хост и перенаправит запрос на обслуживание.
Возможно, вам понадобится как минимум 3 виртуальных машины, одна для балансировщика нагрузки и две для внутренних хостов для обслуживания запросов. Количество и спецификации потребуют разработки в зависимости от ваших требований к высокой доступности и производительности. Например, вы можете сделать балансировщик нагрузки высокодоступной виртуальной машиной или использовать аппаратное устройство.
Требуется ли вашему приложению совместно используемое состояние (база данных) и как это реализовать - это уже другая тема.
Мне немного грустно, потому что мы можем сделать это с Windows, но не с Linux: / (с NLB)
Это невозможно сделать с помощью CLUSTERIP?
Мы хотим делать то же, что и вы: иметь виртуальный IP-адрес, назначенный обоим серверам.
Мы работаем на CentOS 7.
Итак, мы делаем следующее:
iptables -I INPUT -i ens160 -d 10.10.10.10 -j CLUSTERIP --new --hashmode sourceip --clustermac 01:00:5E:00:00:20 --total-nodes 2 --local-node 1
ip addr add 10.10.10.10/24 dev ens160
iptables -I INPUT -d 10.66.66.10 -i ens160 -j CLUSTERIP --new --hashmode sourceip --clustermac 01:00:5E:00:00:20 --total-nodes 2 --local-node 2
ip addr add 10.10.10.10/24 dev ens160
Мы можем пинговать VirtualIP (но только из Cluster01 и Cluster02). Мы вручную добавляем HW-адрес в кеш arp:
arp -i ens160 -s 10.10.10.10 01:00:5E:00:00:20
Chain INPUT (policy ACCEPT 2221 packets, 151K bytes)
pkts bytes target prot opt in out source destination
0 0 CLUSTERIP all -- ens160 * 0.0.0.0/0 10.10.10.10 CLUSTERIP hashmode=sourceip clustermac=01:00:5E:00:00:20 total_nodes=2 local_node=2 hash_init=0
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 1536 packets, 1412K bytes)
pkts bytes target prot opt in out source destination
На обоих серверах у нас есть файл /proc/net/ipt_CLUSTERIP/10.66.66.10
С моей рабочей станции, Я могу получить доступ к своей веб-странице на Cluster01, Cluster02 и VirtualIP. Но балансировка нагрузки не работает ... отвечает только тот же сервер ...