300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 高可用集群下的负载均衡(7):haproxy + keepalived 实现高可用负载均衡

高可用集群下的负载均衡(7):haproxy + keepalived 实现高可用负载均衡

时间:2018-09-17 11:30:09

相关推荐

高可用集群下的负载均衡(7):haproxy + keepalived 实现高可用负载均衡

实验环境

server1 和 server2 是调度器,server3 和 server4 是服务器

一、调度器中进行配置 haproxy+keepalived

server1 与server2 均要配置

【1】下载keepalived

yum install -y keepalived

【2】server1 中修改配置文件

[root@server1 keepalived]# cat keepalived.conf ! Configuration File for keepalivedglobal_defs {notification_email {root@localhost}notification_email_from keepalived@localhostsmtp_server 127.0.0.1smtp_connect_timeout 30router_id LVS_DEVELvrrp_skip_check_adv_addr#vrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0}vrrp_script check_haproxy {#script "killall -0 haproxy"script "/opt/check_haproxy.sh" #可以使用脚本,也可以直接killallinterval 2weight 0}vrrp_instance VI_1 {state MASTERinterface eth0virtual_router_id 65priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}track_script {check_haproxy}virtual_ipaddress {172.25.0.100}}

【3】server2 中修改配置文件(server2是backup,且优先级低于server1)

[root@server2 keepalived]# cat keepalived.conf ! Configuration File for keepalivedglobal_defs {notification_email {root@localhost}notification_email_from keepalived@localhostsmtp_server 127.0.0.1smtp_connect_timeout 30router_id LVS_DEVELvrrp_skip_check_adv_addr#vrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0}vrrp_script check_haproxy {#script "killall -0 haproxy"script "/opt/check_haproxy.sh" #可以使用脚本,也可以直接killallinterval 2weight 0}vrrp_instance VI_1 {state BACKUPinterface eth0virtual_router_id 65priority 50advert_int 1authentication {auth_type PASSauth_pass 1111}track_script {check_haproxy}virtual_ipaddress {172.25.0.100}}

二、编写脚本

记得给可执行权限

两台虚拟机中都需要创建此脚本

[root@server1 opt]# vim /opt/check_haproxy.sh#!/bin/bashsystemctl status haproxy &> /dev/null || systemctl restart haproxy &> /dev/nullkillall -0 haproxyif [ $? -ne 0 ];thensystemctl stop keepalivedfi[root@server1 opt]# chmod +x /opt/check_haproxy.sh #可执行权限

三、haproxy

可以先修改好一台虚拟机中的/etc/haproxy/haproxy.cfg文件,然后使用scp命令发送到另一台虚拟机上

# use_backend staticif url_staticacl read_request method GETacl read_request method HEADacl write_request method PUTacl write_request method POSTuse_backend staticif read_requestuse_backend app if write_requestdefault_backend static# default_backend app#---------------------------------------------------------------------# static backend for serving up images, stylesheets and such#---------------------------------------------------------------------backend staticbalanceroundrobinserverstatic 172.25.15.3:80 check#---------------------------------------------------------------------# round robin balancing between the various backends#---------------------------------------------------------------------backend appbalanceroundrobin# balancesource# balance static-rrserver app1 172.25.15.4:80 checkserver backup 127.0.0.1:80 backup

四、测试

【1】初始状态

两台虚拟机中的haproxy和keepalived都是打开状态。此时172.25.15.100是在server1上(因为server1的是master优先级高),server2没有172.25.15.100

【2】验证高可用

在server1上:systemctl stop haproxy

此时172.25.15.100不再server1上了

关闭haproxy后172.25.15.100直接迁移到server2中了,实现了高可用

【3】验证优先级

重新打开server1中的haproxy之后,ip又会迁移回来。这是因为server1中的优先级高于server2

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。