第十八章 Linux集群架构(上)

18.1 集群介绍

18.2 keepalived介绍

18.3 用keepalived配置高可用集群(上)

准备两台机器

一个为mater   另一个为backup

两台机器都关闭防火墙

两台机器都安装上nginx,为了下一步实验用

两台机器都安装keepalived

•yum install -y keepalived

设定vip为100

master上的配置文件

cat /etc/keepalived/keepalived.conf

global_defs {
   notification_email {
     [email protected]
   }
   notification_email_from [email protected]
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}

vrrp_script chk_nginx {
    script "/usr/local/sbin/check_ng.sh"
    interval 3
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass aminglinux>com
    }
    virtual_ipaddress {
        192.168.93.100
    }

    track_script {
        chk_nginx
    }

}
master上监控脚本

/usr/local/sbin/check_ng.sh

#!/bin/bash
#时间变量,用于记录日志
d=`date --date today +%Y%m%d_%H:%M:%S`
#计算nginx进程数量
n=`ps -C nginx --no-heading|wc -l`
#如果进程为0,则启动nginx,并且再次检测nginx进程数量,
#如果还为0,说明nginx无法启动,此时需要关闭keepalived
if [ $n -eq "0" ]; then
        systemctl  start nginx
        n2=`ps -C nginx --no-heading|wc -l`
        if [ $n2 -eq "0"  ]; then
                echo "$d nginx down,keepalived will stop" >> /var/log/check_ng.log
                systemctl stop keepalived
        fi
fi
脚本赋755权限

systemctl start  keepalived  启动服务

18.4 用keepalived配置高可用集群(中)

backup 配置文件

/etc/keepalived/keepalived.conf

global_defs {
   notification_email {
     [email protected]
   }
   notification_email_from [email protected]
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}

vrrp_script chk_nginx {
    script "/usr/local/sbin/check_ng.sh"
    interval 3
}

vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 51
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass aminglinux>com
    }
    virtual_ipaddress {
        192.168.93.100
    }

    track_script {
        chk_nginx
    }

}

监控脚本

/usr/local/sbin/check_ng.sh
#时间变量,用于记录日志
d=`date --date today +%Y%m%d_%H:%M:%S`
#计算nginx进程数量
n=`ps -C nginx --no-heading|wc -l`
#如果进程为0,则启动nginx,并且再次检测nginx进程数量,
#如果还为0,说明nginx无法启动,此时需要关闭keepalived
if [ $n -eq "0" ]; then
        /etc/init.d/nginx start
        n2=`ps -C nginx --no-heading|wc -l`
        if [ $n2 -eq "0"  ]; then
                echo "$d nginx down,keepalived will stop" >> /var/log/check_ng.log
                systemctl stop keepalived
        fi
fi

脚本赋755权限

systemctl start  keepalived  启动服务

18.5 用keepalived配置高可用集群(下)

18.6 负载均衡集群介绍

18.7 LVS介绍

18.8 LVS的调度算法

18.9 LVS NAT模式搭建(上)

centos1安装 ipvsdam

yum install -y ipvsdam

centos1 网卡配置

dir 编写配置脚本

/usr/local/sbin/lvs_nat.sh

#! /bin/bash
# director 服务器上开启路由转发功能
echo 1 > /proc/sys/net/ipv4/ip_forward
# 关闭icmp的重定向
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects
# 注意区分网卡名字,阿铭的两个网卡分别为ens33和ens37
echo 0 > /proc/sys/net/ipv4/conf/ens33/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/ens37/send_redirects
# director 设置nat防火墙
iptables -t nat -F
iptables -t nat -X
iptables -t nat -A POSTROUTING -s 192.168.93.0/24  -j MASQUERADE
# director设置ipvsadm
IPVSADM='/usr/sbin/ipvsadm'
$IPVSADM -C
$IPVSADM -A -t 192.168.188.110:80 -s rr 
$IPVSADM -a -t 192.168.188.110:80 -r 192.168.93.128:80 -m -w 1
$IPVSADM -a -t 192.168.188.110:80 -r 192.168.93.130:80 -m -w 1

18.10 LVS NAT模式搭建(下)

centos2的网关设为dir

centos3的网关设为dir


课堂串讲

18.1 集群介绍
18.2 keepalived介绍
18.3/18.4/18.5 用keepalived配置高可用集群

