LVS+Keepalived实验

news2024/11/20 18:23:26

实验前准备
主DR服务器:(ens33)192.168.188.11 ipvsadm、keepalived (ens33:0)192.168.188.188
备DR服务器:(ens33)192.168.188.12 ipvsadm、keepalived (ens33:0)192.168.188.188
Wbe服务器1:(ens33)192.168.188.13 (lo:0)192.168.188.188
Web服务器2:(ens33)192.168.188.14 (lo:0)192.168.188.188
客户端:192.168.188.1(本机Windows)

  1. 配置负载调度器(192.168.188.11、192.168.188.12)
    1. 关闭防火墙
      systemctl stop firewalld
      setenforce 0
    2. 安装ipvsadm和keepalived
      yum -y install ipvsadm keepalived
    3. 加载ipvs内核模块并查看
      modprobe ip_vs
      cat /proc/net/ip_vs
    4. 配置keepalived
      cd /etc/keepalived
      备份配置文件
      cp keepalived.conf keepalived.conf.bak
      对配置文件进行修改
      vim keepalived.conf
      ! Configuration File for keepalived
      
      global_defs {
         notification_email {
           acassen@firewall.loc
           failover@firewall.loc
           sysadmin@firewall.loc
         }
         notification_email_from Alexandre.Cassen@firewall.loc
      # 邮件地址,指向本地就行
         smtp_server 127.0.0.1
         smtp_connect_timeout 30
      # 服务器(路由器)的名称,主备服务器名称不能一样,主写01,备写02
         router_id LVS_01
         vrrp_skip_check_adv_addr
      # 必须注释,意味着不再严格遵守VRRP协议,不注释VIP无法连接
         #vrrp_strict
      # 下面原本还有,删不删都行
      }
      
      vrrp_instance VI_1 {
      # 指定热备状态,MASTER代表主,BACKUP代表备
          state MASTER
      # 指定承载VIP地址的物理接口
          interface ens33
      # 指定虚拟路由器的ID号,主备必须一致
          virtual_router_id 10
      # 优先级,数字越大代表优先级越高,主写100,备写90
          priority 100
      # 心跳频率(通报间隔秒数)
          advert_int 1
      # 认证信息,主备必须一致
          authentication {
              auth_type PASS
              auth_pass abc123
          }
      # 集群的VIP地址,只有一个就只需要写一个
          virtual_ipaddress {
              192.168.188.188
          }
      }
      # 指定虚拟服务器地址(VIP)、端口
      virtual_server 192.168.188.188 80 {
      # 健康检查的间隔(秒)
          delay_loop 6
      # 指定调度算法,rr是轮询
          lb_algo rr
      # 指定集群工作模式,DR是直接路由
          lb_kind DR
      # 连接保持时间(秒)
          persistence_timeout 50
          protocol TCP
      
      # 指定第一个Web节点服务器的地址和端口
          real_server 192.168.188.13 80 {
      # 权重
              weight 1
      # 原本的16行内容可以直接删除
      # 添加以下健康检查的内容
              TCP_CHECK {
      # 检查的端口
                  connect_port 80
      # 连接超时时间(秒)
                  coonect_timeout 3
      # 重试次数
                  nb_get_retry 3
      # 重试间隔
                  delay_before_retry 3
              }
          }
      # 添加第二个Web节点服务器的地址和端口
          real_server 192.168.188.14 80 {
              weight
              TCP_CHECK {
                  connect_port 80
                  connect_timeout 3
                  nb_get_retry 3
                  delay_before_retry 3
              }
          }
      }
      # 底下一大堆内容可以全部删除


    5. 配置虚拟IP(VIP)
      vim /etc/sysconfig/network-scripts/ifcfg-ens33:0
      DEVICE=ens33:0
      ONBOOT=yes
      IPADDR=192.168.188.188
      NETMASK=255.255.255.255


      配置完重启网卡
      systemctl restart network
      打开虚拟网卡
      ifup ens33:0
      查看一下有没有生效
      ip addr

      启动keepalived服务
      systemctl start keepalived
    6. 启动ipvsadm服务
      主DR服务器(192.168.188.11):
      备份
      ipvsadm-save > /etc/sysconfig/ipvsadm
      systemctl start ipvsadm

      配置规则
      先清空
      ipvsadm -C
      ipvsadm -A -t 192.168.188.188:80 -s rr
      ipvsadm -a -t 192.168.188.188:80 -r 192.168.188.13:80 -g
      ipvsadm -a -t 192.168.188.188:80 -r 192.168.188.14:80 -g

      查看分发策略

      备DR服务器(192.168.188.12):
      备份
      ipvsadm-save > /etc/sysconfig/ipvsadm
      systemctl start ipvsadm
      不需要配置策略,直接查看
      ipvsadm -ln,并没有策略
    7. 调整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. 配置Web节点服务器(192.168.188.13、192.168.188.14)
    1. 关闭防火墙
      systemctl stop firewalld
      setenforce 0
    2. 安装并启动httpd
      yum -y install httpd
      systemctl start httpd
      检查一下端口对不对
      netstat -anpt | grep :80,如果不是httpd就代表不对,端口被其他应用占用了,比如说nginx
    3. 准备两个页面
      Web服务器1(192.168.188.13):
      echo 'who are you?' > /var/www/html/index.html

      Web服务器2(192.168.188.14):
      echo 'i am dzd!' > /var/www/html/index.html
    4. 配置虚拟网卡(lo:0)
      vim /etc/sysconfig/network-scripts/ifcfg-lo:0
      DEVICE=lo:0
      ONBOOT=yes
      IPADDR=192.168.188.188
      NETMASK=255.255.255.255


      重启网卡
      systemctl restart network
      启动虚拟网卡
      ifup lo:0
      查看
      ip addr

      添加路由规则
      route add -host 192.168.10.180 dev lo:0
    5. 调整proc响应参数
      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. 测试
    1. 我直接在本机的浏览器上进行的访问,在同一网段的虚拟机也可以测试
      在客户端上访问http://192.168.188.188/,多刷新几次,节点服务器上的内容都能显示,说明负载均衡没问题(不显示其他内容就隔几十秒再刷新)

    2. 在主DR服务器(192.168.188.11)上关掉Keepalived,模拟单点故障
      systemctl stop keepalived

      将客户端的浏览器缓存清空,再访问一次,依然能看到之前的内容,说明没有问题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1269395.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

