LVS DR模式搭建
• 三台机器
• 分发器,也叫调度器(简写为dir)172.16.161.130
• rs1 172.16.161.131
• rs2 172.16.161.132
• vip 172.16.161.200(同网段) • dir上编写脚本 vim /usr/local/sbin/lvs_dr.sh //内容如下
#! /bin/bash
echo > /proc/sys/net/ipv4/ip_forward
ipv=/usr/sbin/ipvsadm
vip=172.16.161.200
rs1=172.16.161.131
rs2=172.16.161.132
#注意这里的网卡名字
ifdown ens33
ifup ens33
ifconfig ens33: $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip dev ens33:
$ipv -C
$ipv -A -t $vip: -s wrr
$ipv -a -t $vip: -r $rs1: -g -w
$ipv -a -t $vip: -r $rs2: -g -w sh /usr/local/sbin/lvs_dr.sh 执行一下看是否有错误 • 两台rs上也编写脚本 vim /usr/local/sbin/lvs_rs.sh//内容如下
#/bin/bash
vip=172.16.161.200
#把vip绑定在lo上,是为了实现rs直接把结果返回给客户端
ifdown lo
ifup lo
ifconfig lo: $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip lo:
#以下操作为更改arp内核参数,目的是为了让rs顺利发送mac地址给客户端
#参考文档www.cnblogs.com/lgfeng/archive////.html
echo "" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "" >/proc/sys/net/ipv4/conf/all/arp_announce
• 分别在dir上和两个rs上执行这些脚本
• 测试
清空规则 iptables -t nat -F
curl 172.16.161.200 浏览器访问 172.16.161.200

• 完整架构需要两台服务器(角色为dir)分别安装keepalived软件,目的是实现高可用,但keepalived本身也有负载均衡的功能,所以本次实验可以只安装一台keepalived
• keepalived内置了ipvsadm的功能,所以不需要再安装ipvsadm包,也不用编写和执行那个lvs_dir的脚本
• 三台机器分别为:
• dir(安装keepalived)133.130
• rs1 133.132
• rs2 133.133
• vip 133.200 如果rs宕机keepalived就会检测到服务器宕机就不会转发到该服务器上 • 编辑keepalived配置文件 vim /etc/keepalived/keepalived.conf
• 需要更改里面的ip信息 vrrp_instance VI_1 {
#备用服务器上为 BACKUP
state MASTER
#绑定vip的网卡为ens33
interface ens33
virtual_router_id
#备用服务器上为90
priority
advert_int
authentication {
auth_type PASS
auth_pass aminglinux
}
virtual_ipaddress {
172.16.161.200
}
}
virtual_server 172.16.161.200 {
#(每隔10秒查询realserver状态)
delay_loop
#(lvs 算法)
lb_algo wlc
#(DR模式)
lb_kind DR
#(同一IP的连接60秒内被分配到同一台realserver)
persistence_timeout
#(用TCP协议检查realserver状态)
protocol TCP
real_server 172.16.161.131 {
#(权重)
weight
TCP_CHECK {
#(10秒无响应超时)
connect_timeout
nb_get_retry
delay_before_retry
connect_port
}
}
real_server 172.16.161.132 {
weight
TCP_CHECK {
connect_timeout
nb_get_retry
delay_before_retry
connect_port
}
}
} • 执行ipvsadm -C 把之前的ipvsadm规则清空掉
• systemctl restart network 可以把之前的vip清空掉
• 两台rs上,依然要执行/usr/local/sbin/lvs_rs.sh脚本
• keepalived有一个比较好的功能,可以在一台rs宕机时,不再把请求转发过去
• 测试

最新文章

  1. word20161223
  2. phpcms V9 首页模板文件解析
  3. Cocos Code IDE新建lua工程报错解决方案
  4. mysql启动报错(mac)
  5. 指针转换(C# 编程指南)
  6. swun 1184
  7. Const和readonly这间的区别和相同处
  8. Fitting Bayesian Linear Mixed Models for continuous and binary data using Stan: A quick tutorial
  9. 设置input框文字垂直居中和宽度
  10. redis学习总结-redis作为MyBatis的自定义缓存
  11. PHP序列化变量的4种方法
  12. Powershell script to install Windows Updates (msu) from folder
  13. Notes for building gimp-print
  14. 怎么在linux 用nginx做代理 配置.net core
  15. 10-free-must-read-books-machine-learning-data-science
  16. LeetCode:Sqrt(x) 解题报告
  17. java.util.concurrent.RejectedExecutionException 线程池饱和
  18. Mysql索引机制B+Tree
  19. ZooKeeper的典型应用场景
  20. Python基础补充(二) 多核CPU上python多线程并行的一个假象【转】

热门文章

  1. 潭州课堂25班:Ph201805201 爬虫高级 第六课 sclapy 框架 中间建 与selenium对接 (课堂笔记)
  2. [Visual Studio] 自定义类模板
  3. delphi StringGrid 表格的复制粘贴
  4. (总结)Ubuntu apt-get apt-cache命令 使用
  5. asp.net mvc流程图4.6以前
  6. 奇怪吸引子---Qi
  7. ORA-00959: tablespace 'TB01' does not exist
  8. 用PowerShell的命令行检查文件的校验MD5 SHA1 SHA256
  9. 阿里云日志服务采集自建Kubernetes日志(标准输出日志)
  10. 【FTP】FTP服务器的搭建