ansible部署lvs集群DR模式_服务器

LVS DR模式,LVS主机和web服务器都是单网卡,它们连在同一网络中

client1:eth0: 192.168.88.10

lvs1:eth0:192.168.88.5

web1:eth0:192.168.88.100

web2:eth0:192.168.88.200

在DR模式下,LVS 仅修改数据包的目的MAC地址,使其直接路由到选中的Real Server,源IP和目标IP保持不变。

入站数据包经过调度器,出站数据包不经过调度器,大大降低调度器流量压力。

需要调度器和真实服务器在同一网络内,调度器和真实服务器设置临时相同IP,为了避免与LVS的VIP产生ARP冲突(因为VIP在LVS 和所有Real Server上都存在),需要禁用真实服务器上VIP的ARP响应功能,确保只有LVS 响应VIP的ARP请求,而真实服务器只接收目的MAC地址指向自己的数据包,防止客户端接收真实服务器回应时丢弃数据包。

1.在lvs1的eth0上配置vip 192.168.88.15

[root@pubserver cluster]# vim 05-config-lvsvip.yml

  ---

  - name: config lvs vip

    hosts: lb

    tasks:

       - name: add vip linein

         file: # 确保文件中有某一行内容

           path: /etc/sysconfig/network-scripts/ifcfg-eth0

           line: IPADDR2=192.168.88.15

           notify: restart eth0 # 通知执行handlers中的任务

    handlers: # 被通知执行的任务写到这里

        - name: restart eth0

         shell: nmcli connection down eth0; nmcli connection up eth0

 [root@pubserver cluster]# ansible-playbook 05-config-lvsvip.yml

2.在2台web服务器的lo上配置vip 192.168.88.15。lo:0网卡需要使用network-scripts提供的配置文件进行配置
[root@pubserver cluster]# vim 06-config-webvip.yml
     ---
     - name: config webservers vip
       hosts: webservers
       tasks:
         - name: install network-scripts  # 安装服务
           yum:
            name: network-scripts 
            state: present
         - name: add lo:0   # 创建lo:0的配置文件
           copy:
             dest: /etc/sysconfig/network-scripts/ifcfg-lo:0
             content: |
             DEVICE=lo:0
             NAME=lo:0
             IPADDR=192.168.88.15
             NETMASK=255.255.255.255
             NETWORK=192.168.88.15
             BROADCAST=192.168.88.15
            ONBOOT=yes
            notify: activate lo:0

      handlers:
        - name: activate lo:0   # 激活网卡
          shell: ifup lo:0
 [root@pubserver cluster]# ansible-playbook 06-config-webvip.yml
3.在2台web服务器上配置内核参数,使得它们不响应对192.168.88.15的请求
[root@web1 ~]# vim /etc/sysctl.conf 
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.lo.arp_announce = 2
[root@web1 ~]# sysctl -p

#web2同理

#控制了接收到的ARP请求的处理方式确保只有LVS Director响应VIP的ARP请求。

#设置专门针对回环接口lo

#控制了本地系统向外宣布自己的IP地址的方式

#这个设置是针对回环接口

4.在lvs上配置虚拟服务器

#创建虚拟服务器

[root@lvs1 ~]# ipvsadm -A -t 192.168.88.15:80 -s wlc

#向虚拟服务器中加真实服务器

[root@lvs1 ~]# ipvsadm -a -t 192.168.88.15:80 -r 192.168.88.100 -w 1 -g [root@lvs1 ~]# ipvsadm -a -t 192.168.88.15:80 -r 192.168.88.200 -w 2 -g

#查看配置

[root@lvs1 ~]# ipvsadm -Ln

5.客户验证

[root@client1 ~]# for i in {1..6}; do curl http://192.168.88.15/; done

Welcome from web2

Welcome from web1

Welcome from web2

Welcome from web2

Welcome from web1

Welcome from web2

1.lvs只调度流量,不拆包

2.lvs不具备健康检查功能

3.规则为临时配置