集群 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

相关文章

Java实现状态模式的示例代码

《Java实现状态模式的示例代码》状态模式是一种行为型设计模式,允许对象根据其内部状态改变行为,本文主要介绍了Java实现状态模式的示例代码,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来... 目录一、简介1、定义2、状态模式的结构二、Java实现案例1、电灯开关状态案例2、番茄工作法状态案例

本地搭建DeepSeek-R1、WebUI的完整过程及访问

《本地搭建DeepSeek-R1、WebUI的完整过程及访问》:本文主要介绍本地搭建DeepSeek-R1、WebUI的完整过程及访问的相关资料,DeepSeek-R1是一个开源的人工智能平台,主... 目录背景       搭建准备基础概念搭建过程访问对话测试总结背景       最近几年,人工智能技术

深入理解Apache Airflow 调度器(最新推荐)

《深入理解ApacheAirflow调度器(最新推荐)》ApacheAirflow调度器是数据管道管理系统的关键组件,负责编排dag中任务的执行,通过理解调度器的角色和工作方式,正确配置调度器,并... 目录什么是Airflow 调度器?Airflow 调度器工作机制配置Airflow调度器调优及优化建议最

5分钟获取deepseek api并搭建简易问答应用

《5分钟获取deepseekapi并搭建简易问答应用》本文主要介绍了5分钟获取deepseekapi并搭建简易问答应用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需... 目录1、获取api2、获取base_url和chat_model3、配置模型参数方法一:终端中临时将加

四种Flutter子页面向父组件传递数据的方法介绍

《四种Flutter子页面向父组件传递数据的方法介绍》在Flutter中,如果父组件需要调用子组件的方法,可以通过常用的四种方式实现,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录方法 1:使用 GlobalKey 和 State 调用子组件方法方法 2:通过回调函数(Callb

Python进阶之Excel基本操作介绍

《Python进阶之Excel基本操作介绍》在现实中,很多工作都需要与数据打交道,Excel作为常用的数据处理工具,一直备受人们的青睐,本文主要为大家介绍了一些Python中Excel的基本操作,希望... 目录概述写入使用 xlwt使用 XlsxWriter读取修改概述在现实中,很多工作都需要与数据打交

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.

Python中的随机森林算法与实战

《Python中的随机森林算法与实战》本文详细介绍了随机森林算法,包括其原理、实现步骤、分类和回归案例,并讨论了其优点和缺点,通过面向对象编程实现了一个简单的随机森林模型,并应用于鸢尾花分类和波士顿房... 目录1、随机森林算法概述2、随机森林的原理3、实现步骤4、分类案例:使用随机森林预测鸢尾花品种4.1

Python实现NLP的完整流程介绍

《Python实现NLP的完整流程介绍》这篇文章主要为大家详细介绍了Python实现NLP的完整流程,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 编程安装和导入必要的库2. 文本数据准备3. 文本预处理3.1 小写化3.2 分词(Tokenizatio

centos7基于keepalived+nginx部署k8s1.26.0高可用集群

《centos7基于keepalived+nginx部署k8s1.26.0高可用集群》Kubernetes是一个开源的容器编排平台,用于自动化地部署、扩展和管理容器化应用程序,在生产环境中,为了确保集... 目录一、初始化(所有节点都执行)二、安装containerd(所有节点都执行)三、安装docker-