企业级负载均衡--LVS+KeepAlived

调度器的备份

集群(不再是单纯的调度器)

当调度器挂了,客户就彻底不能访问了,这时我们可以设置调度器的高可用

时刻保证调度器的正常工作:设置调度器master(主)和调度器backup(备)

我们在两台调度器上使用keepalived服务就可以将两个调度器关联在一起,keepalived检测两个调度器的工作情况

我们使用keeplived代理LVS,它具有LVS的功能,但同时可以有多个,有主有备

当主调度器挂了备用调度器就去做轮询,当主调度器好了备用调度器就把任务还给主调度器

当主调度器正常的时候,keepalived通知备份调度器自己可以正常工作,不需要接管自己的任务

当主调度器挂了,备份调度器会自动去接管主调度器的工作

这个时候客户端依然可以正常访问,在接管的时候,访问不受影响

搭建DR模式环境

lVS主服务器(server1): 192.168.1.1/24 192.168.1.100/24
修改server1的ip地址,并且添加虚拟ip地址
server2: 192.168.1.2/24 192.168.1.100/32
修改server2的ip地址,并且添加虚拟ip地址
server3: 192.168.1.3/24 192.168.1.100/32
修改server3的ip地址,并且添加虚拟ip地址
lVS备服务器(server2): 192.168.1.4/24 192.168.1.100/24
systemctl stop firewalld
关闭 firewall
setenforce 0
关闭 SELinux

server1

yum install -y ipvsadm

安装 ipvsadm
vim /etc/sysconfig/ipvsadm-config
修改LVS服务的配置文件:no->yes
重启服务的时候保存策略
systemctl start ipvsadm
首次开启会报错,无法开启服务
cat /var/log/messages
在日志里面查看服务启动错误的原因
touch /etc/sysconfig/ipvsadm
建立编写策略的文件
systemctl start ipvsadm
再次开启服务,正常
systemctl enable ipvsadm
开启自启

设置DR模式的访问策略

ipvsadm -A -t 192.168.1.100:80 -s rr

添加vip

-A:添加虚拟服务器

-t :指定vip及tcp端口

-s:指定算法

rr:轮询

ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.2:80 -g -w 1

ipvsadm -a -t 1192.168.1.100:80 -r 192.168.1.3:80 -g -w 1

-a :添加节点

-t :指定vip和端口

-r :指定节点ip及端口

-m:表示使用NAT模式

-w:设置权重

ipvsadm -ln

查看当前节点信息

systemctl restart ipvsadm

重启服务

server2

yum install -y http
安装 http
systemctl start httpd
开启
systemctl enable httpd
开机自启
vim /var/www/html/index.html
建立测试页面
server2.example.com
测试页面内容
yum install -y arptables
安装 arptables
arptables -nL
查看策略

设置arptables的访问策略

arptables -A INPUT -d 192.168.1.100 -j DROP
192.168.1.100来源输入全部丢弃
arptables -A OUTPUT -s 192.168.1.100 -j mangle --mangle-ip-s 192.168.1.2
192.168.1.100输出转化为192.168.1.2
cat /etc/sysconfig/arptables
查看规则
arptables-save > /etc/sysconfig/arptables
保存策略
cat /etc/sysconfig/arptables
再次查看,策略已保存
systemctl restart arptables
重启服务

server3

yum install -y http
安装 http
systemctl start httpd
开启
systemctl enable httpd
开机自启
vim /var/www/html/index.html
建立测试页面
server3.example.com
测试页面内容

yum install -y arptables
安装 arptables
arptables -nL
查看策略

设置arptables的访问策略

arptables -A INPUT -d 192.168.1.100 -j DROP
192.168.1.100来源输入全部丢弃
arptables -A OUTPUT -s 192.168.1.100 -j mangle --mangle-ip-s 192.168.1.3
192.168.1.100输出转化为192.168.1.3
cat /etc/sysconfig/arptables
查看规则
arptables-save > /etc/sysconfig/arptables
保存策略
cat /etc/sysconfig/arptables
再次查看,策略已保存
systemctl restart arptables
重启服务

server4

yum install -y ipvsadm

安装 ipvsadm
vim /etc/sysconfig/ipvsadm-config
修改LVS服务的配置文件:no->yes
重启服务的时候保存策略
systemctl start ipvsadm
首次开启会报错,无法开启服务
cat /var/log/messages
在日志里面查看服务启动错误的原因
touch /etc/sysconfig/ipvsadm
建立编写策略的文件
systemctl start ipvsadm
再次开启服务,正常
systemctl enable ipvsadm
开启自启

