This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
сервис_keepalived [2021/12/08 14:21] val |
сервис_keepalived [2023/09/17 20:04] val [Настройка балансировки нагрузки] |
||
---|---|---|---|
Line 3: | Line 3: | ||
* [[https://winitpro.ru/index.php/2019/09/09/keepalived-ha-balansirovka-plavayushhiy-ip-adres/|Keepalived: настройка высокой доступности и плавающих IP адресов в CentOS 7]] | * [[https://winitpro.ru/index.php/2019/09/09/keepalived-ha-balansirovka-plavayushhiy-ip-adres/|Keepalived: настройка высокой доступности и плавающих IP адресов в CentOS 7]] | ||
* [[https://habr.com/ru/post/524688/|Отказоустойчивый кластер с балансировкой нагрузки с помощью keepalived]] | * [[https://habr.com/ru/post/524688/|Отказоустойчивый кластер с балансировкой нагрузки с помощью keepalived]] | ||
+ | |||
+ | |||
+ | ===== Установка ==== | ||
<code> | <code> | ||
- | nodeN# apt install keepalived | + | # apt install keepalived |
+ | </code> | ||
- | node1# cat /etc/keepalived/keepalived.conf | + | ===== Настройка VRRP ==== |
+ | |||
+ | * Разобраться: как ведет себя в случае link down eth1/2 | ||
+ | |||
+ | <code> | ||
+ | nodeN# cat /etc/keepalived/keepalived.conf | ||
</code><code> | </code><code> | ||
vrrp_instance VI_1 { | vrrp_instance VI_1 { | ||
- | state MASTER | + | |
+ | # state MASTER | ||
+ | # state BACKUP | ||
interface eth0 | interface eth0 | ||
+ | # interface br0 | ||
virtual_router_id 1 | virtual_router_id 1 | ||
virtual_ipaddress { | virtual_ipaddress { | ||
192.168.X.254 label eth0:1 | 192.168.X.254 label eth0:1 | ||
+ | # 192.168.X.254 label br0:1 | ||
172.16.1.X/24 dev eth1 | 172.16.1.X/24 dev eth1 | ||
- | 172.16.2.X/24 dev eth3 | + | # 172.16.2.X/24 dev eth2 |
- | } | + | |
- | notify_backup "/usr/local/bin/vrrp.sh BACKUP" | + | |
- | notify_master "/usr/local/bin/vrrp.sh MASTER" | + | |
- | } | + | |
- | </code><code> | + | |
- | node2# cat /etc/keepalived/keepalived.conf | + | |
- | </code><code> | + | |
- | vrrp_instance VI_1 { | + | |
- | state BACKUP | + | |
- | interface eth0 | + | |
- | virtual_router_id 1 | + | |
- | virtual_ipaddress { | + | |
- | 192.168.X.254 label eth0:1 | + | |
- | 172.16.1.X/24 dev eth1 | + | |
- | 172.16.2.X/24 dev eth3 | + | |
} | } | ||
notify_backup "/usr/local/bin/vrrp.sh BACKUP" | notify_backup "/usr/local/bin/vrrp.sh BACKUP" | ||
Line 46: | Line 45: | ||
MASTER) | MASTER) | ||
ip route delete default | ip route delete default | ||
- | ip route add default via 172.16.1.254 table 101 | + | ip route add default via 172.16.1.254 |
- | ip route add default via 172.16.2.254 table 102 | + | |
- | /root/select_isp.sh | + | # ip route add default via 172.16.1.254 table 101 |
+ | # ip route add default via 172.16.2.254 table 102 | ||
+ | # /root/select_isp.sh | ||
;; | ;; | ||
BACKUP) | BACKUP) | ||
+ | ip route delete default | ||
ip route add default via 192.168.X.254 | ip route add default via 192.168.X.254 | ||
;; | ;; | ||
Line 56: | Line 58: | ||
</code><code> | </code><code> | ||
nodeN# chmod +x /usr/local/bin/vrrp.sh | nodeN# chmod +x /usr/local/bin/vrrp.sh | ||
+ | </code> | ||
+ | |||
+ | ===== Настройка балансировки нагрузки ===== | ||
+ | |||
+ | * [[https://habr.com/ru/post/104621/|Балансировка нагрузки с LVS]] | ||
+ | |||
+ | <code> | ||
+ | gate# cat /etc/keepalived/keepalived.conf | ||
+ | </code><code> | ||
+ | # prod_nodes | ||
+ | virtual_server 172.16.1.X 1194 { | ||
+ | protocol UDP | ||
+ | real_server 192.168.X.201 1194 { | ||
+ | weight 1 | ||
+ | TCP_CHECK { | ||
+ | connect_port 7505 | ||
+ | } | ||
+ | } | ||
+ | real_server 192.168.X.202 1194 { | ||
+ | weight 1 | ||
+ | TCP_CHECK { | ||
+ | connect_port 7505 | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | # test_nodes | ||
+ | virtual_server 172.16.1.X 2194 { | ||
+ | real_server 192.168.X.203 1194 { | ||
+ | TCP_CHECK { | ||
+ | connect_port 7505 | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | |||
+ | #virtual_server 172.16.1.X 80 { | ||
+ | # protocol TCP | ||
+ | |||
+ | # real_server 192.168.X.10 82 {} | ||
+ | # real_server 192.168.X.10 8000 {} | ||
+ | |||
+ | # real_server 192.168.X.10 NNNNN {TCP_CHECK {}} | ||
+ | # ... | ||
+ | |||
+ | # real_server 192.168.X.201 NNNNN {TCP_CHECK {}} | ||
+ | # ... | ||
+ | # real_server 192.168.X.203 NNNNN {TCP_CHECK {}} | ||
+ | # ... | ||
+ | # real_server 192.168.X.10 80 {} | ||
+ | #} | ||
+ | </code> | ||
+ | |||
+ | ===== Запуск и мониторинг ===== | ||
+ | <code> | ||
+ | # keepalived -t | ||
+ | |||
+ | # service keepalived restart | ||
+ | |||
+ | # watch "service keepalived status | cat" | ||
+ | |||
+ | # watch ipvsadm -L -n | ||
- | nodeN# service keepalived restart | + | # ipvsadm -L -n -c |
</code> | </code> |