18.1 集群介绍

  • 集群根据功能划分为两大类:高可用负载均衡
    • 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务
      实现高可用的开源软件有:heartbeatkeepalived
    • 负载均衡集群,需要有一台服务器作为分发器,它负责把用户的请求分发给后端的服务器处理,在这个集群里,除了分发器外,就是给用户提供服务的服务器了,这些服务器数量至少为2。实现负载均衡的开源软件有LVSkeepalivedhaproxynginx,商业的有F5Netscaler

18.2 keepalived介绍

在这里我们使用keepalived来实现高可用集群,因为heartbeat在centos6上有一些问题,不太稳定。建议以后使用高可用使用keepalived实现。
keepalived通过VRRP(Virtual Router Redundancy Protocl)来实现高可用。其中文叫虚拟路由冗余协议。在这个协议里会将多台功能相同的路由器(机器)组成一个小组,这个小组里会有1个master角色和N(N>=1)个backup角色。master会通过组播的形式向各个backup发送VRRP协议的数据包,当backup收不到master发来的VRRP数据包时,就会认为master宕机了。此时就需要根据各个backup的优先级来决定谁成为新的mater。
Keepalived主要有三个模块,分别是corecheckvrrp。其中core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析,check模块负责健康检查,vrrp模块是来实现VRRP协议的。

18.3/18.4/18.5 用keepalived配置高可用集群

先准备两台机器做高可用集群 一般使用高可用都是针对机器上的服务的 这里以Nginx服务为例子,就是针对Nginx来实现高可用 企业上一般会让Nginx作为负载均衡来使用,当他出现单点故障时,就会导致后端的web机器访问不了, Nginx使用高可用是很有必要的。
192.168.80.102为master 192.168.80.104为backup

步骤

1.两台机器上分别安装keepalived

1
[root@localhost ~]# yum install -y keepalived

2.两台机器上分别安装好针对的服务,这里是Nginx

master上之前编译安装过Nginx
backup为了区别用master 这里使用yum安装

1
2
[root@localhost ~]# yum install -y epel-release
[root@localhost ~]# yum install -y nginx

3.master上编辑keepalived配置文件

我们可以先把自动的配置文件清空 才自定义编辑

1
2
[root@localhost ~]# > /etc/keepalived/keepalived.conf  ##清空内容
[root@localhost ~]# vim /etc/keepalived/keepalived.conf

输入下面内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
global_defs {
   notification_email {
[email protected]
   }
   notification_email_from [email protected]
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}

vrrp_script chk_nginx {
    script "/usr/local/sbin/check_ng.sh"
    interval 3
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 38003800
    }
    virtual_ipaddress {
        192.168.80.66
    }

    track_script {
        chk_nginx
    }

}

内容在 https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D21Z/master_keepalived.conf
keepalived配置文件路径在/etc/keepalived/keepalived.conf

参数 含义
global_defs 全局定义
notification_email 出现问题时给邮箱发邮件
notification_email_from 又哪个邮箱发邮件
vrrp_script chk_nginx 检查Nginx服务是否正常 指定检查脚本的路径
interval 3 检查间断为3秒
state MASTER 定义master
interface 指定网卡发送VRRP包
virtual_router_id 定义路由群的id
priority 定义权重
authentication 定义认证
auth_type 认证类型
auth_pass 认证密码
virtual_ipaddress 定义虚拟ip(vip)此IP用来访问此虚拟路由群的,就是把master和backup看作一台机器单个IP
chk_nginx 加载检查脚本

4.master上编写检查Nginx脚本

1
[root@localhost ~]# vim /usr/local/sbin/check_ng.sh

输入下面内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/bin/bash
#时间变量,用于记录日志
d=`date --date today +%Y%m%d_%H:%M:%S`
#计算nginx进程数量
n=`ps -C nginx --no-heading|wc -l`
#如果进程为0,则启动nginx,并且再次检测nginx进程数量,
#如果还为0,说明nginx无法启动,此时需要关闭keepalived
if [ $n -eq "0" ]; then
        /etc/init.d/nginx start
        n2=`ps -C nginx --no-heading|wc -l`
        if [ $n2 -eq "0"  ]; then
                echo "$d nginx down,keepalived will stop" >> /var/log/check_ng.log
                systemctl stop keepalived
        fi
fi

内容在 https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D21Z/master_check_ng.sh
脚本上systemctl stop keepalived关闭keepalived服务是为了启动backup上的keepaliveed时候 不会出现“脑裂”现象。即master和backup的keepaliveed各自抢占资源,如VIP,外部访问时候出现两台机器同个ip。

5.更改检查脚本的权限

