魏莉的微 2020-03-08
yum -y install ipvsadm yum -y install keepalived
启动keepalived服务
systemctl start keepalived.service
使用配置LVS的时候,不能直接配置内核中的ipvs,需使用ipvs的管理工具ipvsadm进行管理。用于查看lvs转发及代理情况的工具。
2).修改keepalived配置文件
20的Master配置文件如下:
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived global_defs { notification_email { } notification_email_from router_id LVS_01 #表示运行keepalived服务器的一个标识,发邮件时显示在邮件主题的信息 vrrp_skip_check_adv_addr vrrp_garp_interval 0 vrrp_gna_interval 0 } vrrp_instance VI_1 { state MASTER #指定keepalived的角色Master interface ens192 #网卡,ip a查看 virtual_router_id 100 #虚拟路由标识,主备两个节点的设置必须一样,以指明各个节点属于同一VRRP组 priority 100 #定义优先级,Master的priority要高于slave advert_int 1 #设定MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位秒 authentication { #设置验证类型和密码 auth_type PASS auth_pass 1111 } virtual_ipaddress { 10.20.1.99/24 dev ens192 #设置VIP } } virtual_server 10.20.1.99 443 { #设置虚拟服务器,需指定虚拟IP地址和服务端口 delay_loop 3 #健康时间检查,单位秒 lb_algo rr #负载均衡调度算法wlc|rr lb_kind DR #设置LVS实现负载均衡机制,有NAT、TUN、DR三个模式 persistence_timeout 50 #会话保持时间,单位秒。此选项对动态网页是非常有用 protocol TCP #指定转发协议类型,有TCP和UDP real_server 10.20.1.22 443 { #Real Server服务器,这里为Nginx服务器 weight 1 #设置权重 TCP_CHECK { #设置检查方式,可以设置HTTP_GET | SSL_GET connect_port 443 #检测Real Server的侦听端口 connect_timeout 5 #超时时间,单位秒。如果在这个时间内无返回,则说明一次监测失败 retry 3 #设置多少次监测失败,就判断这个Real Server死掉 delay_before_retry 3 #重试间隔 } } real_server 10.20.1.23 443 { weight 1 TCP_CHECK { connect_port 443 connect_timeout 5 retry 3 delay_before_retry 3 } } }
21的slave的/etc/keepalived/keepalived.conf配置,需更改state Backup和修改priority的值小于master的priority。
Master服务器上查看IP,VIP在Master上。
ipvsadm命令查看规则。
3). Real Server配置
因为VS/DR模式,在后端Real Server即Nginx服务器上配置脚本。配置两台Nginx服务器上为回环地址lo:0绑定VIP地址、ARP广播。
vim /opt/scripts/lvs_rs.sh
#!/bin/bash vip=10.20.1.99 ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up route add -host $vip dev lo:0 echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce sysctl -p &>/dev/null
在22、23服务器上分别执行。
4). 测试LVS+Keepalived高可用群集
客户端的浏览器中,能够通过LVS+Keepalived群集的VIP地址漂移(10.20.1.99)正常访问web,验证群集构建成功。
先在20Master上将keepalived.service服务器关闭,查看IP情况:
发现VIP没了。
然后在21Slave上查看VIP是否漂移过来了:
发现VIP已经来到Slave上了。
这时,将20Master上将keepalived.service服务又重新启动,VIP后回来了。
前言:在涉及到对外项目,经手许多小中型网站的架构,F5、LVS及Nginx都比较多,我想一种比较通俗易懂的语气跟大家说明下何谓负载均衡,何谓Linux集群,帮助大家走出这个误区,真正意义上来理解它们。