lvs使用进阶
之前lvs基础篇(https://www.cnblogs.com/ckh2014/p/10855002.html)中介绍了lvs-dr的搭建,下面我们再复习一下,架构如下:

相关配置
director:
# ip addr add 192.168.1.111/32 dev/eth0
RS:
写一个脚本:vim setka.sh
#!/bin/bash
#
vip=192.168.1.111
case $1 in
start)
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce ifconfig lo:0 $vip netmask 255.255.255.255 broadcast $vip
;;
stop)
ifconfig lo:0 down
echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 0 > /proc/sys/net/ipv4/conf/eth0/arp_announce
;;
esac director写ipvsadm管理命令:
# ipvsadm -A -t 192.168.1.111:80 -s rr
# ipvsadm -a -t 192.168.1.111:80 -r 192.168.1.102 -g
# ipvsadm -a -t 192.168.1.111:80 -r 192.168.1.103 -g 测试:浏览器访问http://192.168.1.111
那我们如何开放两个端口的服务都做集群调度呢
比如我们再添加ssh服务进行调度
清空上面写的ipvsadm管理命令
# ipvsadm -C
添加80端口web服务集群:
# iptables -t mangle -A PREROUTING -d 192.168.1.111 -p tcp -dport 80 -j MARK --set-mark 10
# ipvsadm -A -f 10 -s rr
# ipvsadm -a -f 10 -r 192.168.1.192 -g
# ipvsadm -a -f 10 -r 192.168.1.103 -g
添加ssh服务到集群:
# iptables -t mangle -A PREROUTING -d 192.168.1.111 -p tcp -dport 22 -j MARK --set-mark 10
再添加一个ssl也受集群管理:
首先我们创建私有CA,给Real Server发证书,这里就简单介绍下创建证书的过程了,之前openssl博客已经写得很详细了,不了解的可以去参考(https://www.cnblogs.com/ckh2014/p/10772175.html):
CA自签证书:
# cd /etc/pki/CA
# touch index.txt
# echo 01 > serial
# (umask 077;openssl genrsa -out private/cakey.pem 2048)
# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 7300
RS生成证书请求:
# cd /etc/httpd
# mkdir ssl
# yum install mod_ssl
#(umask 077;openssl genrsa -out ssl/httpd.key 1024)
# openssl req -new -key ssl/httpd.key -out ssl/httpd.csr -days 365
传给ca签证:
# scp ssl/httpd.csr root@192.168.1.101:/tmp
CA签证:
# openssl ca -in /tmp/httpd.csr -out certs/httpd.crt -days 365
证书传给RS:
# scp certs/httpd.crt 192.168.1.102:/etc/httpd/ssl
RS修改ssl配置文件:
# vim /etc/httpd/conf.d/ssl.conf
具体配置就不详细描述了
证书都发完后,写ipvsadm进行管理:
# ipvsadm -A -t 192.168.1.111:443 -s rr
# ipvsadm -a -t 192.168.1.111:443 -r 192.168.1.102 -g
# ipvsadm -a -t 192.168.1.111:443 -r 192.168.1.103 -g
测试: 浏览器访问https://192.168.1.111
或者iptables规则中打标:
# iptables -t mangle -A PREROUTING -d 192.168.1.111 -p tcp -dport 443 -j MARK --set-mark 10
# ipvsadm -A -f 10 -s rr
# ipvsadm -a -f 10 -r 192.168.1.192 -g
# ipvsadm -a -f 10 -r 192.168.1.103 -g
测试:浏览器访问https://192.168.1.111
总结:
通过FWM定义集群的方式:
(1)在director上netfilter的mangle表的PREROUTNG定义用于”打标“的规则
# iptables -t mangle -A PREROUTING -d $vip -p $protocol --dports $port -j MARK --set-mark #
$vip: VIP地址
$protocol:协议
$port: 协议端口
(2)基于FWM定义集群服务
# ipvsadm -A -f # -s scheduler
# ipvsadm -a -f # $RS_IP $context
$context:上下文,有-m(masquerade,nat),-g(gateway,dr), -i(ipip,tun) 功用:将共享一组RS的集群服务统一进行调度;
session保持:
session绑定
session复制
session服务器 session绑定:lvs sh算法
对某一特定服务;
lvs persistence: lvs的持久连接
功能:无论ipvs使用何种调度方法,其都能实现将来自于同一个Client的请求始终定向至第一次调度时挑选出的RS;
持久连接模板:独立于算法
sourceip rs timer
对多个共享同一组RS的服务器,需要统一进行绑定?
持久连接的实现方式:
每端口持久: PPC,单服务持久调度
每FWM持久: PFWMC,单FWM持久调度
PORT AFFINITY
每客户端持久: PCC,单客户端持久调度
director会将用户的任何请求都识别为集群服务,并向RS进行调度:
TCP:1-65535
UDP:1-65535
# ipvsadm -A -t 192.168.1.101:0 -s rr -p // 端口0表示所有的服务
HA:
SPOF: Single Point Of Failure
director: 高可用集群
realserver: 让director对其做健康状态监测,并且根据监测的结果自动完成添加或移除等管理功能 . 基于协议层次
ip: icmp
传输层:检测端口的开放状态
应用层:请求获取关键性的资源
2. 检查频度 3. 状态判断
下线: ok --> failure --> failure --> failure
上线: failure --> ok --> ok 4. back server,sorry server
lvs使用进阶的更多相关文章
- 6、lvs使用进阶(02)
把web server服务和443服务绑定在一起之后呢? 假设一种场景,对web服务器来讲需要session保持.一个在线购物网站,在购物时,如果不结账,一般是http协议,当结账时,需要网站跳转,可 ...
- 5、lvs使用进阶(01)
四层.七层负载均衡的区别 https://jaminzhang.github.io/lb/L4-L7-Load-Balancer-Difference/ netfilter/iptables简介 ...
- lvs 进阶 第二章
linux virtual server 一 . lvs lvs 对数据进行四层转发,根据目标地址和目标端口对请求数据进行转发. lvs 包含ipvsadm 和ipvs: ipvsadm :用户空间的 ...
- 架构设计:负载均衡层设计方案(3)——Nginx进阶
版权声明:欢迎转载,但是看在我辛勤劳动的份上,请注明来源:http://blog.csdn.net/yinwenjie(未经允许严禁用于商业用途!) 目录(?)[-] Nginx继续进阶 1gzip ...
- LVS + Keepalived + Nginx安装及配置
1.概述 上篇文章<架构设计:负载均衡层设计方案(6)——Nginx + Keepalived构建高可用的负载层>(http://blog.csdn.net/yinwenjie/artic ...
- 架构设计:负载均衡层设计方案(7)——LVS + Keepalived + Nginx安装及配置
1.概述 上篇文章<架构设计:负载均衡层设计方案(6)——Nginx + Keepalived构建高可用的负载层>(http://blog.csdn.net/yinwenjie/artic ...
- 架构设计:负载均衡层设计方案(4)——LVS原理
之前我们花了两篇文章的篇幅,详细讲解了Nginx的原理.安装和特性组件.请参看<负载均衡层设计方案(2)——Nginx安装>(http://blog.csdn.net/yinwenjie/ ...
- Apache+lvs高可用+keepalive(主从+双主模型)
Apache+lvs高可用+keepalive(主从+双主模型) keepalive实验准备环境: httpd-2.2.15-39.el6.centos.x86_64 keepalived-1 ...
- 大数据高并发系统架构实战方案(LVS负载均衡、Nginx、共享存储、海量数据、队列缓存)
课程简介: 随着互联网的发展,高并发.大数据量的网站要求越来越高.而这些高要求都是基础的技术和细节组合而成的.本课程就从实际案例出发给大家原景重现高并发架构常用技术点及详细演练. 通过该课程的学习,普 ...
随机推荐
- CERC2017 H Hidden Hierarchy(树+模拟)
题意: 在一些给定的目录里按要求展开到制定大小并按字典序输出 思路: 因为有目录这个东西,所以想到模拟一个类似字典树的东西,不过这里每个儿子可能有n个节点,而且不能O(1)查询了 代码超长.. #in ...
- Go语言实现:【剑指offer】数据流中的中位数
该题目来源于牛客网<剑指offer>专题. 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值.如果从数据流中读出偶数个数值,那么中位 ...
- 【译文连载】 理解Istio服务网格(第三章 流控)
第3章 流控.............................................................................................. ...
- [教程分享]锐族MP3刷固件教程
转载自我的博客:https://blog.ljyngup.com/archives/163.html/ (废话较多见谅) 在到学校前发现几个月前锐族mp3的固件更新了,赶紧刷了一个,发现网上关于这个售 ...
- css浮动(float)详解
一.什么是浮动? 浮动,顾名思义,就是漂浮的意思.指的是一个元素脱离文档流,悬浮在父元素之上的现象. 二.如何产生浮动? 给元素本身添加float属性 float值: left 元素向左浮动. rig ...
- 开源堡垒机jumpserver
开源堡垒机jumpserver 开源堡垒机jumpserver的安装 开源堡垒机jumpserver的配置和使用
- Vscode使用
一. Vscode使用 1. 点击最下方的错误警告显示条,出现四个选项最后一个为终端命令(dos命令) 2. 提交代码输入提交信息,打勾提交,选择类似刷新按钮进行推送 3. 同步代码点击类似刷新按钮即 ...
- java实现交集,并集,包括对象和基本类型
//java实现求交集,并集,包括元素为对象和基本类型,主要是利用hashMap,set不允许元素重复等特性来进行实现去重,利用反射机制来灵活配置以对象某个属性来进行去重./** * Gaoxl * ...
- Linux运维---1.磁盘相关知识
一 磁盘物理结构 (1) 盘片:硬盘的盘体由多个盘片叠在一起构成. 在硬盘出厂时,由硬盘生产商完成了低级格式化(物理格式化),作用是将空白的盘片(Platter)划分为一个个同圆心.不同半径的磁道(T ...
- css如何玩转有序无序列表项list样式
在无序列表ul>li中,无线列表的标志是出现在各列表前面的圆点.在有序列表ol>li中,前面默认带有数字,如何修改列表前面的项目符号,只需要通过list-style调整就好,常见的符号有( ...