Keepalived 高可用集群

通过keepalived实现高可用集群配置,环境配置不做解释,主要从其配置开始说明。

一、虚拟路由配置

有两台keepalived开始配置。

1、master服务器配置

2、backup配置

3、VIP自动漂移测试

1)查看组播地址数据包发送

2)KA1停止keepalive服务后

说明vip又优先级为100的master漂移到80的backup上。

二、keepalived的日志分离

默认情况下。keepalived的日志会被保存在/var/log/messages文件中,这个文件中除了含有keepalived的日志外,还有其他服务的日志信息,这样不利于对于keepalived的日志进行查看。

1、设定日志级别为第六级

bash 复制代码
[root@KA1 ~]# vim /etc/sysconfig/keepalived
KEEPALIVED_OPTIONS="-D -S 6"

2、修改日志服务配置文件

将第6级的日志放/var/log/keepalived.log文件中

3、重启日志服务及keepalived服务查看日志。

三、keepalived子配置文件设定

1、在主配置文件中导入子配置文件再建立子配置文件目录并测试。

2、子配置文件

3、重启后测试

四、keepalived的抢占模式

抢占模式:那个优先级高那个就直接抢占vip,若加入一个有限级更高的会抢占vip。

非抢占模式:只要服务器正常vip就不会漂移。

1、设定非抢占模式。

KA1中

KA2中设置启用非抢占模式即可

测试:停止KA1服务,再重启,VIP不会再漂移至KA1

2、抢占延迟

测试,首先停止KA2服务,再一同重启服务,通过watch -n 1 ip a 查看状态。发现十秒后KA1会抢占VIP。

五、keepalived的单播模式

KA1和KA2中分别关闭组播,设置单播源地址及目的地址邻居池。

测试,在新的shell中测试

六、keepalivedVIP迁移邮件告警

1、安装邮件服务

