KeepAlived主备模型高可用LVS
部署前准备:
1.至少4台主机:两个Director(HA1,HA2),两个Real Server(RS1,RS2)
2.Director之间时间必须同步,且关闭各主机的防火墙和Selinux
3.出于实验目的,各主机均使用一个网卡(桥接模式),且使用的是CentOS 7主机
部署流程:
1.分别在Director上执行:
yum -y install ipvsadm keepalived
2.分别在Real Server上执行:并自行创建Web服务测试页
yum -y install httpd bash lvs.sh #lvs-dr模型自定义脚本
3.自行测试RS1和RS2的Web服务能否顺利运行,没问题的话配置HA1的keepalived:
1 ! Configuration File for keepalived 2 /*全局配置段*/ 3 global_defs { 4 notification_email { 5 root@localhost //邮件接收方地址 6 } 7 notification_email_from admin@ka.com //邮件发送方地址 8 smtp_server 127.0.0.1 //邮件服务器地址 9 smtp_connect_timeout 30 //邮件服务器连接超时时长 10 router_id node1 //当前路由的ID 11 vrrp_mcast_group4 224.0.0.18 //默认组播域地址 12 } 13 14 /*虚拟路由(实例)配置段*/ 15 vrrp_instance VI_1 { 16 state MASTER //主备状态 17 interface eno16777736 //实例使用的接口名称 18 virtual_router_id 51 //虚拟实例的路由ID,使用默认51就好 19 priority 100 //优先级 20 advert_int 1 //广播通告时间间隔,默认为1s/次 21 authentication { 22 auth_type PASS //认证方式:简单字符串认证,推荐使用 23 auth_pass 1111 //认证密码:可自行定义 24 } 25 virtual_ipaddress { //虚拟地址,可定义多个 26 192.168.1.100 dev enol6777736 label eno16777736:0 27 } 28 } 29 30 /*LVS配置段*/ 31 virtual_server 192.168.1.100 80 { 32 delay_loop 6 //服务轮询时间间隔 33 lb_algo rr //定义调度算法 34 lb_kind DR //LVS集群类型 35 nat_mask 255.255.255.0 36 persistence_timeout 50 //持久连接时长,测试时最好删除或注释此项,否则会一直调度某RS,影响实验效果 37 protocol TCP //keepalived仅支持TCP协议 38 sorry_server 192.168.1.100 80 //错误提示页面 39 40 real_server 192.168.1.103 80 { //RS1配置 41 weight 1 //权重 42 HTTP_GET { //健康状态检测方法 43 url { 44 path / 45 status_code 200 //基于状态码检测 46 } 47 connect_timeout 3 //连接超时时长 48 nb_get_retry 3 //超时后重试连接次数 49 delay_before_retry 3 //超时3s后再次请求 50 } 51 } 52 real_server 192.168.1.104 80 { //RS2配置同RS1 53 weight 2 54 HTTP_GET { 55 url { 56 path / 57 status_code 58 } 59 connect_timeout 3 60 nb_get_retry 3 61 delay_before_retry 3 62 } 63 } 64 }
4.将HA1的配置文件发给HA2,做适当修改,即可开启keepalived进行测试,效果如下: