keepalived服务的三个重要功能
1.管理LVS负载均衡软件
以lvs为例
- 早期使用lvs需要修改内核才能使用,但是由于性能优异,现在已经被收入内核。
- LVS和Nginx一样,能够实现反向大力功能。
- 早期的LVS软件需要通过命令或者脚本实现管理,如果LVS机器突然宕机,会导致整个负载均衡无法工作,因此引入了Keepalived软件,它和LVS紧密协作。
keepalived+lvs架构图
2.对负载均衡节点健康检查
- keepalived可以在自身的配置文件中修改对LVS节点的管理、启停,以及当LVS集群节点失效的时候,踢出集群,并且转换IP地址等配置,转移到健康的节点上,从而保证用户的访问不受影响。
- 当故障的节点恢复后,keepalived服务能够重新将其加入LVS集群中。
3.作为网络系统服务的高可用
- 可以实现两台机器间(master和backup)主机之间的故障和自动转移
- 这个主机可以是普通的禁止停机的业务服务区,也可以是反向代理服务器
keepalived高可用服务搭建
1.准备四台linux机器
web01 192.168.178.124
web02 192.168.178.125
lb01 192.168.178.126 keepalived主服务器(Nginx主负载均衡)
lb02 192.168.178.127 keepalived备服务器(Nginx辅负载均衡)
2.系统环境准备
[root@lb01 conf]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
[root@lb01 conf]#
[root@lb01 conf]# uname -r
3.10.0-862.el7.x86_64
[root@lb01 conf]# uname -m
x86_64
3.安装keepalived(lb01、lb02)
[root@lb01 ~]# yum install keepalived -y
[root@lb01 ~]# rpm -qa keepalived
keepalived-1.3.5-16.el7.x86_64
[root@lb02 ~]# yum install keepalived -y
[root@lb02 ~]# rpm -qa keepalived
keepalived-1.3.5-16.el7.x86_64
4.keepalived配置文件解读
#默认配置文件路径
- /etc/keepalived/keepalived.conf
- keepalived在上面介绍了主要有3个功能,这里仅仅分享其高可用的功能,非高可用性相关的功能可以将其注释掉。
#全局定义部分
[root@lb01 conf]# head -12 /etc/keepalived/keepalived.conf | cat -n
1 ! Configuration File for keepalived
2
3 global_defs {
4 notification_email {
5 acassen@firewall.loc
6 failover@firewall.loc
7 sysadmin@firewall.loc
8 }
9 notification_email_from Alexandre.Cassen@firewall.loc
10 smtp_server 192.168.200.1
11 smtp_connect_timeout 30
12 router_id LVS_DEVEL
#行内容解释
1.注释行, 1和#作用一样
2.空行
3-8.定义邮件报警的地址,当keepalived主备切换,或者RS(后端服务器real server)故障时发送告警邮件。这里一般不用,运维使用高级监控软件
9.指定告警邮件,发信人的地址
10.指定邮件服务器地址,例如本地配置了sendmail服务
11.连接邮件服务器的超时时间
12.重要参数,指定keepalived的路由标识(router-id) ,在局域网内,该ID应该是唯一的。
#VRRP实例配置部分
19 vrrp_instance VI_1 {
20 state MASTER
21 interface ens33
22 virtual_router_id 51
23 priority 100
24 advert_int 1
25 authentication {
26 auth_type PASS
27 auth_pass 1111
28 }
29 virtual_ipaddress {
30 192.168.178.126/24 dev ens33 lable ens33:3
31 }
32 }
#参数解释:
1,定义vrrp实例,名字是VI_1,每一个vrrp实例可以理解为是keepalived的一个业务,
vrrp实例在配置文件中可以有多个,并且主节点的keepalived配置的vrrp
instance在备节点也必须存在,才能实现故障迁移(keepalived是一款工具,真正干活的配置是vrrp instance
2.参数作用是表示当前实例V-1的角色是主节点,该参数值只有MASTER和BACKUP两种,严格区分大小写。MASTER表示工作中的主节点, BACKUP表示备用节点。BACKUP在MASTER故障时,接替其工E继续运转。
3. insterface为网络通信接口,对外提供服务器的网络接口,根据自己机器修改
4.唯一虚拟路由ID标识,最好是数字,在当前keepalived.conf配置文件中必须是唯一的,且在MASTER和BACKUP的配置中相同实例的virtual-router_id必须是一样的,否则会出现脑裂问题
5.定义实例的优先级,也是一串数字,数字越大,优先级越高。在同一个vrrpinstance实例里,MASTER的优先级必须高于BACKUP,一般配置MASTER和BACKUP间隔大小在50,例如MASTER的优先级150,
BACKUP的优先级是小于100的数值。
6.定义MASTER和BACKUP之间的通信检查时间,默认单位是秒 25-28权限配置参数,密码类型是PASS,密码为明文方式,长度建议不超过8个字符,一般用4位数字,同一个VRRP实例,
MASTER和BACKUP的密码必须一样才能通信.
29-32.定义虚拟IP的地址,可以配置多个IP地址,且明确子网掩码和IP绑定的网络接口(网卡名)
,否则虚拟IP的子网掩码默认是32位,网络接口和前面的Interface参数一致。这里的虚拟IP
(VIP)就是实际工作中需要使用的IP地址,和域名进行绑定解析