阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

高可用架构配置(lvs+keepalived)

274次阅读
没有评论

共计 6523 个字符,预计需要花费 17 分钟才能阅读完成。

一、LVS+Keepalived 高可用群集
1、LVS

Linux 虚拟服务器(Linux Virtual Server)

LVS 实际上相当于基于 IP 地址的虚拟化应用,为基于 IP 地址和内容请求分发的负载均衡提出了一种高效的解决方法

2、Keepalived

1、支持故障自动切换(Failover)

2、支持节点健康状态检查(Health Checking)

判断 LVS 负载调度器、节点服务器的可用性,当 master 主机出现故障及时切换到 backup 节点保证业务正常,当 master 故障主机恢复后将其重新加入群集并且业务重新切换回 master 节点。

3、Keepalived 实现原理剖析

1、keepalived 采用 VRRP 热备份协议实现 Linux 服务器的多机热备功能

2、VRRP(虚拟路由冗余协议)是针对路由器的一种备份解决方案。

3、由多台路由器组成一个热备份组,通过共用的虚拟 IP 地址对外提供服务

4、每个热备组内同时只有一台主路由器提供服务,其他路由器处于冗余状态

5、若当前在线的路由器失效,则其他路由器会根据设置的优先级自动接替虚拟 IP 地址,继续提供服务

4、常用的配置

router_id HA_TEST_R1: 本路由器 (服务器) 的名称、主备名称要不一样
vrrp_instance Vl_1∶定义 VRRP 热备实例
state MASTER: 热备状态,MASTER 表示主服务器
interface ens33: 承载 VIP 地址的物理接口
virtual_router_id 1 : 虚拟路由器的 ID 号, 每个热备组保持一致
priority 100: 优先级, 数值越大优先级越高
advert_int 1: 通告间隔秒数(心跳频率)
auth_type PASS: 认证类型
auth_pass 123456: 密码字串
virtual_ipaddress {vip}: 指定漂移地址(VIP), 可以有多个

二、LVS+Keepalived 高可用群集的部署

环境

主 DR 服务器:192.168.131.18

备 DR 服务器:192.168.131.19

Web 服务器 1:192.168.131.22

Web 服务器 2:192.168.131.23

vip 地址:192.168.131.100

(一)、配置 Keepalived master 服务器  (192.168.131.18)

1. #关闭防火墙

systemctl stop firewalld.service

setenforce 0

2. #安装服务

yum -y install ipvsadm keepalived

3. #修改配置文件 keeplived.conf

cd /etc/keepalived/

cp keepalived.conf keepalived.conf.bak

vim keepalived.conf

......

global_defs {                       #定义全局参数

--10 行 -- 修改,邮件服务指向本地

   smtp_server 127.0.0.1

--12 行 -- 修改,指定服务器(路由器)的名称,主备服务器名称须不同,主为 LVS_01,备为 LVS_02

   router_id LVS_01

}

rrp_instance VI_1 {             #定义 VRRP 热备实例参数

--20 行 -- 修改,指定热备状态,主为 MASTER,备为 BACKUP

   state MASTER

--21 行 -- 修改,指定承载 vip 地址的物理接口

   interface ens33

--22 行 -- 修改,指定虚拟路由器的 ID 号,每个热备组保持一致  

   virtual_router_id 51

--23 行 -- 修改,指定优先级,数值越大优先级越高,主为 100,备为 99

   priority 100

   advert_int 1                    #通告间隔秒数(心跳频率)

   authentication {                #定义认证信息, 每个热备组保持一致

       auth_type PASS              #认证类型

--27 行 -- 修改,指定验证密码,主备服务器保持一致

       auth_pass 150411

   }

   virtual_ipaddress {             #指定群集 vip 地址

       192.168.131.100

   }

}

--36 行 -- 修改,指定虚拟服务器地址(VIP)、端口,定义虚拟服务器和 Web 服务器池参数

virtual_server 192.168.131.100 80 {delay_loop 6                    #健康检查的间隔时间(秒)

   lb_algo rr                      #指定调度算法,轮询(rr)

--39 行 -- 修改,指定群集工作模式,直接路由(DR)

   lb_kind DR

   persistence_timeout 50          #连接保持时间(秒)

protocol TCP                    #应用服务采用的是 TCP 协议

--43 行 -- 修改,指定第一个 Web 节点的地址、端口

   real_server 192.168.131.22 80 {

       weight 1                    #节点的权重

--45 行 -- 删除,添加以下健康检查方式        

       TCP_CHECK {

           connect_port 80         #添加检查的目标端口

           connect_timeout 3       #添加连接超时(秒)

           nb_get_retry 3          #添加重试次数

           delay_before_retry 3    #添加重试间隔

       }

   }

   real_server 192.168.131.23 80 {     #添加第二个 Web 节点的地址、端口

       weight 1

       TCP_CHECK {

           connect_port 80

           connect_timeout 3

           nb_get_retry 3

           delay_before_retry 3

       }

   }

}

