LVS+Keepalived实验

实验前准备
主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 keepalivedglobal_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.loc
      # 邮件地址,指向本地就行smtp_server 127.0.0.1smtp_connect_timeout 30
      # 服务器(路由器)的名称,主备服务器名称不能一样,主写01,备写02router_id LVS_01vrrp_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,备写90priority 100
      # 心跳频率(通报间隔秒数)advert_int 1
      # 认证信息,主备必须一致authentication {auth_type PASSauth_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 50protocol 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 {weightTCP_CHECK {connect_port 80connect_timeout 3nb_get_retry 3delay_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.hqwc.cn/news/233778.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HarmonyOS4.0开发应用(二)【快速学习】

快速学习 创建项目 1.开始创建 2.选择模板 刚开始选择空白的模板即可 3.填写项目信息 这样一个基本项目就创建好了 代码结构 实现Demo(文字动态切换) Entry Component struct Index {State message: string Hello Worldbuild() {Row() {Column() {Text(this.message).fo…

JavaScript WebApi 一(详讲)

基础知识在前面的部分已经讲过了,大家如果没有学习过JavaScript的可以去看一下 1.DOM 引入 在JavaScript中,DOM(文档对象模型)提供了一种表示和操作HTML文档的方式。在DOM中,文档被表示为一个由节点组成的树形结构。…

6.如何利用LIO-SAM生成可用于机器人/无人机导航的二维/三维栅格地图--以octomap为例

目录 1 octomap的安装 2 二维导航节点的建立及栅格地图的构建 3 三维栅格地图的建立 1 octomap的安装 这里采用命令安装: sudo apt install ros-melodic-octomap-msgs ros-melodic-octomap-ros ros-melodic-octomap-rviz-plugins ros-melodic-octomap-server 这样…

Linux 命令ln

1什么是链接 ln在Linux中 ln 命令的功能是为某一个文件在另外一个位置建立一个同步的链接,当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录&#xff0…

构建强大的接口自动化测试框架:Pytest实践指南!

一. 背景 Pytest目前已经成为Python系自动化测试必学必备的一个框架,网上也有很多的文章讲述相关的知识。最近自己也抽时间梳理了一份pytest接口自动化测试框架,因此准备写文章记录一下,做到尽量简单通俗易懂,当然前提是基本的py…

银河麒麟v10——植物大战僵尸原版——2023教程

1、原版安装包如下: 阿里云盘分享https://www.alipan.com/s/Qn5DpDKs2YT 2、麒麟信息: 3、安装命令: 注意:最后一步,需要先解压tar包,再切到PlantsVsZombies.exe所在目录下,再执行启动命令&a…

Rust std fs 比 Python 慢!真的吗!?

作者:Xuanwo Databend Labs 成员,数据库研发工程师 https://github.com/xuanwo 我即将分享一个冗长的故事,从 OpenDAL 的 op.read()开始,以一个意想不到的转折结束。这个过程对我来说非常有启发性,我希望你也能感受到。…

Jmeter接口自动化测试(提取CSV文件遍历数据)

CSV文件是我们参数化时一种最常用的存储数据文件格式,Jmeter也为我们提供了提取CSV文件数据的工具 首先在创建CSV文件之前,我们要保证我们的CSV文件编码格式为ANSI或者UTF-8,我们可以用记事本另存为,将编码改成ANSI或者UTF-8 接着打开Jmeter…

6种可改善软件的可用性测试方法

📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢交流讨论:欢迎加入我们一起学习!📢资源分享:耗时200小时精选的「软件测试」资…

应用软件快速开发平台,一起实现办公流程化发展!

做好办公流程化发展能给企业带来什么好处?其实,在快节奏发展社会中,很多企业的规模和业务量也在不断扩展中,如果还是懒散的办公方式是不能达到事半功倍的效果的。要想实现高效率发展,采用办公流程化发展能让企业管理朝…

springboot+netty化身Udp服务端,go化身客户端模拟设备实现指令联动

🎏:你只管努力,剩下的交给时间 🏠 :小破站 springbootnetty化身Udp服务端,go化身客户端模拟设备实现指令联动 🔗涉及链接前言异步通信的优势异步通信的优势:异步通信的应用场景&…