selenium使用记录

本文记录python环境下使用selenium的一些步骤 Step1:安装并配置驱动 pip install selenium # 使用pip在对应python中安装selenium包为了让selenium能调用指定的浏览器,需要下载对应浏览器的驱动程序(这里以edge为例子) #Firefo…

【Openstack Train安装】四、MariaDB/RabbitMQ 安装

本章介绍了MariaDB/RabbitMQ的安装步骤,MariaDB/RabbitMQ仅需要在控制节点安装。 在安装MariaDB/RabbitMQ前,请确保您按照以下教程进行了相关配置: 【Openstack Train安装】一、虚拟机创建 【Openstack Train安装】二、NTP安装 【Opensta…

改善厦门城市内涝积水问题,实时监测城市易涝积水点

近年来,城市内涝积水问题已成为中国许多城市面临的严峻挑战。特别是在厦门这样的海滨城市,由于其特殊的地理环境和气候条件,内涝问题尤为突出。传统的解决方法主要依赖于人工排查,然而,这种方式存在许多缺陷。 WITBEE万…

BEVFormer【人工智能】

BEVFormer 是一篇今年中稿 ECCV 2022 的论文,其中提出了一种纯视觉(camera)感知任务的算法模型,用于实现3D目标检测和地图分割任务。该算法通过提取环视相机(Bird’s Eye View Camera)采集到的图像特征&…

【产品设计】SaaS产品数据分析之指标与标签

数据分析能够应用到各个领域和岗位,那么在SaaS产品中的应用会是如何?本文将探索SaaS产品在数据分析中的应用,并对其指标与标签的设计进行总结分析,一起来看看吧。 数据分析是业务开展过程中,收集记录各种行为产生的数据…

vue2+element-ui npm run build打包后,在服务器打开报错

报错 页面的图标也显示不出来,如下 解决: 在build->utils.js文件里面加上publicPath: ../../,再打包发布一下就可以了 // Extract CSS when that option is specified// (which is the case during production build)if (options.extrac…

数据挖掘之时间序列分析

一、 概念 时间序列(Time Series) 时间序列是指同一统计指标的数值按其发生的时间先后顺序排列而成的数列(是均匀时间间隔上的观测值序列)。 时间序列分析的主要目的是根据已有的历史数据对未来进行预测。 时间序列分析主要包…

re:Invent 构建未来:云计算生成式 AI 诞生科技新局面