## 删除后面多余的配置 ##

4. #启动服务、查看虚拟网卡 vip(等配置好全部,开启此服务)

systemctl start keepalived

ip addr show dev ens33

5. #调整 proce 响应参数,关闭 Linux 内核的重定向参数响应

vim /etc/sysctl.conf

net.ipv4.ip_forward = 1

net.ipv4.conf.all.send_redirects = 0

net.ipv4.conf.default.send_redirects = 0

net.ipv4.conf.ens33.send_redirects = 0

6. #刷新一下

sysctl -p
配置 ipvsadm

7. #配置负载分配策略,并启动服务
ipvsadm-save >/etc/sysconfig/ipvsadm

systemctl start ipvsadm.service

8. #清空 ipvsadm,并做策略

ipvsadm -C

ipvsadm -A -t 192.168.131.100:80 -s rr

ipvsadm -a -t 192.168.131.100:80 -r 192.168.131.23:80 -g

ipvsadm -a -t 192.168.131.100:80 -r 192.168.131.22:80 -g

9. #保存设置

ipvsadm

ipvsadm -ln

ipvsadm-save >/etc/sysconfig/ipvsadm
(二)、配置 Keepalived master 服务器 (192.168.131.19)  

1. #关闭防火墙

systemctl stop firewalld.service

setenforce 0

2. #安装服务

yum -y install ipvsadm keepalived

3. #修改配置文件 keeplived.conf

cd /etc/keepalived/

cp keepalived.conf keepalived.conf.bak

vim keepalived.conf

......

global_defs {                       #定义全局参数

--10 行 -- 修改,邮件服务指向本地

   smtp_server 127.0.0.1

--12 行 -- 修改,指定服务器(路由器)的名称,主备服务器名称须不同,主为 LVS_01,备为 LVS_02

   router_id LVS_01

}

vrrp_instance VI_1 {                #定义 VRRP 热备实例参数

--20 行 -- 修改,指定热备状态,主为 MASTER,备为 BACKUP

   state BACKUP

--21 行 -- 修改,指定承载 vip 地址的物理接口

   interface ens33

--22 行 -- 修改,指定虚拟路由器的 ID 号,每个热备组保持一致  

   virtual_router_id 10

--23 行 -- 修改,指定优先级,数值越大优先级越高,主为 100,备为 99

   priority 99

   advert_int 1                    #通告间隔秒数(心跳频率)

   authentication {                #定义认证信息, 每个热备组保持一致

       auth_type PASS              #认证类型

--27 行 -- 修改,指定验证密码,主备服务器保持一致

       auth_pass 150411

   }

   virtual_ipaddress {             #指定群集 vip 地址

       192.168.131.100

   }

}

--36 行 -- 修改,指定虚拟服务器地址(VIP)、端口,定义虚拟服务器和 Web 服务器池参数

virtual_server 192.168.131.100 80 {delay_loop 6                    #健康检查的间隔时间(秒)

   lb_algo rr                      #指定调度算法,轮询(rr)

--39 行 -- 修改,指定群集工作模式,直接路由(DR)

   lb_kind DR

   persistence_timeout 50          #连接保持时间(秒)

   protocol TCP                    #应用服务采用的是 TCP 协议

--43 行 -- 修改,指定第一个 Web 节点的地址、端口

   real_server 192.168.131.22 80 {

       weight 1                    #节点的权重

--45 行 -- 删除,添加以下健康检查方式        

       TCP_CHECK {

           connect_port 80         #添加检查的目标端口

           connect_timeout 3       #添加连接超时(秒)

           nb_get_retry 3          #添加重试次数

           delay_before_retry 3    #添加重试间隔

       }

   }

   real_server 192.168.131.23 80 {     #添加第二个 Web 节点的地址、端口

       weight 1

       TCP_CHECK {

           connect_port 80

           connect_timeout 3

           nb_get_retry 3

           delay_before_retry 3

       }

   }

}

## 删除后面多余的配置 ##

4. #启动服务、查看虚拟网卡 vip(等全部配置,开启服务)

systemctl start keepalived

ip addr show dev ens33

5. #调整 proce 响应参数,关闭 Linux 内核的重定向参数响应

vim /etc/sysctl.conf

net.ipv4.ip_forward = 1

net.ipv4.conf.all.send_redirects = 0

net.ipv4.conf.default.send_redirects = 0

net.ipv4.conf.ens33.send_redirects = 0

6. #刷新一下

sysctl -p

配置 ipvsadm

7. #配置负载分配策略,并启动服务

ipvsadm-save >/etc/sysconfig/ipvsadm

systemctl start ipvsadm.service

8. #清空 ipvsadm,并做策略

ipvsadm -C

ipvsadm -A -t 192.168.131.100:80 -s rr

ipvsadm -a -t 192.168.131.100:80 -r 192.168.131.22:80 -g

ipvsadm -a -t 192.168.131.100:80 -r 192.168.131.23:80 -g

9. #保存设置

ipvsadm

ipvsadm -ln

