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

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

68次阅读
没有评论

共计 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、短信等云产品特惠热卖中