1
[root@localhost ~]# chmod 755 /usr/local/sbin/check_ng.sh

6.master上启动keepalived服务

1
[root@localhost ~]# systemctl start keepalived

测试

master上停止Nginx服务看是否自动开启

1
2
3
4
5
[root@localhost ~]# service nginx start
Starting nginx (via systemctl):                            [  确定  ]

[root@localhost ~]# ps aux |grep nginx
root      2720  0.0  0.0 112720   964 pts/0    R+   23:19   0:00 grep --color=auto nginx

发现没有启动Nginx,这里是防火墙问题

1
2
[root@localhost ~]# setenforce 0
[root@localhost ~]# systemctl stop firewalld

现在看到Nginx是自动开启的

1
2
3
4
5
[root@localhost ~]# ps aux |grep nginx
root      3387  0.0  0.1  45888  1284 ?        Ss   23:22   0:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
nobody    3391  0.0  0.4  48380  4168 ?        S    23:22   0:00 nginx: worker process
nobody    3392  0.0  0.3  48380  3916 ?        S    23:22   0:00 nginx: worker process
root      3394  0.0  0.0 112720   968 pts/0    R+   23:22   0:00 grep --color=auto nginx

ip add查看VIP

keepalived日志在/var/log/messages中看到

7.为了让实验成功 两台机器都关闭防火墙

1
2
[root@localhost ~]# setenforce 0
[root@localhost ~]# systemctl stop firewalld

8.backup上编辑keepalived配置文件

1
2
[root@localhost ~]# > /etc/keepalived/keepalived.conf
[root@localhost ~]# vim /etc/keepalived/keepalived.conf

输入下面内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
global_defs {
   notification_email {
[email protected]
   }
   notification_email_from [email protected]
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}

vrrp_script chk_nginx {
    script "/usr/local/sbin/check_ng.sh"
    interval 3
}

vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 51
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass aminglinux>com
    }
    virtual_ipaddress {
        192.168.80.66
    }

    track_script {
        chk_nginx
    }

}

内容在 https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D21Z/backup_keepalived.conf
这里和master上的不一样的地方是state BACKUPpriority 90 backup的权重比主少

9.backup上编写检查Nginx脚本

1
[root@localhost ~]# vim /usr/local/sbin/check_ng.sh

输入下面内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/bin/bash
#时间变量,用于记录日志
d=`date --date today +%Y%m%d_%H:%M:%S`
#计算nginx进程数量
n=`ps -C nginx --no-heading|wc -l`
#如果进程为0,则启动nginx,并且再次检测nginx进程数量,
#如果还为0,说明nginx无法启动,此时需要关闭keepalived
if [ $n -eq "0" ]; then
        systemctl start nginx
        n2=`ps -C nginx --no-heading|wc -l`
        if [ $n2 -eq "0"  ]; then
                echo "$d nginx down,keepalived will stop" >> /var/log/check_ng.log
                systemctl stop keepalived
        fi
fi

内容在 https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D21Z/backup_check_ng.sh
和主上的区别在于 systemctl start nginx 是由于从机器上使用yum安装的

10.修改backup上的脚本权限并启动keepalived服务

1
2
[root@localhost ~]# chmod 755 /usr/local/sbin/check_ng.sh
[root@localhost ~]# systemctl start keepalived

测试

master上之前设置了默认虚拟主机 更改主页内容

backup主页的地址在/usr/share/nginx/html/index.html 并更改主页内容

同时查看vip是加载maser的主页的

模拟master机器宕机,直接把maser上的keepalied服务给停掉 早看看vip是否给了backup

1
[root@localhost ~]# systemctl stop keepalived

留意backup

1
2
3
4
5
6
7
8
9
[root@localhost ~]# ip add
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:71:e1:ca brd ff:ff:ff:ff:ff:ff
    inet 192.168.80.104/24 brd 192.168.80.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet 192.168.80.66/32 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::7e09:37c4:bc0a:504a/64 scope link
       valid_lft forever preferred_lft forever

看到vip已经来到了backup上,再用浏览器看看

再把maser上的keepalived启动 发现vip又回到了主上

1
2
3
4
5
6
7
8
9
10
[root@localhost ~]# systemctl start keepalived

2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:06:17:0b brd ff:ff:ff:ff:ff:ff
    inet 192.168.80.102/24 brd 192.168.80.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet 192.168.80.66/32 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::c25c:7f22:5b19:4d48/64 scope link
       valid_lft forever preferred_lft forever