文章目录 前言什么是云计算云计算类型亚马逊云科技云计算最多的功能最大的客户和合作伙伴社区最安全最快的创新速度最成熟的运营专业能力 什么是生成式 AI如何使用生成式 AI后记 前言 在科技发展的滚滚浪潮中,我们见证了云计算的崛起和生成式 AI 的突破&#xff0c…

客服管理者如何有效管理客服团队,有哪些高效方式?

在如今的市场竞争中,客户服务是企业成功的关键因素之一。因此,客服团队的有效管理至关重要。客服管理者需要了解如何有效地管理客服团队,以确保客户的满意度和忠诚度,从而提高企业的竞争力。 以下是客服管理者如何有效管理客服团队…

【AI】Segment-Anything本地部署

Segment-Anything是Meta开源的图像分割模型,顾名思义,可以分割所有东西,感觉这东西可以用于遥感影像分割,于是找来源码测试一下。 项目地址:https://github.com/facebookresearch/segment-anything 1. 构建环境 首先…

论文笔记:Confidential Assets

Confidential Assets 描述了一种称为“保密交易”的方案,该方案模糊了所有UTXO的金额,同时保持了不创建或销毁硬币的公共可验证性。进一步将此方案扩展到“保密资产”,一种单一的基于区块链的分类帐可以跟踪多种资产类型的方案。将保密交易扩…

VSCode编译多个文件

打开tasks.json文件,找到"$ {file}“这一行。然后在其后面添加你想要编译的文件即可。 比如我这里是想要编译当前文件夹下的所有.cpp文件,那么我就直接把”$ {file}"给注释掉了,然后再使用通配符来代表所有.cpp文件。 最后解释以下…

支持向量机,硬间隔,软间隔,核技巧,超参数设置,分类与回归

SVM(Support Vector Machine,支持向量机)是一种非常常用并且有效的监督学习算法,在许多领域都有广泛应用。它可以用于二分类问题和多分类问题,并且在处理高维数据和特征选择方面非常强大。SVM算法的核心思想是通过找到…

vue3项目安装vite-plugin-mock 项目报错

vue3vite项目安装了vite-plugin-mock之后,根据官网配置使用,vscode会出现波浪线,启动项目,发现运行不了 解决办法: 安装vite-plugin-mock2.9.6的版本即可 pnpm install mockjs vite-plugin-mock2.9.6 -D

RabbitMQ的Web管理页面

访问页面 http://IP:15672/账号密码默认都是:guest 主页概览 Overview 显示当前RabbitMQ Broker的运行信息、连接信息、集群信息以及配置信息等。 连接 Connections 无论生产者还是消费者,都需要与RabbitMQ建立连接后才可以完成消息的生产和消费&#…

frida的hook代码:在python中格式,以及常用hook方法

js 写hook格式 首先frida的hook代码是通关JavaScript进行实现的,而且调用是通关python进行调用的 如果单独写一个js,就需要通关frida 命令进行启动了 首先聊一下frida的几个常用命令: -U:连接USB设备。-F:附加最前…

全球高纯铜靶材总体规模分析:行业现状及发展趋势

高纯铜靶材是指采用纯度在 4N(Cu≥99.99%)以上的金属铜生产的靶材(N 即代表铜的纯度,N 前面的数字越大铜纯度越高)。 高纯铜靶材是一种用于薄膜沉积工艺的材料,具有极高的纯度和特定的物理和化学性质。它通…

HotSpot 虚拟机中的对象

1、对象的创建 Java 是一门面向对象的编程语言,程序运行过程中无时无刻都有对象被创建出来。在语言层面上,创建对象通常仅仅是一个 new 关键字,而虚拟机中,对象(仅限于普通 Java 对象,不包括数组和 Class …

【批处理常用命令及用法大全】

文章目录 1 echo 和 回显控制命令2 errorlevel程序返回码3 dir显示目录中的文件和子目录列表4 cd更改当前目录5 md创建目录6 rd删除目录7 del删除文件8 ren文件重命名9 cls清屏10 type显示文件内容11 copy拷贝文件12 title设置cmd窗口的标题13 ver显示系统版本14 label 和 vol设…

C51--LCD1602显示屏

LCD602显示: 1、概述 LCD602是一种工业字符型液晶,能够同时显示16x02,即32字符(16列,2行) 2、引脚: VSS:电源地VDD:电源正极——5V电源VO: 液晶显示偏压 …