设置DR模式的访问策略

ipvsadm -A -t 192.168.1.100:80 -s rr

添加vip

-A:添加虚拟服务器

-t :指定vip及tcp端口

-s:指定算法

rr:轮询

ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.2:80 -g -w 1

ipvsadm -a -t 1192.168.1.100:80 -r 192.168.1.3:80 -g -w 1

-a :添加节点

-t :指定vip和端口

-r :指定节点ip及端口

-m:表示使用NAT模式

-w:设置权重

ipvsadm -ln

查看当前节点信息

systemctl restart ipvsadm

重启服务

操作流程

server1

tar -zxvf keepalived-*.tar.gz

解压

cd / keepalived-*

yum install -y gcc openssl-devel

需要源码编译

./configure --prefix=/usr/local/keepalived --with-init=systemd

编译

make && make install

安装

ln -s /usr/local/keepalived/etc/keepalived /etc

配置文件做软链接

vim /etc/keepalived/keepalived.conf

编辑配置文件

global_defs {
       notification_email {
       	     root@localhost
    }
       notification_email_from  keepalived@localhost
       smtp_server 127.0.0.1
       smtp_connect_timeout 30
       router_id LVS_DEVEL
       vrrp_skip_check_adv_addr
       #vrrp_strict--注释,打开无法正常开启服务
       vrrp_garp_interbval 0
       vrrp_gna_interval 0
vrrp_instance VI_1 {
        state MASTER
        interface eth0
        virtual_router_id 30
        priority 100
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            192.168.1.100
        }
}  
        virtual_ipaddress {
          192.168.1.100
        }
}  
virtual_server 192.168.1.100 80 {
        delay_loop 3
        lb_algo rr
        lb_kind DR
        persistence_timeout 50
        protocol TCP
    
real_server 192.168.1.2 80 {
         TCP_CHECK {
           weight 1
                connect_timeout 3
                retry 3
                delay_before_retry 3   
        }
  }
    
real_server 192.168.1.100 80 {
          TCP_CHECK {
            weight 1
                connect_timeout 3
                retry 3
                delay_before_retry 3
        }
  }
}

ip addr del 192.168.1.100/24 dev eth0
systemctl restart keepalived
重启

server4

tar -zxvf keepalived-*.tar.gz

解压

cd / keepalived-*

yum install -y gcc openssl-devel

需要源码编译

./configure --prefix=/usr/local/keepalived --with-init=systemd

编译

make && make install

安装

ln -s /usr/local/keepalived/etc/keepalived /etc

配置文件做软链接

server1

scp /etc/keepalived/keepalived.conf root@192.168.1.4:/etc/keepalived
配置文件传输给 server4
vim /etc/keepalived/keepalived.conf

 vrrp_instance VI_1 {
            state BACKUP        ---备份
            interface eth0          ---网卡
            virtual_router_id 30 ---序号
            priority 50                ---权重
            advert_int 1      
            authentication {
                auth_type PASS
                auth_pass 1111
            }
  }

ip addr del 192.168.1.100/24 dev eth0
systemctl restart keepalived

重启

测试
情况一:

server1(主)与server2(备)同时开启 keepalived 服务

curl 192.168.1.100
访问192.168.1.100可以看到 server2 与 server3 轮流响应请求
server1
ifconfig
eth0 网卡添加 vip 192.168.1.100/24
server2
ifconfig
eth0 网卡没有 vip 192.168.1.100/24 

情况二:

server1(备)开启 keepalived 服务,server1(主) 关闭 keepalived 服务

server1
systemctl stop keepalived

curl 192.168.1.100
访问192.168.1.100可以看到 server2 与 server3 轮流响应请求(切换至备用服务器)
server1
ifconfig
eth0 网卡删除 vip 192.168.1.100/24
server2
ifconfig
eth0 网卡添加 vip 192.168.1.100/24

情况三:

server2(备)开启 keepalived 服务,server1(主) 再次开启 keepalived 服务

server1
systemctl restart keepalived

curl 192.168.1.100
访问192.168.1.100可以看到 server2 与 server3 轮流响应请求(切换回主要服务器)
server1
ifconfig
eth0 网卡添加 vip 192.168.1.100/24
server2
ifconfig
eth0 网卡删除 vip 192.168.1.100/24
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值