搭建LVS负载均衡集群

2022-08-06  本文已影响0人  右耳菌

1. 负载均衡集群介绍


2. LVS简介

一个LVS集群往往包含以下角色:

  1. DS: Director Server。指的是前端负载均衡器节点。
  2. RS: Real Server。后端真实的工作服务器。
  3. VIP:向外部直接面向用户请求,作为用户请求的目标的IP地址。
  4. DIP: Director Server lP,主要用于和内部主机通讯的IP地址。
  5. RIP: Real ServerlP,后端服务器的IP地址。
  6. CIP: Client lP,访问客户端的IP地址。

3. LVS NAT模式 - 改IP实现


4. LVS IP Tunnel 模式 - 封装报文实现


5. LVS DR模式 - 改MAC地址实现


6. LVS调度算法

针对不同的网络服务需求和服务器配置,IPVS调度器实现了如下八种负载调度算法:


7. LVS 集群搭建

环境准备:

7.1 安装ipvs 和 keepalived

根据需要可能需要 sudo

yum -y install ipvsadm 
yum -y install keepalived

or

apt install ipvsadm 
apt install keepalived
7.2 查看本机内核是否支持ipvs
sudo lsmod | grep ip_vs
7.3 创建keepalived.conf
vim /etc/keepalived/keepalived.conf
# Global Configuration
global_defs{
  lvs_id director1
}

vrrp_instance LVS {
  state MASTER
  interface eth0   #对应虚拟机的网卡,使用ifconfig查看
  virtual_router_id 100    #这个数值 master和slave必须统一
  priority 151     #这个数值决定哪台服务器是master 
  advert_int 1
  authentication {
        auth_type PASS 
        auth_pass 123456
  }
  virtual_ipaddress {
        192.168.3.110
  }
}

#Virtual Server Configuration - for www server
virtual_server 192.168.3.110 80 {
  delay_loop 6
  lb_algo rr  # 负载均衡逻辑策略 rr 表示轮叫(轮询)
  lb_kind DR  # 负载均衡模式DR

  # 同一个IP地址,同一个子集,在同一段时间返回的Real Server IP一样 
  # 0 表示每次返回都不相同,60表示一分钟
  # persistence_timeout 50
  protocol TCP # 协议TCP

  # Real Server 1  configuration
  real_server 192.168.146.139 80 {
    weight 1
    TCP_CHECK {
      connect_timeout 3
      nb_get_retry 3
      delay_before_retry 3
    }
  }
  # Real Server 2  configuration
  real_server 192.168.146.140 80 {
    weight 1
    TCP_CHECK {
      connect_timeout 3
      nb_get_retry 3
      delay_before_retry 3
    }
  }
}

host2 配置基本一致

# Global Configuration
global_defs{
  lvs_id director2
}

vrrp_instance LVS {
  state MASTER
  interface eth0   #对应虚拟机的网卡,使用ifconfig查看
  virtual_router_id 100    #这个数值 master和slave必须统一
  priority 150     #这个数值决定哪台服务器是master 
  advert_int 1
  authentication {
        auth_type PASS 
        auth_pass 123456
  }
  virtual_ipaddress {
        192.168.3.110
  }
}

#Virtual Server Configuration - for www server
virtual_server 192.168.3.110 80 {
  delay_loop 6
  lb_algo rr  # 负载均衡逻辑策略 rr 表示轮叫(轮询)
  lb_kind DR  # 负载均衡模式DR

  # 同一个IP地址,同一个子集,在同一段时间返回的Real Server IP一样 
  # 0 表示每次返回都不相同,60表示一分钟
  # persistence_timeout 50
  protocol TCP # 协议TCP

  # Real Server 1  configuration
  real_server 192.168.146.139 80 {
    weight 1
    TCP_CHECK {
      connect_timeout 3
      nb_get_retry 3
      delay_before_retry 3
    }
  }
  # Real Server 2  configuration
  real_server 192.168.146.140 80 {
    weight 1
    TCP_CHECK {
      connect_timeout 3
      nb_get_retry 3
      delay_before_retry 3
    }
  }
}

7.4 修改Nginx配置
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
  worker_connections 768;
  # multi_accept on;
}

http {
  server {  
    listen 80; # 监听80端口
    
    location / {
      default_type text/html;
      return 200 "Hello, Nginx! Server host3@192.168.3.103";
    }
  }
}
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
  worker_connections 768;
  # multi_accept on;
}

http {
  server {  
    listen 80; # 监听80端口
    
    location / {
      default_type text/html;
      return 200 "Hello, Nginx! Server host4@192.168.3.104";
    }
  }
}

可以使用curl -i 192.168.3.103/104 测试是否访问正常

7.5 创建lvrs文件 host3 和 host4 都需要
vim emacs /etc/init.d/lvsrs
# 如果要关闭则全部写 echo "0"
#!/bin/bash  
ifconfig lo:192.168.3.110 netmask 255.255.255.255 broadcast 192.168.3.110 up route add -host 192.168.3.110 dev lo:0
echo "0" > /proc/sys/net/ipv4/ip_forward
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

exit 0

将以上文件设置成可执行的

sudo chmod +x  /etc/init.d/lvsrs

然后执脚本即可

sudo /etc/init.d/lvsrs
7.6 启动host1 和 host2 的keepalived即可
sudo service keepalived start

查看

sudo ipvsadm -ln

如果觉得有收获,欢迎点赞和评论,更多知识,请点击关注查看我的主页信息哦~

上一篇 下一篇

猜你喜欢

热点阅读