root@KA1 \~\]# dnf install s-nail postfix -y \[root@KA2 \~\]# dnf install s-nail postfix -y ### 2、邮件服务编辑配置文件 vim /etc/mail.rc ![](https://i-blog.csdnimg.cn/direct/2a19e5d3b0c14f909fbbc39f8b38ba07.png) ### 3、设定邮件告警脚本 增加可执行权限 ```bash #!/bin/bash mail_dest='*********@163.com' mail_send() { mail_subj="$HOSTNAME to be $1 vip 转移" mail_mess="`date +%F\ %T`: vrrp 转移,$HOSTNAME 变为 $1" echo "$mail_mess" | mail -s "$mail_subj" $mail_dest } case $1 in master) mail_send master ;; backup) mail_send backup ;; fault) mail_send fault ;; *) exit 1 ;; esac ``` ### 4、配置keepalived告警 ![](https://i-blog.csdnimg.cn/direct/92f29ac9b6624f9dad334b9afe0e5f09.png) ### 5、vip迁移邮件告警测试 ![](https://i-blog.csdnimg.cn/direct/e62709d39ddc4081be5fd1a6a896ddfc.png) ## 七、keepalived的双主模式 双主模式即为互为备份有两个VIP。 ### 1、编写配置文件,设置两个vip两台服务器互为备份 ![](https://i-blog.csdnimg.cn/direct/14370bd91dc04ab8b12a20b525f3ff0c.png) 名称与优先级不同,其余均一致,相互为备份。 ### 2、重启后测试效果 ![](https://i-blog.csdnimg.cn/direct/3423db0802cf473fb3a8187657eac866.png) ![](https://i-blog.csdnimg.cn/direct/2fe13ad0d0894306be1161275ef21e4e.png) 停止KA1keepalived查看vip变化 ![](https://i-blog.csdnimg.cn/direct/24644c6e63914e04a0ef4e6351945c7c.png) ## 八、实现LVS的高可用性 ### 1、RS服务器配置 设置同keepalived的vip环回地址,并设置vrp禁ping。 ![](https://i-blog.csdnimg.cn/direct/d2f9c01b79ed4ba4add1f9d2d670aa63.png) ### 2、配置keepalived主机 编写配置文件 ![](https://i-blog.csdnimg.cn/direct/b13f5f1e4b88435b84b191cf804caa8d.png) 2、测试 通过动态查看watch -n 1 ipvsadm -Ln 停止KA1服务。 ![](https://i-blog.csdnimg.cn/direct/6f05d84860bf48ce90cb1f0b6e1864ae.png) 停止后规则会自动转到KA2中。 ## 九、双主模式代理不同业务 两个VIP分别代理web业务与mysql数据库业务 在上述实验中已经将web业务服务叙述完毕,现将两种业务用不同的子配置文件进行编写。 首先在业务主机中增加数据库服务的VIP ### 1、在业务主机中下载数据库服务,并建立用户并给其权限。 dnf install mariadb-server -y ### 2、修改主配置文件后,编写子配置文件 1)web服务 ![](https://i-blog.csdnimg.cn/direct/8680b3f548944e5cb8b99b8fc429a1cd.png) 2)数据库服务 ![](https://i-blog.csdnimg.cn/direct/3c5a23f7031c4f8baae018ba736987d5.png) ### 3、测试通过VIP分别访问数据库服务和web服务 ![](https://i-blog.csdnimg.cn/direct/a3477c09caee483591dfe8d28222aa18.png) ## 十、利用VRRP Script实现全能的高可用性 1、主旨就是备份调度器通过keepalived使用VRRP协议发送信息监控其是否存活,若不发送信息则讲VIP迁移至另外一台调度器。 2、haproxy的高可用是keepalived通过脚本测试haproxy是否是在正常工作,若正常工作则它的优先级不改变,若非正常工作通过keepalived的降低优先级的配置,将VIP让出去。 ### 1、在Keepalived业务主机中安装Haproxy并业务主机开启内核路由功能 > \[root@KA1+2 \~\]# dnf install haproxy-2.4.22-4.el9.x86_64 -y > > \[root@KA1 \~\]# vim /etc/sysctl.conf > > \[root@KA1+2 \~\]# vim /etc/sysctl.conf > > net.ipv4.ip_nonlocal_bind=1 ### 2、编写Haproxy配置文件增加调度规则 > vim /etc/haproxy/haproxy.cfg > > listen webserver > > bind 172.25.254.100:80 > > mode http > > server web1 172.25.254.10:80 check > > server web2 172.25.254.20:80 check > > > \[root@KA1+2 \~\]# systemctl enable --now haproxy.service ### 3、Keepalived与Haproxy联动 1、编写Haproxy测试脚本 只需要在优先级高的主服务器上配置即可 > \[root@KA1 \~\]# vim /etc/keepalived/scripts/haproxy_check.sh > > #!/bin/bash > > killall -0 haproxy \&\> /dev/null > > \[root@KA1 \~\]# chmod +x /etc/keepalived/scripts/haproxy_check.sh 2、编写在keepalived中Haproxy测试板块 ![](https://i-blog.csdnimg.cn/direct/97a266d0752d414caf76092d1be8b513.png) ### 4、通过Haproxy状态运行测试 Haproxy停止运行后VIP自动跳转到KA2上 ![](https://i-blog.csdnimg.cn/direct/c5bbc79e11904b13a71bf1c192f337c8.png) ![](https://i-blog.csdnimg.cn/direct/64830e8d77e145d6bf6ad5b6ffcc8101.png)

相关推荐
盖头盖2 小时前
【无参数_Rce】
服务器
LateFrames4 小时前
IIS 窗口不显示,但是任务栏状态正常
服务器·windows·microsoft
feng68_4 小时前
HAProxy算法实践
linux·运维·haproxy
志栋智能4 小时前
AI驱动的系统自动化巡检:重塑IT基石的智慧“守护神”
大数据·运维·人工智能·云原生·自动化
DeeplyMind5 小时前
第23章 ROCm虚拟化栈Docker化实战
运维·docker·容器
吹牛不交税6 小时前
在vmware中右键SSH连接虚拟机报错Could not resolve hostname
linux·服务器·ssh
西柚云6 小时前
把Codex装进VSCode!OpenAI编程助手插件版来了
服务器·ide·vscode·ai编程·codex
xiaoliuliu123457 小时前
Xshell-7.0.0111p安装步骤详解(附SSH连接与远程命令教程)
运维·ssh
gaize12138 小时前
服务器是什么?用来做什么?基本属性有什么?如何配置和挑选?
运维·服务器