部署keepalvied+lVS(dr)高可用集群

embedded/2025/2/5 11:58:02/

第一步,环境准备

服务器名称

IP

描述

master

VIP:192.168.244.100

DIP:192.168.244.101

高可用keeplived_master

LVS负载均衡

backup

VIP:192.168.244.100

DIP:192.168.244.102

高可用keeplived_backup

LVS负载均衡

server1

RIP:192.168.244.103

Web服务器

server2

RIP:192.168.244.104

Web服务器

初始化部署,

修改主机名

hostnamectl set-hostname master

hostnamectl set-hostname backup

hostnamectl set-hostname server1  

hostnamectl set-hostname server2

配置域名解析,四台服务器都配置

# cat >> /etc/hosts <<EOF

192.168.244.101 master

192.168.244.102 backup

192.168.244.103 server1

192.168.244.104 server2

EOF

关闭防火墙,关闭selinux,四台服务器都要关闭

systemctl disable firewalld --now

关闭selinux

sed -i '/^SELINUX/s/enforcing/disabled/g' /etc/selinux/config

setenforce 0

安装常用软件

yum -y install ntpdate bash-completion* net-tools wget

配置时间同步

crontab -e

*/1 * * * * /usr/sbin/ntpdate ntp.aliyun.com

第二步,开始安装keepalived,并将/etc/keepalived/keepalived.conf文件进行备份

在master和backup两台服务器上安装

yum -y install keepalived

cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak

第三步,开始修改keepalived.conf配置文件 ,在master和backup两台服务器上修改

cat > /etc/keepalived/keepalived.conf << EOF

global_defs {

   router_id LVS_master  #主和从要有单独的route_id

}

vrrp_instance VI_1 {

    state MASTER  #主为MASTER 从为BACKUP

    interface ens33  #指定配机网卡的设备名

    virtual_router_id 51  #指定虚拟路由主从要一致

    priority 100  #指定优先级主优先高 从做先级低

    advert_int 1  #心跳检测时间间隔

    authentication {  #keepalived内通信认证方式

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {  #指定绑定的vip

        192.168.244.100

    }

}

EOF

master上要修改的keeplived.conf配置文件

backup上要修改的keeplived.conf配置文件

第四步,开启keepalived

启动keepalived

master ~]# systemctl start keepalived

backup ~]# systemctl start keepalived

使用ip a指令查看vip是否配置成功

在master主服务器上配置成功

[root@master ~]# ip a

[root@backup ~]# ip a         //从服务器上没有

测试一下vip是否飘移

关闭master服务器上的keepalived,查看backup服务器上是否有vip 也就是192.168.244.100/32的IP地址,有这说明vip漂移到了backup从服务器上,再开启master主服务器上的keepalived,就会漂移到master主服务器上

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

成功

第五步,安装ipvsadm

master ~]# yum -y install ipvsadm

backup ~]# yum -y install ipvsadm

查看系统是否支持ip_vs模块

第六步,配置 LVS负载均衡,在master和backup两台主从服务器上配置

master ~]# ipvsamd -C

master ~]# ipvsadm -A -t 192.168.10.100:80 -s rr

master ~]# ipvsadm -a -t 192.168.10.100:80 -r 192.168.10.103:80 -g

master ~]# ipvsadm -a -t 192.168.10.100:80 -r 192.168.10.103:80 -g

master ~]# ipvsadm -Ln

backup ~]# ipvsamd -C

backup ~]# ipvsadm -A -t 192.168.10.100:80 -s rr

backup ~]# ipvsadm -a -t 192.168.10.100:80 -r 192.168.10.103:80 -g

backup ~]# ipvsadm -a -t 192.168.10.100:80 -r 192.168.10.103:80 -g

backup ~]# ipvsadm -Ln

第七步,在server1和server2上安装web服务器

server1 ~]# yum -y install httpd

server1 ~]echo "server1" > /var/www/html/index.html

server1 ~]# systemctl start httpd

server1 ~]# curl 192.168.10.103

server2 ~]# yum -y install httpd

server2 ~]echo "server02" > /var/www/html/index.html

server2 ~]# systemctl start httpd

server2 ~]# curl 192.168.244.104

第八步,配置server1和server2的虚拟vip

# cat > lvs.sh << EOF

#!/bin/bash

#description : start realserver

VIP=192.168.244.100

case "\$1" in

start)

echo " start LVS of REALServer"