18.6 负载均衡集群介绍
18.7 LVS介绍
18.8 LVS调度算法
18.9/18.10 LVS NAT模式搭建

18.6 负载均衡集群介绍

负载均衡主流开源软件LVSkeepalivedhaproxynginx等。
其中LVS属于4层(网络OSI 7层模型),nginx属于7层,haproxy既可以认为是4层,也可以当做7层使用。
其实keepalived的负载均衡功能其实就是lvs,lvs这种4层的负载均衡是可以分发除80外的其他端口通信的,比如MySQL的,而nginx仅仅支持http,https,mail,haproxy也支持MySQL这种。但是nginx可以实现根据目录来区分后端的服务器等更为灵活的功能。
相比较来说,LVS这种4层的更稳定,能承受更多的请求,而nginx这种7层的更加灵活,能实现更多的个性化需求。

18.7 LVS介绍

LVS是由国人章文嵩开发的。其流行度不亚于apache的httpd,是基于TCP/IP做的路由和转发,稳定性和效率很高。
LVS最新版本基于Linux内核2.6,有好多年不更新了。
LVS有三种常见的模式:NATDRIP Tunnel
LVS架构中有一个核心角色叫做分发器(Load balance),它用来分发用户的请求,还有诸多处理用户请求的服务器(Real Server,简称rs

NAT模式

这种模式借助iptables的nat表来实现
用户的请求到分发器后,通过预设的iptables规则,把请求的数据包转发到后端的rs上去
rs需要设定网关为分发器的内网ip
用户请求的数据包和返回给用户的数据包全部经过分发器,所以分发器成为瓶颈,一般请求量在10台以下。
在nat模式中,只需要分发器有公网ip即可,所以比较节省公网ip资源。

IP Tunnel模式

这种模式,需要有一个公共的IP配置在分发器和所有rs上,我们把它叫做vip
客户端请求的目标IP为vip,分发器接收到请求数据包后,会对数据包做一个加工,会把目标IP改为rs的IP,这样数据包就到了rs上
rs接收数据包后,会还原原始数据包,这样目标IP又变回为vip,因为所有rs上配置了这个vip,此时它会认为用户请求的就是它自己。
这个模式下的rs都会独立的公网IP来回复用户的请求,可以减少分发器的压力。

DR模式

这种模式,也需要有一个公共的IP配置在分发器和所有rs上,也就是vip
和IP Tunnel不同的是,它会把数据包的MAC地址修改为rs的MAC地址
rs接收数据包后,会还原原始数据包,这样目标IP为vip,因为所有rs上配置了这个vip,所以它会认为是它自己。
此模式下rs配置公网IP来返回用户请求。

总结

综上所述,nat模式就是做iptables路由转发 IP Tunnel模式实际上是更改目标IP DR模式更改目标MAC地址

18.8 LVS调度算法

名称 缩写 含义
轮询 Round-Robin rr 平均分发用户请求
加权轮询 Weight Round-Robin wrr 带权重的轮询
最小连接 Least-Connection lc 分发用户给连接数少的机器上
加权最小连接 Weight Least-Connection wlc 带权重的最小连接
基于局部性的最小连接 Locality-Based Least Connections lblc  
带复制的基于局部性最小连接 Locality-Based Least Connections with Replication lblcr  
目标地址散列调度 Destination Hashing dh  
源地址散列调度 Source Hashing sh  

18.9/18.10 LVS NAT模式搭建

准备工作

准备三台机器 一台作分发器,两台作rs
分发器:kun03 内网:192.168.80.102 外网:192.168.218.128
rs1:kun05 内网:192.168.80.104 网关:192.168.80.102
rs2:kun06 内网:192.168.80.105 网关:192.168.80.102

kun03上添加外网网卡 选择仅主机模式

编辑外网网卡配置

1
2
3
4
[root@kun03 ~]# cd /etc/sysconfig/network-scripts/
[root@kun03 network-scripts]# cp ifcfg-ens33 ifcfg-ens37
[root@kun03 network-scripts]# vim !$
vim ifcfg-ens37
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens37
#UUID=75aabb45-9fbe-45d6-800e-fa2d04f72e13
DEVICE=ens37
ONBOOT=yes
IPADDR=192.168.218.128
#GATEWAY=192.168.80.2
NETMASK=255.255.255.0
DNS1=119.29.29.29
1
2
3
[root@kun03 network-scripts]# ifdown ens37 && ifup ens37
成功断开设备 'ens37'。
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/3)

