keepalived高可用

目录

环境配置

让vip怎么能够通信

日志独立

独立配置子文件

抢占vip和非抢占

延迟抢占preempt_delay

keepalived单播

keepalived双主架构

keepalived和lvs高可用检测

haproxy结合keepalived,实现高可用负载均衡集群


环境配置

四台红帽7的虚拟机

KA1   ip  172.25.254.10

KA2  ip   172.25.254.20

server1  ip  172.25.254.110

server2  ip  172.25.254.120

安装keepalived

10和20安装

yum install keepalived -y

主配置文件

介绍

KA1

vim /etc/keepalived/keepalived.conf

全局global

vip

KA2

先下载keepalived服务

20复制粘贴,这条指令是直接复制10的文件内容

scp /etc/keepalived/keepalived.conf root@172.25.254.20:/etc/keepalived/keepalived.conf

进去稍作修改20

重启

systemctl restart keepalived

在10检测组播抓包命令

tcpdump -i eth0 -nn host 224.0.0.18

10的优先级高波10的

20的还没播

让10继续抓包

我们用110远程登录到10上停掉服务

ssh -l root 172.25.254.10

systemctl stop keepalived

然后回到抓包机10,我们看到20开始抓包

然后去20看一下vip,可以看到vip到20啦

我们在110启动10的服务

systemctl restart keepalived

回到10看抓包,又是10的包,证明vip被权限高的抢回来了

让vip怎么能够通信

在10和20,这两个都写上或者都注释掉,都可以ping通

两种方法:两个都写上或者都注释掉,都可以ping通

测试

日志独立

vim /etc/sysconfig/keepalived

指定为0-6都可以

重启

systemctl restart keepalived

进入

vim /etc/rsyslog.conf

重启

systemctl restart rsyslog

systemctl restart keepalived

看一眼是不是都是keepalived

cat /var/log/keepalived.log

独立配置子文件

进入主配置文件

将主配置文件的vrr模块注释掉

加入这条

创建

mkdir -p /etc/keepalived/conf.d

vim /etc/keepalived/conf.d/172.25.254.100.conf

可以将配置卸载子配置文件里,记得吧主配置文件里的配置注释掉

重启

systemctl restart keepalived

就有啦

ifconfig查看vip是否还在

就OK啦

抢占vip和非抢占

抢占的话就会导致网络波动

在10和20都是backup

都加上非抢占

nopreempt

KA1

重启

vim /etc/keepalived/keepalived.conf

KA2

重启

vim /etc/keepalived/keepalived.conf

测试

在10抓包

tcpdump -i eth0 -nn host 224.0.0.18

用110远程连接10down掉

vip在20啦

再把10启动,走的还是20

vip还在20,没有抢占

成功

延迟抢占preempt_delay

5s后抢占不合理,为啦看效果一般5min到10min

10和20都加这一条

KA1   down掉

systemctl stop keepalived.service

还没到5svip没来

vip5s到20,回来了

再重启

10 5s后进行抢占vip回来

做完后删掉,为啦更好的后面实验,用抢占模式

keepalived单播

组播换单播

进入配置文件

vim /etc/keepalived/keepalived.conf

vrrp_strict和单播冲突要将这个注释掉

KA1

重启

systemctl restart keepalived

KA2

测试在10

tcpdump -i eth0 -nn src host 172.25.254.10 and dst 172.25.254.20

测试在KA2,因为没有vip所以没有

在110吧10down掉

systemctl stop keepalived.service

再在20测试

tcpdump -i eth0 -nn src host 172.25.254.20 and dst 172.25.254.10

就可以看到啦

110启动KA1 

systemctl restart keepalived.service

keepalived双主架构

在配置文件里配置第二个 VI_2 vip200 eth0:2

10里

vim /etc/keepalived/keepalived.conf

20里

vim /etc/keepalived/keepalived.conf

当20down掉

systemctl stop keepalived.service

20的vip200会跑到10那里

20开启vip会再回来

systemctl start keepalived.service

keepalived和lvs高可用检测

实现IPVS的高可用

实现单主的 LVS-DR 模式

先给两台server主机在环回接口配上vip地址

server1 172.25.254.110/24

ip a a 172.25.254.100/32 dev lo

设置环回接口不对外通信,我们这此直接在配置文件中写

vim /etc/sysctl.d/arp.conf

配置完之后刷新加载内核

sysctl --system

server2 172.25.254.120/24

ip a a 172.25.254.100/32 dev lo

设置环回接口不对外通信,我们这此直接在配置文件中写

vim /etc/sysctl.d/arp.conf

配置完之后刷新加载内核

sysctl --system

虚拟服务器配置KA1KA2

KA1为啦观察下载

yum install ipvsadm -y

进入配置文件进行配置

vim /etc/keepalived/keepalived.conf

这是ipvsadm检测的配置文件,直接通过配置文件进行检测

检测一个110一个120

20也要配置

监听110的

监听120的

清理掉策略

ipvsadm -C

清理完他会自己再加上,配置文件里写的

测试

将sever1关掉之后

systemctl stop httpd

检测不到啦他就自动从策略中删除啦KA1里

110上线啦

systemctl start httpd

策略自动加上啦

haproxy结合keepalived,实现高可用负载均衡集群

将之前的实验lvs注释掉all

高可用性 VRRP Script

怎么去检测haproxy的状态

如果haproxy坏啦,我通过降低优先级,来使vip漂移到20

脚本

vim /etc/keepalived/test.sh

如果文件存在输出1如果文件不存在输出1

给脚本执行权限

chmod +x /etc/keepalived/test.sh

进入配置文件

systemctl start keepalived.service

启动脚本看输出是0还是1

sh /etc/keepalived/test.sh

echo $?

因为还没有创建文件所以是0

创建文件

touch /mnt/qiqi

echo $?

输出为1

ifconfig查看我们的vip偏移没

10和20

在KA1和KA2上去装

yum install haproxy -y

两台主机都弄

如果有100在本机不存在

我们的haproxy起不来

所以要编辑一个文件

即使你本地有ip也可以正常启动

vim /etc/sysctl.conf

sysctl -p

如果有100在本机不存在

我们的haproxy起不来

所以要编辑一个文件

即使你本地有ip也可以正常启动

配置haproxy

vim /etc/haproxy/haproxy.cfg

启动

systemctl enable --now haproxy.service

20里

启动

systemctl enable --now haproxy.service

看一下启动没

netstat -antlupe | grep haproxy

110 120

删除环回地址

ip a d 172.25.254.100/32 dev lo

重启

systemctl restart keepalived.service

systemctl restart haproxy.service

配置完

如果KA1 haproxy挂啦vip让他漂移到100

所以去辨析一个脚本,让他去读脚本的状态,来进行漂移还是不漂移

vim /etc/keepalived/test.sh

写脚本

10 20

20没有100为啥还能启动

就是因为这个

测试

在10

while true; do curl 172.25.254.100;sleep 2; done

让10挂一下

远程连接10

让他的haproxy挂掉

ssh -l root 172.25.254.10

systemctl stop haproxy

在10内边并没有断掉全程都在监控输出

我们在20里看vip100来啦

ifconfig

在启动10haproxy

systemctl restart haproxy

还是没有断,证明偏移成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值