当前位置: 首页 > news >正文

LVS+KeepAlived高可用负载均衡集群

Keepalived LVS群集

  • 部署“LVS+KeepAlived高可用负载均衡集群”案例
    • 需求
    • 部署共享存储
      • 准备工作
      • 配置nfs服务
    • 部署web节点(web1和web2配置基本相同,请结合实际配置)
      • 准备工作
      • 配置网络
      • 配置web服务
      • 内核配置
    • 部署负载调度器
      • 准备工作
      • 配置KeepAlived服务
      • 配置负载策略
      • 配置内核参数
    • 测试

部署“LVS+KeepAlived高可用负载均衡集群”案例

需求

  • 备DR 服务器:10.190.33.50
  • 主DR 服务器:10.190.33.40
  • Web 服务器1:10.190.33.20
  • Web 服务器2:10.190.33.30
  • VIP地址:10.190.33.200
  • 客户端:10.190.33.1(物理机)
  • NFS服务器:10.190.33.10
    在这里插入图片描述

部署共享存储

准备工作

hostnamectl set-hostname nfs-server


systemctl disable firewalld.service --now


vim /etc/selinux/config
	
	将“SELINUX=enforcing”修改成“SELINUX=0reboot	

配置nfs服务

yum install -y rpcbind nfs

mkdir /share/{wang,lei} -p

echo '<h2>This is <h1>WANG</h1></h2>' > /share/wang/test.html

echo '<h2>This is <h1>LEI</h1></h2>' > /share/lei/test.html

vim /etc/exports

	/share/wang 10.190.33.0/24(ro)
	/share/lei 10.190.33.0/24(ro)

systemctl enable rpcbind nfs --now

showmount -e	

在这里插入图片描述

在这里插入图片描述

部署web节点(web1和web2配置基本相同,请结合实际配置)

准备工作

hostnamectl set-hostname web1-server


systemctl disable firewalld.service --now


vim /etc/selinux/config
	
	将“SELINUX=enforcing”修改成“SELINUX=0reboot	

配置网络

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

systemctl restart network
	DEVICE=lo:0
	ONBOOT=yes
	IPADDR=10.190.33.200
	NETMASK=255.255.255.255
	
route add -host 10.190.33.200 dev lo:0

在这里插入图片描述

在这里插入图片描述

配置web服务

yum install -y nginx

vim /etc/nginx/nginx.conf
	······
	 keepalive_timeout  0;

systemctl enable rpcbind nfs

mount 10.190.33.10:/share/wang /usr/share/nginx/html/

systemctl enable --now nginx

在这里插入图片描述

使用客户端检查web服务是否启动及运行正常
在这里插入图片描述

内核配置

vim /etc/sysctl.conf
	·······
	net.ipv4.conf.lo.arp_ignore = 1
	net.ipv4.conf.all.arp_ignore = 1
	net.ipv4.conf.lo.arp_announce = 2
	net.ipv4.conf.all.arp_announce = 2

在这里插入图片描述

部署负载调度器

准备工作

hostnamectl set-hostname LVS1-server


systemctl disable firewalld.service --now


vim /etc/selinux/config
	
	将“SELINUX=enforcing”修改成“SELINUX=0reboot	

配置KeepAlived服务

yum install -y keepalived
	......
	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 101
		#nopreempt		#如果设置非抢占模式,两个节点state必须为BACKUP,并加上配置 nopreempt
	--23行--修改,指定优先级,数值越大优先级越高,这里设置主为100,备为90
	    priority 100
	    advert_int 1					#通告间隔秒数(心跳频率)
	    authentication {				#定义认证信息,每个热备组保持一致
			auth_type PASS				#认证类型
	--27行--修改,指定验证密码,主备服务器保持一致
	        auth_pass  xy101loveleilei
	    }
	    virtual_ipaddress {				#指定群集vip地址
	        10.190.33.200
	    }
	}
	--36行--修改,指定虚拟服务器地址(VIP)、端口,定义虚拟服务器和Web服务器池参数
	virtual_server  10.190.33.200 80 {
	    delay_loop 6					#健康检查的间隔时间(秒)
	    lb_algo rr						#指定调度算法,轮询(rr)
	--39行--修改,指定群集工作模式,直接路由(DR)
	    lb_kind DR
	    persistence_timeout 0			#连接保持时间(秒)
	    protocol TCP					#应用服务采用的是 TCP协议
	--43行--修改,指定第一个Web节点的地址、端口
	    real_server 10.190.33.20 80 {
	        weight 1					#节点的权重
	--45行--删除,添加以下健康检查方式		
	        TCP_CHECK {
				connect_port 80			#添加检查的目标端口
				connect_timeout 3		#添加连接超时(秒)
				nb_get_retry 3			#添加重试次数
				delay_before_retry 3	#添加重试间隔
			}
		}
	
		real_server 10.190.33.30 80 {		#添加第二个 Web节点的地址、端口
	        weight 1
	        TCP_CHECK {
				connect_port 80
				connect_timeout 3
				nb_get_retry 3
				delay_before_retry 3
			}
		}
	##删除后面多余的配置##
	}

systemctl enable keepalived.service --now

ip addr

在这里插入图片描述

配置负载策略

yum install -y ipvsadm.x86_64

systemctl enable --now ipvsadm.service

ipvsadm -ln

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

在这里插入图片描述

配置内核参数

vim /etc/sysctl.conf
 ······
	net.ipv4.ip_forward = 0
	net.ipv4.conf.all.send_redirects = 0
	net.ipv4.conf.default.send_redirects = 0
	net.ipv4.conf.ens33.send_redirects = 0		#以自己实际网卡为准

sysctl -p


在这里插入图片描述

在这里插入图片描述

测试

在这里插入图片描述

即时刷新

在这里插入图片描述

相关文章:

  • 微服务 | Springboot整合Dubbo+Nacos实现RPC调用
  • 基于改进字典学习的旋转机械故障诊断方法(MATLAB)
  • 二分+ST表+递推,Cf 1237D - Balanced Playlist
  • 重构大学数学基础_week04_从点积理解傅里叶变换
  • 基于深度学习从2D图像中恢复3D图形
  • 对象存储服务的加密特性
  • Flask快速入门(路由、CBV、请求和响应、session)
  • 一杯咖啡的艺术 | 如何利用数字孪生技术做出完美的意式浓缩咖啡?
  • 内网安全--隧道技术代理技术
  • 学习AI 机器学习,深度学习需要用到的python库
  • 技术革命的十年:计算机、互联网、大数据、云计算与AI
  • 【新手必看】修复Windows11蓝牙连接问题的7个方法!
  • 2台nginx只需配置一台,另外一台直接生效
  • 【智能算法应用】基于A星算法求解六边形栅格地图路径规划
  • uniapp使用vue3语法构建自定义导航栏,适配小程序胶囊
  • 个人博客搭建
  • 文心一言使用技巧
  • 【全开源】旅行吧旅游门票预订系统源码(FastAdmin+ThinkPHP+Uniapp)
  • web前端开发和前端开发区别
  • 三端植物大战僵尸杂交版来了
  • 热点问答|澳大利亚联邦选举结果有何看点
  • “五一”假期国铁集团计划日均开行旅客列车超1.2万列
  • 乌美矿产协议文本公布,明确乌收益及协议优先级
  • 五一假期上海口岸出入境客流总量预计达59.4万人,同比增约30%
  • 五大光伏龙头一季度亏损超80亿元,行业冬天难言结束
  • 学有质量、查有力度、改有成效,广大党员干部落实中央八项规定精神