集群 day-45 ( 18.6 负载均衡集群介绍, LVS介绍, LVS调度算法, LVS NAT模式搭建, LVS DR模式搭建 , keepalived + LVS)

本文主要是介绍集群 day-45 ( 18.6 负载均衡集群介绍, LVS介绍, LVS调度算法, LVS NAT模式搭建, LVS DR模式搭建 , keepalived + LVS),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

18.6 负载均衡集群介绍

在这里插入图片描述

18.7 LVS介绍

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

18.8 LVS调度算法

前4种重点
在这里插入图片描述
在这里插入图片描述

18.9 LVS NAT模式搭建(上)

在这里插入图片描述
准备三台设备,更改IP 计算名机
在这里插入图片描述
设备1上设置双网卡
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
测试ping 192.168.142.147

三台设备都要关闭防火墙
在这里插入图片描述

在这里插入图片描述
使用iptables-service
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
vi /etc/selinux/config
在这里插入图片描述

设备2 和设备3 网关设置为设备1的IP地址
在这里插入图片描述
重启网络服务
在这里插入图片描述

18.10 LVS NAT模式搭建(下)

在这里插入图片描述
在dir 即设备1上安装ipvsadm 工具
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

设备2 和设备3同样操作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

18.11 LVS DR模式搭建

在这里插入图片描述
生产环境中,dir模式用得比较多
nat 模式 网站服务器10台范围内,好处占用少 公网IP

3台设备 都要 一个网卡 一个公网IP
在这里插入图片描述
重启网络服务

在这里插入图片描述

#! /bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
ipv=/usr/sbin/ipvsadm
vip=192.168.30.200
rs1=192.168.30.130
rs2=192.168.30.140
#注意这里的网卡名字
ifdown ens33
ifup ens33
ifconfig ens33:2 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip dev ens33:2
$ipv -C
$ipv -A -t $vip:80 -s rr
$ipv -a -t $vip:80 -r $rs1:80 -g -w 1
$ipv -a -t $vip:80 -r $rs2:80 -g -w 1-W 1 为权重)

在这里插入图片描述
在这里插入图片描述
设备2.3 上执行同样操作
在这里插入图片描述

#/bin/bash
vip=192.168.30.200
#把vip绑定在lo上,是为了实现rs直接把结果返回给客户端
ifdown lo
ifup  lo
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip lo:0
#以下操作为更改arp内核参数,目的是为了让rs顺利发送mac地址给客户端
#参考文档www.cnblogs.com/lgfeng/archive/2012/10/16/2726308.html
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
建议在新开一台虚拟机用curl 命令测试
在这里插入图片描述
在这里插入图片描述

18.12 keepalived lvs

入口都在dr 设备上,如果DOWN机会影响访问, 所以需要在dr上实现高可用
当rs DOWN 机后 lvs dr 仍然会把请求发到故障的RS 设备上,造成访问出错 使用keepalived lvs就不会把请求发到故障设备上
在这里插入图片描述
在这里插入图片描述
录请求发到故障设备上,会出现无法连接
在这里插入图片描述
使用keepalived + lvs (dr设备上不需要安装ipvsadm ,之前安装过的可以卸载)

在这里插入图片描述
之前做keeplived 实验的脚本
更改新脚本

