首页 > 技术文章 > KeepAlived主备模型高可用LVS

trymybesttoimp 2016-12-24 16:17 原文

部署前准备:

  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 }
View Code

   4.将HA1的配置文件发给HA2,做适当修改,即可开启keepalived进行测试,效果如下:

 

推荐阅读