当前位置: 首页 > 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-serversystemctl disable firewalld.service --nowvim /etc/selinux/config将“SELINUX=enforcing”修改成“SELINUX=0reboot	

配置nfs服务

yum install -y rpcbind nfsmkdir /share/{wang,lei} -pecho '<h2>This is <h1>WANG</h1></h2>' > /share/wang/test.htmlecho '<h2>This is <h1>LEI</h1></h2>' > /share/lei/test.htmlvim /etc/exports/share/wang 10.190.33.0/24(ro)/share/lei 10.190.33.0/24(ro)systemctl enable rpcbind nfs --nowshowmount -e	

在这里插入图片描述

在这里插入图片描述

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

准备工作

hostnamectl set-hostname web1-serversystemctl disable firewalld.service --nowvim /etc/selinux/config将“SELINUX=enforcing”修改成“SELINUX=0reboot	

配置网络

vim /etc/sysconfig/network-scripts/ifcfg-lo:0systemctl restart networkDEVICE=lo:0ONBOOT=yesIPADDR=10.190.33.200NETMASK=255.255.255.255route add -host 10.190.33.200 dev lo:0

在这里插入图片描述

在这里插入图片描述

配置web服务

yum install -y nginxvim /etc/nginx/nginx.conf······keepalive_timeout  0;systemctl enable rpcbind nfsmount 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 = 1net.ipv4.conf.all.arp_ignore = 1net.ipv4.conf.lo.arp_announce = 2net.ipv4.conf.all.arp_announce = 2

在这里插入图片描述

部署负载调度器

准备工作

hostnamectl set-hostname LVS1-serversystemctl disable firewalld.service --nowvim /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_02router_id LVS_01--14行--注释掉,取消严格遵守VRRP协议功能,否则VIP无法被连接#vrrp_strict}vrrp_instance VI_1 {				#定义VRRP热备实例参数--20行--修改,指定热备状态,主为MASTER,备为BACKUPstate MASTER--21行--修改,指定承载vip地址的物理接口interface ens33--22行--修改,指定虚拟路由器的ID号,每个热备组保持一致	virtual_router_id 101#nopreempt		#如果设置非抢占模式,两个节点state必须为BACKUP,并加上配置 nopreempt--23行--修改,指定优先级,数值越大优先级越高,这里设置主为100,备为90priority 100advert_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 DRpersistence_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 1TCP_CHECK {connect_port 80connect_timeout 3nb_get_retry 3delay_before_retry 3}}##删除后面多余的配置##}systemctl enable keepalived.service --nowip addr

在这里插入图片描述

配置负载策略

yum install -y ipvsadm.x86_64systemctl enable --now ipvsadm.serviceipvsadm -ln#如没有VIP 的分发策略,则重启 keepalived 服务,systemctl restart keepalived
systemctl restart keepalived.service

在这里插入图片描述

配置内核参数

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

在这里插入图片描述

在这里插入图片描述

测试

在这里插入图片描述

即时刷新

在这里插入图片描述

相关文章:

  • 网络编程(一)基本概念、TCP协议
  • vivado HW_SIO_RX
  • torch.squeeze() dim=1 dim=-1 dim=2
  • UML相关1
  • Docker 国内镜像源更换
  • [SWPUCTF 2022 新生赛]ez_1zpop(php反序列化之pop链构造)
  • MySQL之高级特性(三)
  • 道路堵塞监测识别摄像机
  • 推荐这两款AI工具,真的很好用
  • 屏幕空间环境光遮蔽(SSAO)在AI绘画中的作用
  • 【AI原理解析】— GPT-4o模型
  • 5.2 参照完整性
  • C#操作MySQL从入门到精通(22)——创建表与操纵表
  • 如何手动实现multiSetIfAbsent、multiExpire
  • AI图书推荐:《如何利用ChatGPT在线赚钱》
  • echarts的各种常用效果展示
  • EventListener原理
  • Fabric架构演变之路
  • HTML-表单
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • 给初学者:JavaScript 中数组操作注意点
  • 构建工具 - 收藏集 - 掘金
  • 理解在java “”i=i++;”所发生的事情
  • 手写一个CommonJS打包工具(一)
  • 微服务框架lagom
  • 微信小程序开发问题汇总
  • 移动端 h5开发相关内容总结(三)
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • ​力扣解法汇总946-验证栈序列
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • (编译到47%失败)to be deleted
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (南京观海微电子)——示波器使用介绍
  • (十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)
  • (转)Unity3DUnity3D在android下调试
  • (自适应手机端)响应式新闻博客知识类pbootcms网站模板 自媒体运营博客网站源码下载
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • .net core 依赖注入的基本用发
  • .net 程序 换成 java,NET程序员如何转行为J2EE之java基础上(9)
  • .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction)
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • [2019.3.20]BZOJ4573 [Zjoi2016]大森林
  • [2024-06]-[大模型]-[Ollama] 0-相关命令
  • [Angular] 笔记 20:NgContent
  • [CISCN 2019华东南]Web11
  • [C语言]一维数组二维数组的大小
  • [EULAR文摘] 利用蛋白组学技术开发一项蛋白评分用于预测TNFi疗效
  • [GXYCTF2019]BabySQli1
  • [HDU 3555] Bomb [数位DP]
  • [HUBUCTF 2022 新生赛]
  • [IE编程] 如何设置IE8的WebBrowser控件(MSHTML) 的渲染模式
  • [JavaWeb学习] Spring Ioc和DI概念思想
  • [linux] shell中的()和{}
  • [Linux系统编程] 静态库与动态库
  • [NSSCTF 2nd] web刷题记录