高可用集群keepalive实验

一、介绍

为了解决调度器挂掉VIP故障的问题

采用主备、双主等模式建立冗余机制

VRRP虚拟路由冗余协议,解决路由故障

VRRP主要解决服务器出去的问题

keepalive主要解决客户端进来的问题

VIP会给谁取决于主备设备的优先级

VRRP相关技术

通告:心跳,优先级;周期性

工作模式:抢占式、非抢占式

安全认证:

无认证

简单字符认证

MDS

工作模式:

主备

双主

keepalived架构

二、应用示例

1、环境配置

注意:以下配置均在防火墙和selinux关掉的情况下

在两台realserver上安装http并写入内容

[root@rs2 ~]# echo rs2 - 172.25.254.120 > /var/www/html/index.html
[root@rs2 ~]# systemctl start httpd

[root@rs1 ~]# echo rs1 - 172.25.254.120 > /var/www/html/index.html
[root@rs1 ~]# systemctl start httpd

在ka1里面能够访问

[root@ka1 ~]# curl 172.25.254.110
rs1 - 172.25.254.110
[root@ka1 ~]# curl 172.25.254.120
rs2 - 172.25.254.120

2、安装keepalived

[root@ka1 ~]# yum install keepalived -y

编辑vim配置方便ka配置文件的编辑
[root@ka1 ~]# vim ~/.vimrc


[root@ka1 ~]# vim /etc/keepalived//keepalived.conf

将配置文件复制到ka2上

在ka2上更改以下复制过来的配置文件

两台服务器上启动ka服务

[root@ka1 ~]# systemctl enable --now keepalived.service
Created symlink from /etc/systemd/system/multi-user.target.wants/keepalived.service to /usr/lib/systemd/system/keepalived.service.

查看IP

ka1上有VIP

ka2上没有VIP

抓包测试:

可以看到访问的都是10服务器

通过远程ka1关闭卡服务后

自动访问ka2

查看一下IP

这个时候可以看到ka1上没有VIP了,因为VIP在ka1down掉的同时迁移给了ka2

3、开启日志功能

编辑以下文件添加日志级别

[root@ka1 ~]# vim /etc/sysconfig/keepalived
 

[root@ka1 ~]# vim /etc/rsyslog.conf

重启服务

[root@ka1 ~]# systemctl restart keepalived.service
[root@ka1 ~]# systemctl restart rsyslog.service

切换到日志目录就可以看到生成了独属于ka的日志文件

[root@ka1 ~]# cd /var/log
[root@ka1 log]# ll | grep kee
-rw-------  1 root   root      4943 Aug 13 13:42 keepalived.log

4、独立子配置文件

编辑主配置文件

先去创建我们添加的子配置文件目录

[root@ka1 ~]# mkdir -p /etc/keepalived/conf.d
[root@ka1 ~]# vim /etc/keepalived/conf.d/VIP.conf

将以上注释的内容粘贴到子配置文件中

[root@ka1 ~]# cat /etc/keepalived/conf.d/VIP.conf
vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.25.254.100/24 dev eth0 label eth0:1
    }
}

5、设置非抢占模式

需要将子配置文件给注释掉

两台ka配置一样

将ka的服务停掉,查看两台ka的IP,可以发现ka2已经将VIP获取了,ka1没有VIP,如果在开启ka1上的服务是不会把VIP抢过来的

6、设置抢占式延迟模式

编辑vim /etc/keepalived/keepalived.conf文件

7、设置单播通告模式

默认Ka主机之间利用多播通告消息可能会造成网络堵塞,所以我们可以用单播减少流量

抓包测试

停掉ka1的服务使VIP到ka2上去再测试:

8、Keepalived 通知脚本配置

进去邮箱获取授权码先开启服务

[root@ka1 ~]# vim /etc/mail.rc

测试发送

[root@ka1 ~]# echo test message | mail -s test 1589145046@qq.com

[root@ka1 ~]# vim /etc/keepalived/mail.sh

[root@ka1 ~]# vim /etc/keepalived/keepalived.conf

测试:

在ka1上重启服务时ka1获取VIPka1会发送一个邮件

在ka1上停掉服务时ka2获取VIPka2会发送一个邮件

[root@ka1 ~]# systemctl restart keepalived.service
[root@ka1 ~]# systemctl stop keepalived.service
[root@ka1 ~]# systemctl start keepalived.service

9、实现 master/master 的 Keepalived 双主架构

        master/slave的单主架构,同一时间只有一个Keepalived对外提供服务,此主机繁忙,而另一台主机却 很空闲,利用率低下,可以使用master/master的双主架构,解决此问题。

效果测验:

ka1上会出现100VIP

ka2上会出现200VIP

如果ka1down掉了,那ka2会获得100、200的两个VIP

10、IPVS高可用性的实现- LVS-DR 模式

在rs上准备web服务器并使用脚本绑定VIP至web服务器lo网卡

[root@rs1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-lo

或者  ip a a 172.25.254.100 dev lo 临时配置

[root@rs2 ~]# sysctl -a | grep arp  用这条命令查看要加入的参数

[root@rs1 ~]# vim /etc/sysctl.d/arp.conf

配置完sysctl -p刷新

安装ipvsadm方便查看调度策略

[root@ka1 ~]# yum install ipvsadm -y

[root@ka1 ~]# vim /etc/keepalived/keepalived.conf

效果测试:

当两台后端服务器都正常运行时,策略都有

当挂掉一台后端服务器的http时,自动修改策略

[root@rs1 network-scripts]# systemctl stop httpd

关闭ka1的服务时自动切换到ka2上

[root@ka1 ~]# systemctl stop keepalived.service

11、实现HAProxy高可用-利用脚本实现主从角色切换

[root@ka1 ~]# vim /etc/keepalived/test.sh  编写一个脚本测试

#!/bin/bash
[ ! -f /mnt/lee ]

[root@ka1 ~]# chmod +x /etc/keepalived/test.sh
[root@ka1 ~]# sh /etc/keepalived/test.sh
[root@ka1 ~]# echo $?     状态码为0
0

[root@ka1 ~]# vim /etc/keepalived/keepalived.conf

定义 VRRP script

调用VRRP script

当没有创建文件时,VIP在ka1上为主

创建文件后,脚本生效自动降低优先级从而切换主设备

[root@ka1 ~]# touch /mnt/lee
[root@ka1 ~]# sh /etc/keepalived/test.sh
[root@ka1 ~]# echo $?
1   非0配置文件中的VRRP script生效

首先在两个ka1和ka2上安装haproxy

为了使ka上即使没有VIP也能启动,我们需要启动内核参数

编辑/etc/sysctl.conf

sysctl -p

编辑haroxy配置文件

启动服务后查看端口是否启动

删掉两台rs中的VIP

ip a d 172.25.254.100/32 dev lo

编辑/etc/sysctl.d/arp.conf

在两台ka上的keepalived配置文件中的策略注释掉

测试访问100

把检测haproxy状态的命令添加到脚本中

[root@ka1 haproxy]# cat /etc/keepalived/test.sh
#!/bin/bash
killall -0 haproxy

编写好脚本后停掉ka1上的haproxy,script生效降低优先级,VIP自动飘逸到ka2上成为主设备。

  • 15
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值