0%

基于 keepalived实现服务多机热备

Keepalived的作用是检测后端TCP服务的状态,如果有一台提供TCP服务的后端节点死机,或者工作出现故障,keepalived会及时检测到,并将有故障的节点从系统中剔除,当提供TCP服务的节点恢复并且正常提供服务后keepalived会自动将TCP服务的节点加入到集群中。这些工作都是keepalived自动完成,不需要人工干涉,需要人工做的只是修复发生故障的服务器,以下通过示例来演示。

前提:为了测试能顺利进行,需先关闭selinux和firewalld。

测试环境如下:

名称 IP
keepalived主机 10.0.0.20
keepalived备机 10.0.0.21
http服务器1 10.0.0.22
http服务器2 10.0.0.23
virtual ip 10.0.0.100

一、两台http服务器的安装

1、 两台机均安装httpd

1
$ sudo yum install -y httpd

2、 添加首页

1
2
3
4
5
# http服务器1设置
echo “10.0.0.22” >/var/www/html/index.html

# http服务器2设置
echo “10.0.0.23” >/var/www/html/index.html

3、 启动并设置开机启动httpd

1
2
$ sudo systemctl start httpd
$ sudo systemctl enable httpd

二、两台keepalived主机的设置

1、 两台机均安装keepalived

1
2
#安装依赖文件与keepalive
$ sudo yum install -y openssl openssl-devel keepalived

2、 keepalived主机配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
$ sudo vim /etc/keepalived/keepalived.conf

vrrp_instance VI_1 {
#指定该节点为主节点,备用节点设置为BACKUP
state MASTER

#绑定虚拟IP的网络接口
interface eno16777736

#VRRP组名,两个节点设置一样,以指明各个节点同属一VRRP组
virtual_router_id 51

#主节点的优先级,数值在1~254,注意从节点必须比主节点的优先级别低
priority 50

##组播信息发送间隔,两个节点需一致
advert_int 1

#设置验证信息,两个节点需一致
authentication{
auth_type PASS
auth_pass 1111
}

#指定虚拟IP,两个节点需设置一样
virtual_ipaddress{
10.0.0.100
}
}

#虚拟IP服务
virtual_server 10.0.0.100 80 {
#设定检查间隔
delay_loop 6

#指定LVS算法
lb_algo rr

#指定LVS模式
lb_kind NAT
nat_mask 255.255.255.0

#持久连接设置,会话保持时间
persistence_timeout 50

#转发协议为TCP
protocol TCP

#后端实际TCP服务配置
real_server 10.0.0.22 80 {
weight 1
}

real_server 10.0.0.23 80 {
weight 1
}
}

3、 keepalived备机的keepalived.conf的配置,不同之处如下:

1
2
3
# 其它配置跟keepalived主机相同
state BACKUP
priority 30

/etc/keepalived/keepalived.conf为keepalived的主配置文件。 以上配置state表示主节点为10.0.0.20,副节点为10.0.0.21,虚拟IP为 10.0.0.100。 后端的真实服务器为10.0.0.22和10.0.0.23。 当通过10.0.0.100访问web服务器时,自动转到后端真实服务器,后端节点的权重相同,类似轮询的模式。

三、keepalived的启动与测试

1、 启动keepalived

1
2
$ sudo systemctl start keepalived
$ sudo systemctl enable keepalived

2、 查看keepalived主机的IP

1
$ ip addr show

alt

四、测试结果

1、 测试前查看keepalived主机和备机的IP,结果如图

alt alt

2、 重启keepalived主机后,查看keepalived备机的IP显示

alt alt

以上测试结果说明,当keepalived备机在keepalived主机宕机的情况会自动接管了资源。但待keepalived主机恢复正常的时候,主机会重新接管资源。

查看原文

  • 本文作者: 6x
  • 本文链接: https://6xyun.cn/article/61
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-ND 许可协议。转载请注明出处!