/usr/sbin/ifconfig lo:0 \$VIP broadcast \$VIP netmask 255.255.255.255 up

echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore

echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce

echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore

echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce

;;

stop)

/usr/sbin/ifconfig lo:0 down

echo "close LVS Directorserver"

echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore

echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce

echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore

echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce

;;

*)

echo "Usage: \$0 {start|stop}"

exit 1

esac

EOF

在server1和server2上启动脚本,并使用ip a 指令来查看虚拟vip是否配置成功

sh lvs.sh start   //启动脚本

ip a   //查看IP地址

第九步,使用客户端进行测试

随便找一台服务器进行访问虚拟vip

[root@localhost ~]# for((i=1;i<=10;i++));do curl 192.168.244.100;done

成功

开始模拟故障

当master主服务器出现故障,keepalived关闭了

master ~]# systemctl stop keepalived

master ~]# keepalived_lvs_master ~]# ip a

[root@localhost ~]# for((i=1;i<=10;i++));do curl 192.168.244.100;done

还是可以使用

模拟server1宕机

[root@server1 ~]# systemctl stop httpd

在用ipvsadm做为负载均衡时,它没有健康检查功能,不能将宕机的后端realserver从lvs中清除


http://www.ppmy.cn/embedded/159741.html

相关文章

【Redis】缓存+分布式锁

目录 缓存 Redis最主要的使用场景就是作为缓存 缓存的更新策略&#xff1a; 1.定期生成 2.实时生成 面试重点&#xff1a; 缓存预热&#xff08;Cache preheating&#xff09;&#xff1a; 缓存穿透&#xff08;Cache penetration&#xff09; 缓存雪崩 (Cache avalan…

消息队列篇--通信协议篇--STOMP(STOMP特点、格式及示例,WebSocket上使用STOMP,消息队列上使用STOMP等)

STOMP&#xff08;Simple Text Oriented Messaging Protocol&#xff0c;简单面向文本的消息传递协议&#xff09;是一种轻量级、基于文本的协议&#xff0c;旨在为消息代理&#xff08;消息队列&#xff09;和客户端之间的通信&#xff08;websocket&#xff09;提供一种简单的…

微软悉尼大学|UniGraspTransformer:灵巧机器人抓取技术新突破!

摘要 在机器人研究领域&#xff0c;灵巧机器人抓取任务始终是极具挑战性的难题。不同形状、尺寸和物理属性的物体&#xff0c;以及多指灵巧手复杂的控制要求&#xff0c;都为机器人实现精准抓取带来了诸多阻碍。虽然已有研究取得了一定进展&#xff0c;但仍存在训练过程复杂、模…

.找到字符串中所有字母异位词(滑动窗口)

给定两个字符串 s 和 p&#xff0c;找到 s 中所有 p 的 异位词 的子串&#xff0c;返回这些子串的起始索引。不考虑答案输出的顺序。 示例 1: 输入: s "cbaebabacd", p "abc" 输出: [0,6] 解释: 起始索引等于 0 的子串是 "cba", 它是 "…

将音频mp3文件添加背景音乐

你可以使用 Python 的 pydub 库来合成两个音频文件&#xff0c;并调整背景音乐的音量&#xff0c;使朗诵的声音更强。以下是实现的 Python 代码&#xff1a; 步骤 读取朗诵音频文件&#xff08;speech.mp3&#xff09;。读取背景音乐文件&#xff08;background.mp3&#xff…

新到手路由器宽带上网设置八步法

第一步&#xff0c;连接线 运营商接到家里的一般有光纤&#xff0c;然后光纤会接在一个他们提供的光猫上。我们只需将路由器的&#xff37;&#xff21;&#xff2e;口通过一截网线接到光猫对应的网口即可。通电并确认指示灯常亮或闪烁 第二步&#xff0c;手机搜索&#xff3…

【Linux系统】CPU指令集 和 Linux系统权限 ring 0 / ring 3

CPU 指令集 CPU 指令集&#xff1a;是 CPU 实现软件指挥硬件执行的媒介&#xff0c;具体来说每一条汇编语句都对应了一条CPU指令&#xff0c;而非常非常多的 CPU 指令在一起&#xff0c;可以组成一个、甚至多个集合&#xff0c;指令的集合叫CPU指令集。 CPU 指令集有权限分级&…

全局异常处理器

目录 一. 异常处理 \quad 一. 异常处理 \quad