vrrp_instance VI_1 {#备用服务器上为 BACKUPstate MASTER#绑定vip的网卡为ens33,你的网卡和阿铭的可能不一样,这里需要你改一下interface ens33virtual_router_id 51#备用服务器上为90priority 100advert_int 1authentication {auth_type PASSauth_pass aminglinux}virtual_ipaddress {192.168.30.200}
}
virtual_server 192.168.30.200 80 {#(每隔10秒查询realserver状态)delay_loop 10#(lvs 算法)lb_algo wlc#(DR模式)lb_kind DR#(同一IP的连接60秒内被分配到同一台realserver)persistence_timeout 0#(用TCP协议检查realserver状态)protocol TCPreal_server 192.168.30.130 80 {#(权重)weight 100TCP_CHECK {#(10秒无响应超时)connect_timeout 10nb_get_retry 3delay_before_retry 3connect_port 80}}real_server 192.168.30.140 80 {weight 100TCP_CHECK {connect_timeout 10nb_get_retry 3delay_before_retry 3connect_port 80}}
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
由于之前配置过keepalived 所以还保留了192.168.133.200 ens33:2 的虚拟IP
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在dr 设备上停上keepalived 等一会 在启动服务
weight 权重看出是新的连接
在这里插入图片描述
模拟RS down 后,keepalived 会自动把故障设备踢出

在这里插入图片描述
在这里插入图片描述

注意:
dr 上配置 keepalived + lvs 时
仍要执行上的脚本,路径 /usr/local/sbin/lvs_rs.sh 即下面这个
sh /usr/local/sbin/lvs_rs.sh
在这里插入图片描述

dr 设备上
在这里插入图片描述

总结:keepalived +lvs

  1. 两台DR yum 安装keepalive + ipvsadm
  2. 两台DR 编写脚本vim /usr/local/sbin/lvs_dr.sh
    执行脚本 sh /usr/local/sbin/lvs_dr.sh
#! /bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
ipv=/usr/sbin/ipvsadm
vip=192.168.30.169
rs1=192.168.30.160
rs2=192.168.30.161
  1. 两台RS 编写脚本 vim /usr/local/sbin/lvs_rs.sh
    执行脚本 sh /usr/local/sbin/lvs_rs.sh
#/bin/bash
vip=192.168.30.169
#把vip绑定在lo上,是为了实现rs直接把结果返回给客户端
ifdown lo
ifup  lo
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip lo:0
#以下操作为更改arp内核参数,目的是为了让rs顺利发送mac地址给客户端
#参考文档www.cnblogs.com/lgfeng/archive/2012/10/16/2726308.html
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
  1. 两台DR 上编写keepalive 脚本vi /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {#备用服务器上为 BACKUPstate MASTER#绑定vip的网卡为ens33,你的网卡和阿铭的可能不一样,这里需要你改一下interface eth0virtual_router_id 51#备用服务器上为90priority 100advert_int 1authentication {
vrrp_instance VI_1 {#备用服务器上为 BACKUPstate MASTER#绑定vip的网卡为ens33,你的网卡和阿铭的可能不一样,这里需要你改一下interface eth0virtual_router_id 51#备用服务器上为90priority 100advert_int 1authentication {auth_type PASSauth_pass aminglinux}virtual_ipaddress {192.168.30.169}
}
virtual_server 192.168.30.169 80 {#(每隔10秒查询realserver状态)delay_loop 10#(lvs 算法)lb_algo rr#(DR模式)lb_kind DR#(同一IP的连接60秒内被分配到同一台realserver)persistence_timeout 60#(用TCP协议检查realserver状态)protocol TCPreal_server 192.168.30.160 80 {#(权重)weight 100TCP_CHECK {#(10秒无响应超时)connect_timeout 10nb_get_retry 3delay_before_retry 3connect_port 80}}real_server 192.168.30.161 80 {weight 100TCP_CHECK {connect_timeout 10nb_get_retry 3delay_before_retry 3connect_port 80}}
}

启动 systemctl start keepalived
route -n 查看到VIP 的路由是否存在
在这里插入图片描述
在这里插入图片描述

这篇关于集群 day-45 ( 18.6 负载均衡集群介绍, LVS介绍, LVS调度算法, LVS NAT模式搭建, LVS DR模式搭建 , keepalived + LVS)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1019781

相关文章

大数据spark3.5安装部署之local模式详解

《大数据spark3.5安装部署之local模式详解》本文介绍了如何在本地模式下安装和配置Spark,并展示了如何使用SparkShell进行基本的数据处理操作,同时,还介绍了如何通过Spark-su... 目录下载上传解压配置jdk解压配置环境变量启动查看交互操作命令行提交应用spark,一个数据处理框架

使用DeepSeek搭建个人知识库(在笔记本电脑上)

《使用DeepSeek搭建个人知识库(在笔记本电脑上)》本文介绍了如何在笔记本电脑上使用DeepSeek和开源工具搭建个人知识库,通过安装DeepSeek和RAGFlow,并使用CherryStudi... 目录部署环境软件清单安装DeepSeek安装Cherry Studio安装RAGFlow设置知识库总

Linux搭建Mysql主从同步的教程

《Linux搭建Mysql主从同步的教程》:本文主要介绍Linux搭建Mysql主从同步的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux搭建mysql主从同步1.启动mysql服务2.修改Mysql主库配置文件/etc/my.cnf3.重启主库my

国内环境搭建私有知识问答库踩坑记录(ollama+deepseek+ragflow)

《国内环境搭建私有知识问答库踩坑记录(ollama+deepseek+ragflow)》本文给大家利用deepseek模型搭建私有知识问答库的详细步骤和遇到的问题及解决办法,感兴趣的朋友一起看看吧... 目录1. 第1步大家在安装完ollama后,需要到系统环境变量中添加两个变量2. 第3步 “在cmd中

JAVA SE包装类和泛型详细介绍及说明方法

《JAVASE包装类和泛型详细介绍及说明方法》:本文主要介绍JAVASE包装类和泛型的相关资料,包括基本数据类型与包装类的对应关系,以及装箱和拆箱的概念,并重点讲解了自动装箱和自动拆箱的机制,文... 目录1. 包装类1.1 基本数据类型和对应的包装类1.2 装箱和拆箱1.3 自动装箱和自动拆箱2. 泛型2

如何通过Golang的container/list实现LRU缓存算法

《如何通过Golang的container/list实现LRU缓存算法》文章介绍了Go语言中container/list包实现的双向链表,并探讨了如何使用链表实现LRU缓存,LRU缓存通过维护一个双向... 目录力扣:146. LRU 缓存主要结构 List 和 Element常用方法1. 初始化链表2.

Keepalived+Nginx双机配置小结

《Keepalived+Nginx双机配置小结》本文主要介绍了Keepalived+Nginx双机配置小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1.1 软硬件要求1.2 部署前服务器配置调优1.3 Nginx+Keepalived部署1.3

golang字符串匹配算法解读

《golang字符串匹配算法解读》文章介绍了字符串匹配算法的原理,特别是Knuth-Morris-Pratt(KMP)算法,该算法通过构建模式串的前缀表来减少匹配时的不必要的字符比较,从而提高效率,在... 目录简介KMP实现代码总结简介字符串匹配算法主要用于在一个较长的文本串中查找一个较短的字符串(称为

springboot的调度服务与异步服务使用详解

《springboot的调度服务与异步服务使用详解》本文主要介绍了Java的ScheduledExecutorService接口和SpringBoot中如何使用调度线程池,包括核心参数、创建方式、自定... 目录1.调度服务1.1.JDK之ScheduledExecutorService1.2.spring

通俗易懂的Java常见限流算法具体实现

《通俗易懂的Java常见限流算法具体实现》:本文主要介绍Java常见限流算法具体实现的相关资料,包括漏桶算法、令牌桶算法、Nginx限流和Redis+Lua限流的实现原理和具体步骤,并比较了它们的... 目录一、漏桶算法1.漏桶算法的思想和原理2.具体实现二、令牌桶算法1.令牌桶算法流程:2.具体实现2.1