可以ping通

kun05和kun06上设置网关为192.168.80.102

1
2
3
[root@kun05 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33

GATEWAY=192.168.80.102
1
2
3
4
5
6
7
[root@kun05 ~]# systemctl restart network

[root@kun05 ~]# route -n   ##查看网关
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.80.102  0.0.0.0         UG    100    0        0 ens33
192.168.80.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33

三台机器上关闭firewalld

1
2
3
4
5
6
[root@kun05 ~]# systemctl stop firewalld
[root@kun05 ~]# systemctl disable firewalld
[root@kun05 ~]# setenforce 0
[root@kun05 ~]# vim /etc/selinux/config

SELINUX=disbaled

各自下载iptables 并清空规则和保存

1
2
3
4
[root@kun03 network-scripts]# yum install -y iptables-services
[root@kun03 network-scripts]# systemctl start iptables    ##启动iptables
[root@kun03 network-scripts]# iptables -F   ##清空规则
[root@kun03 network-scripts]# service iptables save   ##保存空规则

步骤

1.在分发器上安装ipvsadm工具

在kun03上

1
[root@kun03 ~]# yum install -y ipvsadm

ipvsadm工具实现lvs功能

2.在分发器上编辑脚本

1
[root@kun03 ~]# vim /usr/local/sbin/lvs_nat.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#! /bin/bash
# director 服务器上开启路由转发功能
echo 1 > /proc/sys/net/ipv4/ip_forward
# 关闭icmp的重定向
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects
# 注意区分网卡名字,阿铭的两个网卡分别为ens33和ens37
echo 0 > /proc/sys/net/ipv4/conf/ens33/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/ens37/send_redirects
# director 设置nat防火墙
iptables -t nat -F
iptables -t nat -X
iptables -t nat -A POSTROUTING -s 192.168.80.0/24  -j MASQUERADE
# director设置ipvsadm
IPVSADM='/usr/sbin/ipvsadm'
$IPVSADM -C
$IPVSADM -A -t 192.168.218.128:80 -s rr -p 3
$IPVSADM -a -t 192.168.218.128:80 -r 192.168.80.104:80 -m -w 1
$IPVSADM -a -t 192.168.218.128:80 -r 192.168.80.105:80 -m -w 1

iptables -t nat -A POSTROUTING -s 192.168.80.0/24 -j MASQUERADE让同网段的网实现上网
ipvsadm -C清除lvs规则
-A 增加规则
-t 指定分发器外网IP
-s 指定算法
-p 指定rs上的超时时间
-m 指NAT模式
-w 指定权重

3.执行脚本

1
[root@kun03 ~]# sh /usr/local/sbin/lvs_nat.sh

测试

两台rs上安装Nginx
之前在kun05机器上yum了安装过Nginx 现在在kun06上安装

1
2
[root@kun06 ~]# yum install -y epel-release
[root@kun06 ~]# yum install -y nginx

设置两台rs的主页,做一个区分

1
2
3
[root@kun05 ~]# vim /usr/share/nginx/html/index.html

kun05
1
2
3
4
[root@kun06 ~]# > /usr/share/nginx/html/index.html
[root@kun06 ~]# vim !$

kun06
1
[root@kun06 ~]# service nginx start  ##启动Nginx

在分发器上使用curl命令访问公网ip

1
2
3
4
5
6
7
8
[root@kun03 ~]# curl 192.168.218.128
kun06
[root@kun03 ~]# curl 192.168.218.128
kun05
[root@kun03 ~]# curl 192.168.218.128
kun06
[root@kun03 ~]# curl 192.168.218.128
kun05

使用浏览器访问

ipvsadm -ln 可以查看ipvsadm分发数据的情况

[root@kun03 ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.218.128:80 rr
  -> 192.168.80.104:80            Masq    1      0          6         
  -> 192.168.80.105:80            Masq    1      1          4

扩展:

VRRP协议

https://blog.csdn.net/u013920085/article/details/21184143

keepalived邮件告警

http://blog.51cto.com/6764097/1954158

https://blog.csdn.net/HzSunshine/article/details/62052398

LVS 三种模式图解

http://blog.51cto.com/jiekeyang/1839583

LVS算法 DH

http://blog.51cto.com/lovvvve/1141713

arp_ignore和arp_announce

https://www.cnblogs.com/lgfeng/archive/2012/10/16/2726308.html

猜你喜欢

转载自blog.csdn.net/weixin_37817498/article/details/83118122