ipvsadm-save >/etc/sysconfig/ipvsadm
(三)、配置 web 节点服务器 1(192.168.131.22)

1. #关闭防火墙

systemctl stop firewalld

setenforce 0

2. #安装并开启 httpd 服务

yum -y install httpd

systemctl start httpd

3. #配置站点文件

vim /var/www/html/index.html

cat /var/www/html/index.html
跃跃小宝贝

4. #配置虚拟 vip

vim /etc/sysconfig/network-scripts/ifcfg-lo:0

DEVICE=lo:0

ONBOOT=yes

IPADDR=192.168.131.100

NETMASK=255.255.255.255

5. #重启网络服务,开启虚拟网卡

systemctl restart network

ifup lo:0

ifconfig lo:0

6. #设置路由

route add -host 192.168.131.100 dev lo:0

route -n

7. #调整 proc 响应参数

# 添加系统只响应目的 IP 为本地 IP 的 ARP 请求

# 系统不使用原地址来设置 ARP 请求的源地址,而是物理 mac 地址上的 IP

vim /etc/sysctl.conf

net.ipv4.conf.all.arp_ignore = 1

net.ipv4.conf.all.arp_announce = 2

net.ipv4.conf.lo.arp_ignore = 1

net.ipv4.conf.lo.arp_announce = 2

8. #刷新 proc 参数

sysctl -p
(四)、配置 web 节点服务器 2(192.168.131.23)

1. #关闭防火墙

systemctl stop firewalld

setenforce 0

2. #安装并开启 httpd 服务

yum -y install httpd

systemctl start httpd

3. #配置站点文件

vim /var/www/html/index.html

cat /var/www/html/index.html
跃跃小宝贝

4. #配置虚拟 vip

vim /etc/sysconfig/network-scripts/ifcfg-lo:0

DEVICE=lo:0

ONBOOT=yes

IPADDR=192.168.131.100

NETMASK=255.255.255.255

5. #重启网络服务,开启虚拟网卡

systemctl restart network

ifup lo:0

ifconfig lo:0

6. #设置路由

route add -host 192.168.131.100 dev lo:0

route -n

7. #调整 proc 响应参数

# 添加系统只响应目的 IP 为本地 IP 的 ARP 请求

# 系统不使用原地址来设置 ARP 请求的源地址,而是物理 mac 地址上的 IP

vim /etc/sysctl.conf

net.ipv4.conf.all.arp_ignore = 1

net.ipv4.conf.all.arp_announce = 2

net.ipv4.conf.lo.arp_ignore = 1

net.ipv4.conf.lo.arp_announce = 2

8. #刷新 proc 参数

sysctl -p
(五)、测试

​​1)当前使用的为主 DR 服务器

验证 ip a

主 DR 服务器:​

高可用架构配置(lvs+keepalived)

断开主 DR 服务器的 Keepalived 测试,systemctl stop keepalived.service
高可用架构配置(lvs+keepalived)
高可用架构配置(lvs+keepalived)
高可用架构配置(lvs+keepalived)

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-25发表,共计6523字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19348
评论数
4
阅读量
7804488
文章搜索
热门文章
开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南 大家好,我是星哥。之前介绍了腾讯云的 Code...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板 1Panel:小白轻松构建 Web 服务与面板加固指南 哈喽,我是星哥,经常有人问我不...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
星哥带你玩飞牛NAS-7:手把手教你免费内网穿透-Cloudflare tunnel

星哥带你玩飞牛NAS-7:手把手教你免费内网穿透-Cloudflare tunnel

星哥带你玩飞牛 NAS-7:手把手教你免费内网穿透 -Cloudflare tunnel 前言 大家好,我是星...
Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集 在云原生体系中,Prometheus 已成为最主流的监控与报警...
CSDN,你是老太太喝粥——无齿下流!

CSDN,你是老太太喝粥——无齿下流!

CSDN,你是老太太喝粥——无齿下流! 大家好,我是星哥,今天才思枯竭,不写技术文章了!来吐槽一下 CSDN。...
三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

  三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Andr...
星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛 NAS-12:开源笔记的进化之路,效率玩家的新选择 前言 如何高效管理知识与笔记,已经成为技术...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站 - 手机博物馆 -CHAZ 3D Experience 一句话介绍:一个用 3D 方式重温...
星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

  星哥带你玩飞牛 NAS-16:不再错过公众号更新,飞牛 NAS 搭建 RSS 对于经常关注多个微...
颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

  颠覆 AI 开发效率!开源工具一站式管控 30+ 大模型 ApiKey,秘钥付费 + 负载均衡全...
150元打造低成本NAS小钢炮,捡一块3865U工控板

150元打造低成本NAS小钢炮,捡一块3865U工控板

150 元打造低成本 NAS 小钢炮,捡一块 3865U 工控板 一块二手的熊猫 B3 工控板 3865U,搭...
你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你 为什么要用宝塔跑分? 宝塔跑分其实就是对 CPU、内存、磁盘、IO 做...