天天看点

集群重中之重:LVS-Keepalived的部署学习一、工作原理二、部署服务

Keepalived

  • 一、工作原理
  • 二、部署服务
    • 2.1 IP分配
    • 2.2 配置主负载调度器
    • 2.3 配置备负载调度器
    • 2.3 web1 设置
    • 2.4 web2 设置
    • 2.5 测试

一、工作原理

基于VRRP协议来实现的LVS服务高可用方案

  • VRRP 虚拟路由冗余协议
  • 可以解决静态路由出现的单点故障问题

在一个LVS服务集群中通常有主服务器(MASTER) 和备份服务器(BACKUP) 两种角色的服务器,但是对外表现为一个虚拟IP,主服务器会发送VRRP通告信息给备份服务器,当备份服务器收不到VRRP消息的时候,即主服务器异常的时候,备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性

二、部署服务

2.1 IP分配

主DR负载调度服务器:192.168.253.11

备DR负载调度服务器:192.168.253.22

web1 服务器:192.168.253.33

web2 服务器:192.168.253.44

VIP :192.168.253.111

客户机:192.168.253.123

2.2 配置主负载调度器

关闭防火墙

systemctl stop firewalld
setenforce 0
           

软件开启

# 安装
yum -y install keepalived	

# 开启
modprobe ip_vs

# 查看
cat /proc/net/ip_vs
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port Forward Weight ActiveConn InActConn
           

配置文件

# 进入目录
cd /etc/keepalived/

# 备份原配置文件
cp keepalived.conf keepalived.conf.bak
           
  • vim keepalived.conf
# 定义全局参数
3 global_defs {

# 第10行 修改邮件服务指向本地
10    smtp_server 127.0.0.1

# 第12行 修改服务器名称,主备不能一样
12    router_id LVS_01

# 第14行 注释,取消遵守vrrp协议功能,否则VIP无法连接
14 #   vrrp_strict

} 
           
# 定义vrrp热备实例参数
19 vrrp_instance VI_1 {

# 第20行 修改热备状态指定,主是master,备是backup
20     state MASTER

# 第21行 修改承载VIP地址的物理接口
21     interface ens33

# 第22行 修改虚拟路由器的IP号,每个热备组保持一致
22     virtual_router_id 10

# 第23行 修改优先级,越大级别越高
23     priority 100
24     advert_int 1				# 通告间隔秒数(心跳频率)
25     authentication {			# 定义认证信息,每个热备足保持一致
26         auth_type PASS		# 认证类型

# 第27行 修改验证密码,主备需要一致
27         auth_pass 123456
28     }
29     virtual_ipaddress {		# 指定群集VIP地址
30         192.168.253.111

}
           
第36行 修改虚拟服务器地址、端口、定义虚拟服务器和web服务器池参数
36 virtual_server 192.168.253.111 80 {
37     delay_loop 6							# 健康检查的间隔时间(秒)
38     lb_algo rr 							# 指定调度算法,轮询(rr)

# 第39行 修改群集工作模式轮询(rr)
39     lb_kind DR
40     persistence_timeout 50				# 连接保持时间(秒)
41     protocol TCP							# 应用服务采用的TCP协议

# 第43行 修改第一个web节点的地址、端口
43     real_server 192.168.253.33 80 {
44         weight 1							# 节点的权重

# 第45行 删除45-53行,添加以下内容
45        TCP_CHECK {	
46              connect_port 80				# 添加检查的目标端口
47              connect_timeout 3			# 添加连接超市(秒)
48              nb_get_retry 3				# 添加重试次数
49              delay_before_retry 3		# 添加重试间隔
50          }

# 复制43-51行,添加在下面
# 添加第二个web节点的地址、端口
52     real_server 192.168.253.44 80 {
53         weight 1
54         TCP_CHECK {
55              connect_port 80
56              connect_timeout 3
57              nb_get_retry 3
58              delay_before_retry 3
59          }
60     }
           

关闭内核重定向参数响应

vim /etc/sysctl.conf
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0

sysctl -p
           

重启

  • systemctl restart keepalived.service

2.3 配置备负载调度器

关闭防火墙

systemctl stop firewalld
setenforce 0
           

软件开启

# 安装
yum -y install ipvsadm
yum -y install keepalived	

# 开启
modprobe ip_vs

# 查看
cat /proc/net/ip_vs
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port Forward Weight ActiveConn InActConn
           

配置文件

  • 主负载服务器直接复制文件发送到备用

    scp keepalived.conf [email protected]:/etc/keepalived/

vim keepalived.conf

# 	更改以下几行
12    router_id LVS_02
20     state BACKUP
23     priority 90
           

关闭内核重定向参数响应

vim /etc/sysctl.conf
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0

sysctl -p
           

重启

  • systemctl restart keepalived.service

2.3 web1 设置

# 进入网卡配置目录
cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:0

# 编辑虚拟ip
vim ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.253.111
NETMASK=255.255.255.255
ONBOOT=yes

route add -host 192.168.253.111 dev lo:0

ifup lo:0
ifconfig lo:0
           
vim /etc/sysctl.conf
net.ipv4.conf.lo.arp_ignore = 1  
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

sysctl -p
           

配置网页内容

vim /var/www/html/index.html 
内容
           
  • systemctl restart httpd

2.4 web2 设置

# 进入网卡配置目录
cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:0

# 编辑虚拟ip
vim ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.253.111
NETMASK=255.255.255.255
ONBOOT=yes

route add -host 192.168.253.111 dev lo:0

ifup lo:0
ifconfig lo:0
           
vim /etc/sysctl.conf
net.ipv4.conf.lo.arp_ignore = 1  
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

sysctl -p
           

配置网页内容

vim /var/www/html/index.html 
内容
           
  • systemctl restart httpd

2.5 测试

集群重中之重:LVS-Keepalived的部署学习一、工作原理二、部署服务

切断主服务器

备用顶上

集群重中之重:LVS-Keepalived的部署学习一、工作原理二、部署服务