前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Keepalived+LVS(DR)集群之一键部署rs机器路由转发

Keepalived+LVS(DR)集群之一键部署rs机器路由转发

作者头像
阿dai学长
发布2019-04-03 10:54:37
9490
发布2019-04-03 10:54:37
举报
文章被收录于专栏:阿dai_linux

负载均衡(Keepalived+lvs)

环境:

且dir机器与rs机器均关闭防火墙(SELinux&firewalld)并安装rsync工具。

dir操作(Keepalived+lvs多端口负载均衡)

dir1
代码语言:javascript
复制
[root@director sbin]# yum install -y keepalived

[root@Centos-1 sbin]# vim /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
    state BACKUP
    interface ens192
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass password
    }
    virtual_ipaddress {
        192.168.14.13
    }
}
virtual_server 192.168.14.13 80 {
    delay_loop 10
    lb_algo wlc
    lb_kind DR
    persistence_timeout 180
    protocol TCP
    real_server 192.168.14.127 80 {
        weight 100
        TCP_CHECK {
        connect_timeout 10
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
    }
    real_server 192.168.14.128 80 {
        weight 100
        TCP_CHECK {
        connect_timeout 10
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
     }
     real_server 192.168.14.129 80 {
         weight 100
         TCP_CHECK {
         connect_timeout 10
         nb_get_retry 3
         delay_before_retry 3
         connect_port 80
         }
      }
}
virtual_server 192.168.14.13 8080 {
    delay_loop 10
    lb_algo wlc
    lb_kind DR
    persistence_timeout 180
    protocol TCP
    real_server 192.168.14.127 8080 {
        weight 100
        TCP_CHECK {
        connect_timeout 10
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
    }
    real_server 192.168.14.128 8080 {
        weight 100
        TCP_CHECK {
        connect_timeout 10
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
     }
     real_server 192.168.14.129 8080 {
         weight 100
         TCP_CHECK {
         connect_timeout 10
         nb_get_retry 3
         delay_before_retry 3
         connect_port 80
         }
      }
}

在dir2上执行同样的操作,lvs多端口负载均衡,需要注意的是dir2机器上state改为BACKUP,priority设为90。

一键部署rs机器路由转发

因为是团队协作,而且需要在多台rs上进行相同的配置及执行某些相同命令,所以创建了分发系统,如下:

使用说明: 待以下工作完成后,执行脚本lvs_rsync.sh便可一键完成rs机器上路由转发功能配置。

准备工作

代码语言:javascript
复制
[root@Centos-1 sbin]# yum install -y expect 
[root@Centos-1 sbin]# yum install -y rsync

说明: 在分发系统服务端安装expect工具;在所有机器上安装rsync工具(用于文件传输)

文件分发

代码语言:javascript
复制
创建ip.list文件,备用:
[root@Centos-1 sbin]# vim /tmp/expect/ip.list
192.168.14.127
192.168.14.128
192.168.14.129
#此处保存的是多台rs的IP

创建list.txt,备用:
[root@Centos-1 sbin]# vim /tmp/expect/list.txt
/usr/local/sbin/lv_rs.sh
#lv_rs.sh为开启rs机器上路由转发功能的脚本

创建路由转发启动脚本,备用:
[root@Centos-1 sbin]#  vim lv_rs.sh
#/bin/bash
vip=192.168.14.13
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip lo:0
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
#该脚本在rs机器使用,用于开启路由转发功能

创建文件分发脚本:
[root@Centos-1 sbin]# vim lvs_rsync.expect
#!/usr/bin/expect
#Using to expect lvs_rs.sh on rs1 rs2 rs3
#Written by Adai
set passwd "password"
set host [lindex $argv 0]
set file [lindex $argv 1]
spawn rsync -avR --files-from=$file / root@$host:/
expect {
"yes/no" { send "yes\r"}
"password:" { send "$passwd\r" }
}
expect eof
#该脚本用于向rs传输list.txt指定的文件

[root@Centos-1 sbin]# chmod a+x lvs_rsync.expect

创建文件分发启动脚本:
[root@Centos-1 sbin]# vim lvs_rsync.sh
#!/bin/bash
#Using to expecting lvs_rs.sh to rs1 rs2 rs3
#Written by Adai
for ip in `cat /tmp/expect/ip.list`
do
    ./lvs_rsync.expect $ip /tmp/expect/list.txt
done
if [ $? -eq 0 ]
then
    /bin/bash /usr/local/sbin/lvs_exe.sh
fi
#该脚本的作用是调用ip.list和list.txt文件,并执行lvs_rsync.expect脚本

使用说明: 本脚本的作用是将脚本lv_rs.sh分发到各个rs机器上。

命令分发

代码语言:javascript
复制
创建命令分发脚本:
[root@Centos-1 sbin]# vim lvs_exe.expect
#!/usr/bin/expect
#Using to expect order to rs
#Written by Adai
set host [lindex $argv 0]
set passwd "password"
set cm [lindex $argv 1]
spawn ssh root@$host
expect {
"yes/no" { send "yes\r"}
"password:" { send "$passwd\r" }
}
expect "]*"
send "$cm\r"
expect "]*"
send "exit\r"
#该脚本用远程执行命令

[root@Centos-1 sbin]# chmod a+x

创建命令分发启动脚本:
[root@Centos-1 sbin]# vim lvs_exe.sh
#!/bin/bash
#Using to pass variates to lvs_exe.expect
#Written by Adai
for ip in `cat /tmp/expect/ip.list`
do
  ./lvs_exe.expect $ip "sh /usr/local/sbin/lv_rs.sh"
done
#该脚本用于调用ip.list文件,并向lvs_exe.expect传递参数

使用说明: 本脚本的作用是执行rs机器上lv_rs.sh脚本。

提示:

脚本欠缺:为对lv_rs.sh文件是否传输到rs机器上进行确认。持续更新。。。

(adsbygoogle = window.adsbygoogle || []).push({});

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017/09/26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 负载均衡(Keepalived+lvs)
    • dir操作(Keepalived+lvs多端口负载均衡)
      • dir1
  • 一键部署rs机器路由转发
    • 准备工作
      • 文件分发
        • 命令分发
          • 提示:
          相关产品与服务
          负载均衡
          负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档