Участник:Petr-akhlamov/Keepalived вразработке: различия между версиями
Нет описания правки |
|||
(не показано 16 промежуточных версий этого же участника) | |||
Строка 55: | Строка 55: | ||
delay_loop 6 | delay_loop 6 | ||
!Выбираем режим балансировки, для dovecot лучше выбрать Locality-Based Least-Connection | !Выбираем режим балансировки, для dovecot лучше выбрать Locality-Based Least-Connection | ||
lb_sched | |||
!Выбираем метод перенаправления, в нашем случае Direct Routing | !Выбираем метод перенаправления, в нашем случае Direct Routing | ||
lb_kind DR | lb_kind DR | ||
Строка 125: | Строка 125: | ||
[[Файл:Keepalived-стенд-lvps.png|500px]] | [[Файл:Keepalived-стенд-lvps.png|500px]] | ||
==Конфигурационный файл keepalived без использования ipvsadm в активном режиме== | |||
{|class=style="float:center; | |||
!colspan="2"|Настройка высокой доступности | |||
|- | |||
| | |||
<syntaxhighlight lang="bash"> | |||
! Configuration File for keepalived | |||
global_defs { ! MASTER | |||
enable_script_security | |||
} | |||
vrrp_script check_ssh_dienst { | |||
script "/usr/bin/pgrep sshd" | |||
interval 3 | |||
fall 1 | |||
rise 2 | |||
user root | |||
} | |||
vrrp_instance VI_1 { | |||
state MASTER #Имя | |||
interface enp0s8 #Интерфейс | |||
virtual_router_id 51 | |||
priority 100 #Приоритет | |||
advert_int 1 | |||
authentication { | |||
auth_type PASS | |||
auth_pass 1234 | |||
} | |||
track_script { | |||
check_ssh_dienst | |||
} | |||
virtual_ipaddress { | |||
192.168.100.100 dev enp0s8 label enp0s8:2 #Добавление новой карты + IP | |||
} | |||
} | |||
</syntaxhighlight> | |||
| | |||
<syntaxhighlight lang="bash"> | |||
! Configuration File for keepalived | |||
global_defs { ! MASTER | |||
enable_script_security | |||
} | |||
vrrp_script check_ssh_dienst { | |||
script "/usr/bin/pgrep sshd" | |||
interval 3 | |||
fall 1 | |||
rise 2 | |||
user root | |||
} | |||
vrrp_instance VI_1 { | |||
state BACKUP #Имя | |||
interface enp0s8 #Интерфейс | |||
virtual_router_id 51 | |||
priority 99 #Приоритет | |||
advert_int 1 | |||
authentication { | |||
auth_type PASS | |||
auth_pass 1234 | |||
} | |||
track_script { | |||
check_ssh_dienst | |||
} | |||
virtual_ipaddress { | |||
192.168.100.100 dev enp0s8 label enp0s8:2 #Добавление новой карты + IP | |||
} | |||
} | |||
</syntaxhighlight> | |||
|} | |||
==Переход от одного реального хоста на другой без потери виртуального ip адреса== | |||
[[Файл:Keepalived-переход од реального хоста на другой.png|720px]] | |||
==Конфигурационный файл keepalived, создающий виртуальный сервер на базе VIP== | |||
(без использования пакета ipvsadm в активном режиме - используется только для оценки ) | |||
{|class=style="float:center; | |||
| | |||
<syntaxhighlight lang="bash"> | |||
! Configuration File for keepalived RealServer 1 # | |||
global_defs { | |||
enable_script_security } | |||
vrrp_sync_group VG1 { | |||
group { | |||
VI_1 } } | |||
vrrp_instance VI_1 { | |||
state MASTER # | |||
interface enp0s8 # | |||
virtual_router_id 51 | |||
priority 100 # | |||
advert_int 1 | |||
authentication { | |||
auth_type PASS | |||
auth_pass 1234 } | |||
virtual_ipaddress { | |||
192.168.100.100 dev enp0s8 label enp0s8:2 #Add a net card plus IP | |||
} } | |||
virtual_server 192.168.100.100 22 { | |||
# use round-robin as a load balancing algorithm or other | |||
lvs_sched wrr | |||
# we are doing NAT | DR | |||
lvs_method DR | |||
protocol TCP | |||
real_server 192.168.100.102 22 { # | |||
weight 100 # | |||
TCP_CHECK { | |||
connect_timeout 3 | |||
connect_port 22 | |||
} } | |||
real_server 192.168.100.103 22 { # | |||
weight 99 # | |||
TCP_CHECK { | |||
connect_timeout 3 | |||
connect_port 22 | |||
} } | |||
} | |||
</syntaxhighlight> | |||
| | |||
<syntaxhighlight lang="bash"> | |||
net.ipv4.ip_forward = 1 | |||
net.ipv4.ip_nonlocal_bind=1 | |||
</syntaxhighlight> | |||
| | |||
<syntaxhighlight lang="bash"> | |||
! Configuration File for keepalived RealServer 2 # | |||
global_defs { | |||
enable_script_security } | |||
vrrp_sync_group VG1 { | |||
group { | |||
VI_1 } } | |||
vrrp_instance VI_1 { | |||
state BACKUP # | |||
interface enp0s8 # | |||
virtual_router_id 51 | |||
priority 99 | |||
advert_int 1 | |||
authentication { | |||
auth_type PASS | |||
auth_pass 1234 } | |||
virtual_ipaddress { | |||
192.168.100.100 dev enp0s8 label enp0s8:2 #Add a net card plus IP | |||
} } | |||
virtual_server 192.168.100.100 22 { # | |||
# use round-robin as a load balancing algorithm or other | |||
lvs_sched wrr # | |||
# we are doing NAT | DR | |||
lvs_method DR # | |||
protocol TCP | |||
real_server 192.168.100.102 22 { # | |||
weight 100 # | |||
TCP_CHECK { | |||
connect_timeout 3 | |||
connect_port 22 | |||
} } | |||
real_server 192.168.100.103 22 { # | |||
weight 99 # | |||
TCP_CHECK { | |||
connect_timeout 3 | |||
connect_port 22 | |||
} } | |||
} | |||
</syntaxhighlight> | |||
|} | |||
==Распределение нагрузки при распределении нагрузки методом циклического планирования== | |||
[[Файл:Keepalived-Распределение нагрузки при распределении нагрузки.png|720px]] | |||
==Конфигурационный файл keepalived с использованием ipvsadm в активном режиме== | |||
{|class=style="float:center; | |||
| | |||
<syntaxhighlight lang="bash"> | |||
! Configuration File for keepalived | |||
global_defs { ! RealServer 1 | |||
enable_script_security # | |||
} | |||
vrrp_script check_ssh_dienst { | |||
script "/usr/bin/pgrep sshd" | |||
interval 3 | |||
fall 1 | |||
rise 2 | |||
user root } | |||
vrrp_instance VI_1 { | |||
state MASTER # | |||
interface enp0s8 | |||
virtual_router_id 51 | |||
priority 100 # | |||
advert_int 1 | |||
authentication { | |||
auth_type PASS | |||
auth_pass 1234 } | |||
track_script { | |||
check_ssh_dienst } | |||
virtual_ipaddress { | |||
192.168.100.100 dev enp0s8 label enp0s8:2 #Add a net card plus | |||
IP | |||
} | |||
} | |||
</syntaxhighlight> | |||
| | |||
<syntaxhighlight lang="bash"> | |||
net.ipv4.ip_forward=1 | |||
net.ipv4.ip_nonlocal_bind=1 | |||
</syntaxhighlight> | |||
| | |||
<syntaxhighlight lang="bash"> | |||
! Configuration File for keepalived | |||
global_defs { ! RealServer 2 | |||
enable_script_security # | |||
} | |||
vrrp_script check_ssh_dienst { | |||
script "/usr/bin/pgrep sshd" | |||
interval 3 | |||
fall 1 | |||
rise 2 | |||
user root } | |||
vrrp_instance VI_1 { | |||
state BACKUP # | |||
interface enp0s8 | |||
virtual_router_id 51 | |||
priority 99 # | |||
advert_int 1 | |||
authentication { | |||
auth_type PASS | |||
auth_pass 1234 } | |||
track_script { | |||
check_ssh_dienst } | |||
virtual_ipaddress { | |||
192.168.100.100 dev enp0s8 label enp0s8:2 #Add a net card plus IP | |||
} | |||
} | |||
</syntaxhighlight> | |||
|- | |||
|colspan="3"| | |||
Команды конфигурирования работающей службы ipvsadm | |||
<syntaxhighlight lang="bash"> | |||
ipvsadm -A -t 192.168.100.100:22 -s wrr | |||
ipvsadm -a -t 192.168.100.100:22 -r 192.168.100.102:22 –m[g] –w 100 | |||
ipvsadm -a -t 192.168.100.100:22 -r 192.168.100.103:22 –m[g] –w 99 | |||
</syntaxhighlight> | |||
|} | |||
==Остановка основного узла без потери виртуального ip адреса.== | |||
Во время отключения увеличилось время отклика до 0.704 | |||
[[Файл:Keepalived-остановка основного узла.png|720px]] | |||
==Схема подключения Keepalived из внешней сети.== | |||
[[Файл:Keepalived-схема подключения из внешней сети.png|720px]] | |||
==Конфигурационный файл keepalived, создающий виртуальный сервер на базе VIP== | |||
(без использования пакета ipvsadm в активном режиме - используется только для оценки ) | |||
{|class=style="float:center; | |||
| | |||
<syntaxhighlight lang="bash"> | |||
! Configuration File for keepalived RealServer 1 # | |||
vrrp_sync_group VG1 { | |||
group { | |||
VI_internal; VI_external } } | |||
vrrp_instance VI_internal { | |||
state MASTER # | |||
interface enp0s8 # | |||
... | |||
virtual_ipaddress { | |||
192.168.100.100 dev enp0s8 label enp0s8:2 #Add a net card plus IP | |||
} } | |||
vrrp_instance VI_external { | |||
state MASTER | |||
interface enp0s9 | |||
virtual_router_id 51 | |||
priority 100 | |||
advert_int 1 | |||
authentication { | |||
auth_type PASS | |||
auth_pass 1234 } | |||
virtual_ipaddress { | |||
192.168.11.100 dev enp0s9 label enp0s9:2 #Add a net card plus IP | |||
} } | |||
virtual_server 192.168.11.100 22 { | |||
lvs_sched wrr | |||
lvs_method NAT | |||
protocol TCP | |||
real_server 192.168.100.102 22 { | |||
weight 100 | |||
TCP_CHECK { connect_timeout 3 | |||
connect_port 22 | |||
} } | |||
real_server 192.168.100.103 22 { | |||
weight 99 | |||
TCP_CHECK { | |||
connect_timeout 3 | |||
connect_port 22 | |||
}} | |||
</syntaxhighlight> | |||
| | |||
<syntaxhighlight lang="bash"> | |||
net.ipv4.ip_forward = 1 | |||
net.ipv4.ip_nonlocal_bind=1 | |||
</syntaxhighlight> | |||
| | |||
<syntaxhighlight lang="bash"> | |||
! Configuration File for keepalived RealServer 2 # | |||
vrrp_sync_group VG1 { | |||
group { | |||
VI_internal; VI_external } } | |||
vrrp_instance VI_internal { | |||
state BACKUP # | |||
interface enp0s8 # | |||
.... | |||
virtual_ipaddress { | |||
192.168.100.100 dev enp0s8 label enp0s8:2 #Add a net card plus IP | |||
} } | |||
vrrp_instance VI_external { | |||
state MASTER # | |||
interface enp0s9 # | |||
virtual_router_id 51 | |||
priority 100 # | |||
advert_int 1 | |||
authentication { | |||
auth_type PASS | |||
auth_pass 1234 } | |||
virtual_ipaddress { | |||
192.168.11.100 dev enp0s9 label enp0s9:2 #Add a net card plus IP | |||
} } | |||
virtual_server 192.168.11.100 22 { # | |||
lvs_sched wrr # | |||
lvs_method NAT # | |||
protocol TCP | |||
real_server 192.168.100.102 22 { # | |||
weight 100 # | |||
TCP_CHECK { connect_timeout 3 | |||
connect_port 22 # | |||
} } | |||
real_server 192.168.100.103 22 { # | |||
weight 99 # | |||
TCP_CHECK { | |||
connect_timeout 3 | |||
connect_port 22 # | |||
}} | |||
</syntaxhighlight> | |||
|} | |||
==Доступ из внешней сети к кластеру Keepalived== | |||
[[Файл:Keepalived-доступ к кластеру.png|720px]] | |||
<!-- ==Блок-схема скрипта (Макро)== | |||
[[Файл:Keepalived-блок-схема скрипта.png|720px]] | |||
--> |
Текущая версия от 22:50, 7 марта 2025
Keepalived - это программный комплекс обеспечивающий высокую доступность и балансировку нагрузки.
Тестовая конфигурация
Рассмотрим на примере почтовых серверов dovecot с настроенной репликацией Dovecot\Replication
- balance01 - сервер балансировки №1 IP 192.168.135.235
- balance02 - сервер балансировки №2 IP 192.168.135.236
- dovecot01 - back-end сервер №1 IP 192.168.135.238
- dovecot02 - back-end сервер №2 IP 192.168.135.239
- 192.168.135.237 - виртуальный адрес по которому будут доступны back-end серверы
Предварительная настройка балансировочных серверов
Установим нужный пакет на обоих серверах балансировки:
# apt-get install keepalived
Изменим параметр ядра net.ipv4.ip_forward для этого в файле /etc/net/sysctl.conf добавим:
net.ipv4.ip_forward = 1
Для немедленного применения настроек выполним:
# sysctl -p
Настройка MASTER сервера
Создадим файл настройки:
# touch /etc/keepalived/keepalived.conf
Комментарии в файле настройки выделяются знаком "!"
Добавим блок global_defs:
global_defs { ! имя балансера router_id LVS_1 }
Добавим блок vrrp_instance отвечающий за настройку виртуального роутера, для каждого сетевого интерфейса необходимо настроить, по крайне мере один блок vrrp_instance. Вы можете добавить необходимое количество блоков для каждой группы виртуальных IP:
vrrp_instance DOVECOT { !Указывает на то что в каком состоянии стартует нода state MASTER !Интерфейс для виртуальных IP interface ens18 !Интерфейс для обмена служебными пакетами между нодами lvs_sync_daemon_inteface ens18 !Уникальное имя виртуального роутера virtual_router_id 102 !Приоритет данной ноды относительно других, нода с наибольшим приоритетом переходит в состояние MASTER priority 150 !Как часто происходит обновление состояния кластера advert_int 1 !Аутентификация используется для синхронизации между нодами authentication { auth_type PASS auth_pass 12345678 } !Виртуальные адреса, которые настроит keealived virtual_ipaddress { 192.168.135.237/24 } }
Далее следует блок настройки виртуального сервера:
virtual_server 192.168.135.237 22 { !Частота проверок delay_loop 6 !Выбираем режим балансировки, для dovecot лучше выбрать Locality-Based Least-Connection lb_sched !Выбираем метод перенаправления, в нашем случае Direct Routing lb_kind DR protocol TCP !Описываем back-end серверы real_server 192.168.135.238 143 { !Задаем вес сервера weight 1 !Настраиваем проверку на доступность TCP_CHECK { connect_timeout 3 connect_port 143 nb_get_retry 3 delay_before_retry 3 } } real_server 192.168.135.239 143 { weight 1 TCP_CHECK { connect_timeout 3 connect_port 143 nb_get_retry 3 delay_before_retry 3 } } }
Запустим и добавим сервис keepalived в автозагрузку:
# systemctl enable keepalived # systemctl start keepalived
На MASTER ноде должен добавится виртуальный IP:
# ip a | grep ens18 2: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 inet 192.168.135.235/24 brd 192.168.135.255 scope global ens18 inet 192.168.135.237/24 scope global secondary ens18
Настройка BACKUP сервера
Файл настройки BACKUP сервера отличается только следующими параметрами:
router_id LVS_2 state BACKUP priority 100
Настройка back-end серверов
Необходимо настроить виртуальный IP на обоих back-end серверах. Для этого в файл /etc/net/ifaces/ens18/ipv4address добавим наш виртуальный IP:
192.168.135.237/24
Только MASTER сервер балансировки должен отвечать ARP запросы виртуального IP адреса. Необходимо установить параметры ядра arp_ignore и arp_announce для сетевого интерфейса с виртуальным IP, для того чтобы они не реагировали на ARP запросы для виртуального IP адреса. Для этого для этого в файле /etc/net/sysctl.conf добавим:
net.ipv4.conf.ens18.arp_ignore = 1 net.ipv4.conf.ens18.arp_announce = 2
Для немедленного применения выполним:
# sysctl -p
На обоих back-end серверах должен появится виртуальный IP адрес:
# ip a |grep ens18 2: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 inet 192.168.135.238/24 brd 192.168.135.255 scope global ens18 inet 192.168.135.237/24 scope global secondary ens18
Возможные варианты использования Keepalived. Масштабируемость
Вероятность безотказной работы [P]:
- P = 1 - (1 -PMaster)x(1 -PBackup)
- P = 1 - (1 -Pnode1)x ... x(1 -Pnode N)
Схема стенда при организации VIP(LVS) во внутренней сети
IP: 192.168.100.0/24
Конфигурационный файл keepalived без использования ipvsadm в активном режиме
Настройка высокой доступности | |
---|---|
! Configuration File for keepalived
global_defs { ! MASTER
enable_script_security
}
vrrp_script check_ssh_dienst {
script "/usr/bin/pgrep sshd"
interval 3
fall 1
rise 2
user root
}
vrrp_instance VI_1 {
state MASTER #Имя
interface enp0s8 #Интерфейс
virtual_router_id 51
priority 100 #Приоритет
advert_int 1
authentication {
auth_type PASS
auth_pass 1234
}
track_script {
check_ssh_dienst
}
virtual_ipaddress {
192.168.100.100 dev enp0s8 label enp0s8:2 #Добавление новой карты + IP
}
}
|
! Configuration File for keepalived
global_defs { ! MASTER
enable_script_security
}
vrrp_script check_ssh_dienst {
script "/usr/bin/pgrep sshd"
interval 3
fall 1
rise 2
user root
}
vrrp_instance VI_1 {
state BACKUP #Имя
interface enp0s8 #Интерфейс
virtual_router_id 51
priority 99 #Приоритет
advert_int 1
authentication {
auth_type PASS
auth_pass 1234
}
track_script {
check_ssh_dienst
}
virtual_ipaddress {
192.168.100.100 dev enp0s8 label enp0s8:2 #Добавление новой карты + IP
}
}
|
Переход от одного реального хоста на другой без потери виртуального ip адреса
Конфигурационный файл keepalived, создающий виртуальный сервер на базе VIP
(без использования пакета ipvsadm в активном режиме - используется только для оценки )
! Configuration File for keepalived RealServer 1 #
global_defs {
enable_script_security }
vrrp_sync_group VG1 {
group {
VI_1 } }
vrrp_instance VI_1 {
state MASTER #
interface enp0s8 #
virtual_router_id 51
priority 100 #
advert_int 1
authentication {
auth_type PASS
auth_pass 1234 }
virtual_ipaddress {
192.168.100.100 dev enp0s8 label enp0s8:2 #Add a net card plus IP
} }
virtual_server 192.168.100.100 22 {
# use round-robin as a load balancing algorithm or other
lvs_sched wrr
# we are doing NAT | DR
lvs_method DR
protocol TCP
real_server 192.168.100.102 22 { #
weight 100 #
TCP_CHECK {
connect_timeout 3
connect_port 22
} }
real_server 192.168.100.103 22 { #
weight 99 #
TCP_CHECK {
connect_timeout 3
connect_port 22
} }
}
|
net.ipv4.ip_forward = 1
net.ipv4.ip_nonlocal_bind=1
|
! Configuration File for keepalived RealServer 2 #
global_defs {
enable_script_security }
vrrp_sync_group VG1 {
group {
VI_1 } }
vrrp_instance VI_1 {
state BACKUP #
interface enp0s8 #
virtual_router_id 51
priority 99
advert_int 1
authentication {
auth_type PASS
auth_pass 1234 }
virtual_ipaddress {
192.168.100.100 dev enp0s8 label enp0s8:2 #Add a net card plus IP
} }
virtual_server 192.168.100.100 22 { #
# use round-robin as a load balancing algorithm or other
lvs_sched wrr #
# we are doing NAT | DR
lvs_method DR #
protocol TCP
real_server 192.168.100.102 22 { #
weight 100 #
TCP_CHECK {
connect_timeout 3
connect_port 22
} }
real_server 192.168.100.103 22 { #
weight 99 #
TCP_CHECK {
connect_timeout 3
connect_port 22
} }
}
|
Распределение нагрузки при распределении нагрузки методом циклического планирования
Конфигурационный файл keepalived с использованием ipvsadm в активном режиме
! Configuration File for keepalived
global_defs { ! RealServer 1
enable_script_security #
}
vrrp_script check_ssh_dienst {
script "/usr/bin/pgrep sshd"
interval 3
fall 1
rise 2
user root }
vrrp_instance VI_1 {
state MASTER #
interface enp0s8
virtual_router_id 51
priority 100 #
advert_int 1
authentication {
auth_type PASS
auth_pass 1234 }
track_script {
check_ssh_dienst }
virtual_ipaddress {
192.168.100.100 dev enp0s8 label enp0s8:2 #Add a net card plus
IP
}
}
|
net.ipv4.ip_forward=1
net.ipv4.ip_nonlocal_bind=1
|
! Configuration File for keepalived
global_defs { ! RealServer 2
enable_script_security #
}
vrrp_script check_ssh_dienst {
script "/usr/bin/pgrep sshd"
interval 3
fall 1
rise 2
user root }
vrrp_instance VI_1 {
state BACKUP #
interface enp0s8
virtual_router_id 51
priority 99 #
advert_int 1
authentication {
auth_type PASS
auth_pass 1234 }
track_script {
check_ssh_dienst }
virtual_ipaddress {
192.168.100.100 dev enp0s8 label enp0s8:2 #Add a net card plus IP
}
}
|
Команды конфигурирования работающей службы ipvsadm ipvsadm -A -t 192.168.100.100:22 -s wrr
ipvsadm -a -t 192.168.100.100:22 -r 192.168.100.102:22 –m[g] –w 100
ipvsadm -a -t 192.168.100.100:22 -r 192.168.100.103:22 –m[g] –w 99
|
Остановка основного узла без потери виртуального ip адреса.
Во время отключения увеличилось время отклика до 0.704
Схема подключения Keepalived из внешней сети.
Конфигурационный файл keepalived, создающий виртуальный сервер на базе VIP
(без использования пакета ipvsadm в активном режиме - используется только для оценки )
! Configuration File for keepalived RealServer 1 #
vrrp_sync_group VG1 {
group {
VI_internal; VI_external } }
vrrp_instance VI_internal {
state MASTER #
interface enp0s8 #
...
virtual_ipaddress {
192.168.100.100 dev enp0s8 label enp0s8:2 #Add a net card plus IP
} }
vrrp_instance VI_external {
state MASTER
interface enp0s9
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1234 }
virtual_ipaddress {
192.168.11.100 dev enp0s9 label enp0s9:2 #Add a net card plus IP
} }
virtual_server 192.168.11.100 22 {
lvs_sched wrr
lvs_method NAT
protocol TCP
real_server 192.168.100.102 22 {
weight 100
TCP_CHECK { connect_timeout 3
connect_port 22
} }
real_server 192.168.100.103 22 {
weight 99
TCP_CHECK {
connect_timeout 3
connect_port 22
}}
|
net.ipv4.ip_forward = 1
net.ipv4.ip_nonlocal_bind=1
|
! Configuration File for keepalived RealServer 2 #
vrrp_sync_group VG1 {
group {
VI_internal; VI_external } }
vrrp_instance VI_internal {
state BACKUP #
interface enp0s8 #
....
virtual_ipaddress {
192.168.100.100 dev enp0s8 label enp0s8:2 #Add a net card plus IP
} }
vrrp_instance VI_external {
state MASTER #
interface enp0s9 #
virtual_router_id 51
priority 100 #
advert_int 1
authentication {
auth_type PASS
auth_pass 1234 }
virtual_ipaddress {
192.168.11.100 dev enp0s9 label enp0s9:2 #Add a net card plus IP
} }
virtual_server 192.168.11.100 22 { #
lvs_sched wrr #
lvs_method NAT #
protocol TCP
real_server 192.168.100.102 22 { #
weight 100 #
TCP_CHECK { connect_timeout 3
connect_port 22 #
} }
real_server 192.168.100.103 22 { #
weight 99 #
TCP_CHECK {
connect_timeout 3
connect_port 22 #
}}
|
Доступ из внешней сети к кластеру Keepalived