LVS+keepalived集群

目录

一、keepalive概述

1.1定义

1.2作用

二、keepalive体系主要模块及其作用

三、keepalive工作原理

四、部署LVS-keepalive


一、keepalive概述

1.1定义

Keepalived是一款开源的、免费的高可用软件,广泛应用于互联网IT企业中,以其轻量级、配置简单、管理方便等特点受到青睐。

Keepalived是一个类似于Layer 3、4 & 5(即网络层、传输层和应用层)交换机制的软件,主要用于检测服务器的状态,防止单点故障,并提供故障转移和负载均衡功能。

1.2作用

通过自动检测服务器的健康状态,将故障服务器从系统中剔除,并使用其他服务器接替其工作,确保服务的高可用性。

二、keepalive体系主要模块及其作用

●core模块:为keepalived的核心,负责主进程的启动、维护及全局配置文件的加载和解析。

●vrrp模块:是来实现VRRP协议的。

●check模块:负责健康检查,常见的方式有端口检查及URL检查。

三、keepalive工作原理

1.keepalived高可用对之间是通过VRRP进行通信的,VRRP是通过竞选机制来确定主备的,主的优先级高于备,因此,工作时主会优先获得所有的资源,备节点处于等待状态,当主挂了的时候,备节点就会接管主节点的资源,然后顶替主节点对外提供服务。

2.在Keepalived服务对之间,只有作为主的服务器会一直发送VRRP广播包,告诉备它还活着,此时备不会抢占主,当主不可用时,即备监听不到主发送的广播包时,就会启动相关服务接管资源,保证业务的连续性。接管速度最快可以小于1秒。

四、部署LVS-keepalive

主DR 服务器:ens33(192.168.10.80) ipvsadm 、keepalived(热备) 虚拟IP:192.168.10.180 网卡 ens33:0

备DR 服务器:ens33(192.168.10.23) ipvsadm 、keepalived

虚拟IP:192.168.10.180 网卡 ens33:0

Web 服务器1:ens33 192.168.10.16

lo:0(VIP)192.168.10.180

Web 服务器2:ens33 192.168.10.17

lo:0(VIP)192.168.10.180

vip:192.168.10.180

客户端:192.168.10.100

---------------------LVS 部署-------------------------

1.配置负载调度器(主、备相同) (192.168.10.80、192.168.10.23)

systemctl stop firewalld.service

setenforce 0

yum -y install ipvsadm keepalived

modprobe ip_vs

cat /proc/net/ip_vs

(1)配置keeplived(主、备DR 服务器上都要设置)

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

--14行--注释掉,取消严格遵守VRRP协议功能,否则VIP无法被连接

#vrrp_strict

}

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

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

state MASTER

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

interface ens33

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

virtual_router_id 10

#nopreempt #如果设置非抢占模式,两个节点state必须为bakcup,并加上配置 nopreempt

--23行--修改,指定优先级,数值越大优先级越高,这里设置主为100,备为90

priority 100

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

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

auth_type PASS #认证类型

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

auth_pass abc123

}

virtual_ipaddress { #指定群集vip地址

192.168.10.180

}

}

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

virtual_server 192.168.10.180 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.10.16 80 {

weight 1 #节点的权重

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

TCP_CHECK {

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

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

nb_get_retry 3 #添加重试次数

delay_before_retry 3 #添加重试间隔

}

}

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

weight 1

TCP_CHECK {

connect_port 80

connect_timeout 3

nb_get_retry 3

delay_before_retry 3

}

}

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

}

192.168.10.14和15都需要配置vip(虚拟IP) 80(master) 23(backup)

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

DEVICE=ens33:0

ONBOOT=yes

IPADDR=192.168.10.180

NETMASK=255.255.255.255

重启网卡 systemctl restart network

ifup ens33:0

systemctl start keepalived

ip addr #查看虚拟网卡vip

(2)启动 ipvsadm 服务

--192.168.10.14---

ipvsadm-save > /etc/sysconfig/ipvsadm

systemctl start ipvsadm

ipvsadm -C ##清空规则

ipvsadm -A -t 192.168.10.180:80 -s rr

ipvsadm -a -t 192.168.10.180:80 -r 192.168.10.16:80 -g

ipvsadm -a -t 192.168.10.180:80 -r 192.168.10.17:80 -g

ipvsadm -ln

#如没有VIP 的分发策略,则重启 keepalived 服务,systemctl restart keepalived

--192.168.10.15---

ipvsadm-save > /etc/sysconfig/ipvsadm

systemctl start ipvsadm

ipvsadm -ln

(3)调整 proc 响应参数,关闭Linux 内核的重定向参数响应

vim /etc/sysctl.conf

net.ipv4.conf.all.send_redirects = 0

net.ipv4.conf.default.send_redirects = 0

net.ipv4.conf.ens33.send_redirects = 0

sysctl -p

2.配置节点服务器

systemctl stop firewalld

setenforce 0

yum -y install httpd

systemctl start httpd

--192.168.10.16---

echo 'this is kgc web!' > /var/www/html/index.html

--192.168.10.17---

echo 'this is benet web!' > /var/www/html/index.html

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

DEVICE=lo:0

ONBOOT=yes

IPADDR=192.168.10.180

NETMASK=255.255.255.255

service network restart 或 systemctl restart network

ifup lo:0

ifconfig lo:0

route add -host 192.168.10.180 dev lo:0

vim /etc/sysctl.conf

net.ipv4.conf.lo.arp_ignore = 1

net.ipv4.conf.lo.arp_announce = 2

net.ipv4.conf.all.arp_ignore = 1

net.ipv4.conf.all.arp_announce = 2

sysctl -p

3.测试验证

在客户端访问 http://192.168.10.180/

再在主服务器关闭 keepalived 服务后再测试, systemctl stop keepalived

相关推荐
眠修7 分钟前
Kuberrnetes 服务发布
linux·运维·服务器
好奇的菜鸟1 小时前
Docker 配置项详解与示例
运维·docker·容器
xcs194051 小时前
集运维 麒麟桌面版v10 sp1 2403 aarch64 离线java开发环境自动化安装
运维·自动化
BAOYUCompany1 小时前
暴雨服务器成功中标华中科技大学集成电路学院服务器采购项目
运维·服务器
超龄超能程序猿2 小时前
Bitvisse SSH Client 安装配置文档
运维·ssh·github
奈斯ing2 小时前
【Redis篇】数据库架构演进中Redis缓存的技术必然性—高并发场景下穿透、击穿、雪崩的体系化解决方案
运维·redis·缓存·数据库架构
鳄鱼皮坡3 小时前
仿muduo库One Thread One Loop式主从Reactor模型实现高并发服务器
运维·服务器
即将头秃的程序媛3 小时前
centos 7.9安装tomcat,并实现开机自启
linux·运维·centos
小Mie不吃饭3 小时前
FastAPI 小白教程:从入门级到实战(源码教程)
运维·服务器
fo安方4 小时前
运维的利器–监控–zabbix–第三步:配置zabbix–中间件–Tomcat–步骤+验证
运维·中间件·zabbix