阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

基于Keepalived高可用集群网站架构实现的多种方法

513次阅读
没有评论

共计 14812 个字符,预计需要花费 38 分钟才能阅读完成。

实现基于 Keepalived 高可用集群网站架构

基于 Keepalived 高可用集群网站架构实现的多种方法
随着业务的发展,网站的访问量越来越大,网站访问量已经从原来的 1000QPS,变为 3000QPS,目前业务已经通过集群 LVS 架构可做到随时拓展,后端节点已经通过集群技术保障了可用性,但对于前端负载均衡器来说,是个比较大的安全隐患,因为当前端负载均衡器出现故障时,整个集群就处于瘫痪状态,因此,负载均衡器的可用性也显得至关重要,那么怎么来解决负载均衡器的可用性问题呢?

实验一:实现 keepalived 主从方式高可用基于 LVS-DR 模式的应用实战:

 

实验原理

主从:一主一从,主的在工作,从的在休息;主的宕机了,VIP 漂移到从上,由从提供服务

 

1、环境准备:

两台 CentOS 系统做 DR、一主一从,两台实现过基于 LNMP 的电子商务网站

机器名称 IP 配置 服务角色 备注
lvs-server-master VIP:172.17.100.100 DIP:172.17.66.66 负载均衡器 主服务器 开启路由功能 配置 keepalived
lvs-server-backup VIP:172.17.100.100 DIP:172.17.251.66 后端服务器 从服务器 开启路由功能 配置 keepalived
rs01 RIP:172.17.77.77 后端服务器 网关指向 DIP(桥接)
rs02 RIP:172.17.251.111 后端服务器 网关指向 DIP(桥接)

 

2、配置 lvs-server-master(主服务器)

修改 keepalived 主 (lvs-server-master) 配置文件实现 virtual_instance 实例

2.1 配置文件中修改三段

配置文件为 /etc/keepalived/keepalived.conf
全局段,故障通知邮件配置

global_defs {
   notification_email {root@localhost}
   notification_email_from root@keer.com
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id keepalived_lvs
}

② 配置 虚拟路由器的实例段,VI_1 是自定义的实例名称,可以有多个实例段

vrrp_instance VI_1 {
    state MASTER
    interface eth1
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass keer
    }
    virtual_ipaddress {172.17.100.100
    }
}

③ 设置一个virtual server 段

virtual_server 172.17.100.100 80 {delay_loop 6
    lb_algo wrr
    lb_kind DR
    nat_mask 255.255.255.255
    persistence_timeout 600
    protocol TCP

④ 配置real server 段

    real_server 172.17.1.7 80 {weight 1
        HTTP_GET {url {path /
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
    real_server 172.17.22.22 80 {weight 2
        HTTP_GET {url {path /
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

一定要注意 大小写

2.2 开启 keepalived 服务

  service keepalived start

能看到网卡别名 和 负载均衡策略已经设置好了
基于 Keepalived 高可用集群网站架构实现的多种方法
我们来使用 ipvsadm -Ln 来查看一下:
 基于 Keepalived 高可用集群网站架构实现的多种方法

2.3 后续

因为是主从方式,所以从上的配置和主只有一点差别;所以可以把这个配置文件拷贝到从服务器上在进行修改即可:

    scp /etc/keepalived/keepalived.conf @172.17.11.11:

 

3、配置 lvs-server-backup(从服务器)

3.1 修改配置文件

因为这个配置文件是从主服务器上拷贝过来的,所以只需要修改②实例段,其他都不要变,保证一模一样

vrrp_instance VI_1 {state BACKUP
    interface eth1
    virtual_router_id 51
    priority 99
    advert_int 1
    authentication {auth_type PASS
        auth_pass keer
    }

3.2 开启 keepalived 服务

service keepalived start

负载均衡策略已经设置好了,注意:主 director 没有宕机,从上就不会有 VIP
可以用 ipvsadm -Ln 来查看,可能过一会才会显示
基于 Keepalived 高可用集群网站架构实现的多种方法

 

4、配置 real server

4.1 开启事前准备好的 web 服务

    systemctl start nginx
    systemctl start mariadb
    systemctl start php-fpm

4.2 因为是 DR 模式,需在 rs 上进行设置

4.2.1 配置路由

配置 VIP 到本地回环网卡 lo 上,并只广播自己

    ifconfig lo:0 172.17.100.100 broadcast 172.17.100.100 netmask 255.255.255.255 up

配置本地回环网卡路由

    route add -host 172.17.100.100 lo:0
4.2.2 使 RS“闭嘴”
    echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
    echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce

忽略 ARP 广播

    echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
    echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce

注意:关闭 arp 应答
1:仅在请求的目标 IP 配置在本地主机的接收到请求报文的接口上时,才给予响应
2:必须避免将接口信息向非本网络进行通告

4.2.3 想永久生效,可以写到配置文件中
vim /etc/sysctl.conf
    net.ipv4.conf.lo.arp_ignore = 1
    net.ipv4.conf.lo.arp_announce = 2
    net.ipv4.conf.all.arp_ignore = 1
    net.ipv4.conf.all.arp_announce = 2

 

5、测试

5.1 lvs 负载均衡作用是否开启

客户端访问 http://172.17.100.100/
基于 Keepalived 高可用集群网站架构实现的多种方法

也可以详细测试
① 在 rs1 上设置一个测试一面
vim /data/web/test.html
real server 1

② 在 rs2 上设置一个测试一面
vim /data/web/test.html
real server 2

③ 网页访问 http://172.17.100.100/test.html 发现有 real server 1 也有 real server 2
基于 Keepalived 高可用集群网站架构实现的多种方法

5.2 测试 keepalived 的主从方式

① 使 keepalive 的主宕机

    service keepalived stop

会发现服务能照常访问,但是 VIP 漂移到了从上
从多了网卡别名,且地址是 VIP

[root@server-backup ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:22:8d:75 brd ff:ff:ff:ff:ff:ff
    inet 172.17.251.66/16 brd 172.17.255.255 scope global eth0
    inet 172.17.100.100/32 scope global eth1
    inet6 fe80::20c:29ff:fe22:8d75/64 scope link 
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:22:8d:7f brd ff:ff:ff:ff:ff:ff
    inet 192.168.37.128/24 brd 192.168.37.255 scope global eth1
    inet6 fe80::20c:29ff:fe22:8d7f/64 scope link 
       valid_lft forever preferred_lft forever
4: pan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN 
    link/ether ba:21:04:5b:66:60 brd ff:ff:ff:ff:ff:ff

② 使 keepalive 的主重新开启服务,因为主的优先级高,所以 VIP 又重新漂移到了主上
基于 Keepalived 高可用集群网站架构实现的多种方法

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2017-11/148571p2.htm

实验二:实现 keepalived 双主方式高可用基于 LVS-DR 模式的应用实战:

 

实验原理

互为主从:主从都在工作;其中一个宕机了,VIP 漂移到另一个上,提供服务

 

1、实验环境,基本同上

机器名称 IP 配置 服务角色 备注
lvs-server-1 VIP:172.17.120.120 DIP:172.17.66.66 负载均衡器 主服务器 开启路由功能 配置 keepalived
lvs-server2 VIP:172.17.120.121 DIP:172.17.251.66 后端服务器 从服务器 开启路由功能 配置 keepalived
rs01 RIP:172.17.77.77 后端服务器 网关指向 DIP(桥接)
rs02 RIP:172.17.252.111 后端服务器 网关指向 DIP(桥接)

 

2、配置 lvs-server-master1(第一个主服务器)

配置基本同上,就是加了一个实例段
修改 keepalived 主(lvs-server-master) 配置文件实现 virtual_instance 实例

2.1 主的设置 VI_1

vim /etc/keepalived/keepalived.conf  
vrrp_instance VI_1 {
    state MASTER
    interface eth1
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass keer
    }
    virtual_ipaddress {172.17.120.120
    }
}

virtual_server 172.17.120.120 80 {delay_loop 6
    lb_algo wrr
    lb_kind DR
    nat_mask 255.255.255.255
    persistence_timeout 600
    protocol TCP

    real_server 172.17.1.7 80 {weight 1
        HTTP_GET {url {path /}
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
    real_server 172.17.22.22 80 {weight 1
        HTTP_GET {url {path /}
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

2.2 从的设置 VI_2

vrrp_instance VI_2 {
    state BACKUP
    interface eth1
    virtual_router_id 52
    priority 98
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass along
    }
    virtual_ipaddress {172.17.120.121
    }
}

virtual_server 172.17.120.121 443 {delay_loop 6
    lb_algo wrr
    lb_kind DR
    nat_mask 255.255.255.255
    persistence_timeout 600
    protocol TCP

    real_server 172.17.77.77 443 {weight 1
        HTTP_GET {url {path /}
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
    real_server 172.17.252.111 443 {weight 2
        HTTP_GET {url {path /}
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

2.3 开启 keepalived 服务

    service keepalived start

能看到网卡别名 和 负载均衡策略已经设置好了

2.4 后续

因为是主从方式,所以从上的配置和主只有一点差别;所以可以把这个配置文件拷过去

    scp /etc/keepalived/keepalived.conf @172.17.11.11:

 

3、配置 lvs-server-master2(第二个主服务器)

在 lvs-server2 上,基本同 1,就是把实例的主从调换一下

3.1 从的设置 VI_1

vim /etc/keepalived/keepalived.conf   
vrrp_instance VI_1 {
    state BACKUP
    interface eth1
    virtual_router_id 51
    priority 98
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass keer
    }
    virtual_ipaddress {172.17.120.120
    }
}

3.2 主的设置 VI_2

vrrp_instance VI_2 {
    state MASTER
    interface eth1
    virtual_router_id 52
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass keer
    }
    virtual_ipaddress {172.17.120.121
    }
}

3.3 开启 keepalived 服务

    service keepalived start

能看到网卡别名 和 负载均衡策略已经设置好了,显示结果会等段时间再显示

 

4、配置 real server

4.1 开启事前准备好的 web 服务

        systemctl start nginx
        systemctl start mariadb
        systemctl start php-fpm

4.2 因为是 DR 模式,需在 rs 上进行设置

4.2.1 配置路由

配置 VIP 到本地回环网卡 lo 上,并只广播自己

    ifconfig lo:0 172.17.100.100 broadcast 172.17.100.100 netmask 255.255.255.255 up

配置本地回环网卡路由

    route add -host 172.17.100.100 lo:0
4.2.2 使 RS“闭嘴”
    echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
    echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce

忽略 ARP 广播

    echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
    echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce

注意:关闭 arp 应答
1:仅在请求的目标 IP 配置在本地主机的接收到请求报文的接口上时,才给予响应
2:必须避免将接口信息向非本网络进行通告

4.2.3 想永久生效,可以写到配置文件中
vim /etc/sysctl.conf
    net.ipv4.conf.lo.arp_ignore = 1
    net.ipv4.conf.lo.arp_announce = 2
    net.ipv4.conf.all.arp_ignore = 1
    net.ipv4.conf.all.arp_announce = 2

 

5、测试

5.1 lvs 负载均衡作用是否开启

客户端访问 http://172.17.100.100/ 公网 172.17.100.100 只能访问 80
https://172.17.100.101/ 公网 172.17.100.101 只能访问 443
基于 Keepalived 高可用集群网站架构实现的多种方法
 基于 Keepalived 高可用集群网站架构实现的多种方法
基于 Keepalived 高可用集群网站架构实现的多种方法
 基于 Keepalived 高可用集群网站架构实现的多种方法

也可以详细测试:
① 在 rs1 上设置一个测试一面

    vim /data/web/test.html
    real server 1

② 在 rs2 上设置一个测试一面

    vim /data/web/test.html
    real server 2

③ 网页访问 http://172.17.100.100/test.html 或 https://172.17.100.101/test.html 发现有 real server 1 也有 real server 2
基于 Keepalived 高可用集群网站架构实现的多种方法

5.2 测试 keepalived 的双主方式

使 keepalive 的任意一个宕机

    service keepalived stop

基于 Keepalived 高可用集群网站架构实现的多种方法

会发现服务能照常访问,另一个机器 80、443 都能访问,且宕机的 VIP 漂移到了另一个服务器上
基于 Keepalived 高可用集群网站架构实现的多种方法

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2017-11/148571p3.htm

实现基于 Keepalived 高可用集群网站架构

基于 Keepalived 高可用集群网站架构实现的多种方法
随着业务的发展,网站的访问量越来越大,网站访问量已经从原来的 1000QPS,变为 3000QPS,目前业务已经通过集群 LVS 架构可做到随时拓展,后端节点已经通过集群技术保障了可用性,但对于前端负载均衡器来说,是个比较大的安全隐患,因为当前端负载均衡器出现故障时,整个集群就处于瘫痪状态,因此,负载均衡器的可用性也显得至关重要,那么怎么来解决负载均衡器的可用性问题呢?

实验一:实现 keepalived 主从方式高可用基于 LVS-DR 模式的应用实战:

 

实验原理

主从:一主一从,主的在工作,从的在休息;主的宕机了,VIP 漂移到从上,由从提供服务

 

1、环境准备:

两台 CentOS 系统做 DR、一主一从,两台实现过基于 LNMP 的电子商务网站

机器名称 IP 配置 服务角色 备注
lvs-server-master VIP:172.17.100.100 DIP:172.17.66.66 负载均衡器 主服务器 开启路由功能 配置 keepalived
lvs-server-backup VIP:172.17.100.100 DIP:172.17.251.66 后端服务器 从服务器 开启路由功能 配置 keepalived
rs01 RIP:172.17.77.77 后端服务器 网关指向 DIP(桥接)
rs02 RIP:172.17.251.111 后端服务器 网关指向 DIP(桥接)

 

2、配置 lvs-server-master(主服务器)

修改 keepalived 主 (lvs-server-master) 配置文件实现 virtual_instance 实例

2.1 配置文件中修改三段

配置文件为 /etc/keepalived/keepalived.conf
全局段,故障通知邮件配置

global_defs {
   notification_email {root@localhost}
   notification_email_from root@keer.com
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id keepalived_lvs
}

② 配置 虚拟路由器的实例段,VI_1 是自定义的实例名称,可以有多个实例段

vrrp_instance VI_1 {
    state MASTER
    interface eth1
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass keer
    }
    virtual_ipaddress {172.17.100.100
    }
}

③ 设置一个virtual server 段

virtual_server 172.17.100.100 80 {delay_loop 6
    lb_algo wrr
    lb_kind DR
    nat_mask 255.255.255.255
    persistence_timeout 600
    protocol TCP

④ 配置real server 段

    real_server 172.17.1.7 80 {weight 1
        HTTP_GET {url {path /
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
    real_server 172.17.22.22 80 {weight 2
        HTTP_GET {url {path /
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

一定要注意 大小写

2.2 开启 keepalived 服务

  service keepalived start

能看到网卡别名 和 负载均衡策略已经设置好了
基于 Keepalived 高可用集群网站架构实现的多种方法
我们来使用 ipvsadm -Ln 来查看一下:
 基于 Keepalived 高可用集群网站架构实现的多种方法

2.3 后续

因为是主从方式,所以从上的配置和主只有一点差别;所以可以把这个配置文件拷贝到从服务器上在进行修改即可:

    scp /etc/keepalived/keepalived.conf @172.17.11.11:

 

3、配置 lvs-server-backup(从服务器)

3.1 修改配置文件

因为这个配置文件是从主服务器上拷贝过来的,所以只需要修改②实例段,其他都不要变,保证一模一样

vrrp_instance VI_1 {state BACKUP
    interface eth1
    virtual_router_id 51
    priority 99
    advert_int 1
    authentication {auth_type PASS
        auth_pass keer
    }

3.2 开启 keepalived 服务

service keepalived start

负载均衡策略已经设置好了,注意:主 director 没有宕机,从上就不会有 VIP
可以用 ipvsadm -Ln 来查看,可能过一会才会显示
基于 Keepalived 高可用集群网站架构实现的多种方法

 

4、配置 real server

4.1 开启事前准备好的 web 服务

    systemctl start nginx
    systemctl start mariadb
    systemctl start php-fpm

4.2 因为是 DR 模式,需在 rs 上进行设置

4.2.1 配置路由

配置 VIP 到本地回环网卡 lo 上,并只广播自己

    ifconfig lo:0 172.17.100.100 broadcast 172.17.100.100 netmask 255.255.255.255 up

配置本地回环网卡路由

    route add -host 172.17.100.100 lo:0
4.2.2 使 RS“闭嘴”
    echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
    echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce

忽略 ARP 广播

    echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
    echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce

注意:关闭 arp 应答
1:仅在请求的目标 IP 配置在本地主机的接收到请求报文的接口上时,才给予响应
2:必须避免将接口信息向非本网络进行通告

4.2.3 想永久生效,可以写到配置文件中
vim /etc/sysctl.conf
    net.ipv4.conf.lo.arp_ignore = 1
    net.ipv4.conf.lo.arp_announce = 2
    net.ipv4.conf.all.arp_ignore = 1
    net.ipv4.conf.all.arp_announce = 2

 

5、测试

5.1 lvs 负载均衡作用是否开启

客户端访问 http://172.17.100.100/
基于 Keepalived 高可用集群网站架构实现的多种方法

也可以详细测试
① 在 rs1 上设置一个测试一面
vim /data/web/test.html
real server 1

② 在 rs2 上设置一个测试一面
vim /data/web/test.html
real server 2

③ 网页访问 http://172.17.100.100/test.html 发现有 real server 1 也有 real server 2
基于 Keepalived 高可用集群网站架构实现的多种方法

5.2 测试 keepalived 的主从方式

① 使 keepalive 的主宕机

    service keepalived stop

会发现服务能照常访问,但是 VIP 漂移到了从上
从多了网卡别名,且地址是 VIP

[root@server-backup ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:22:8d:75 brd ff:ff:ff:ff:ff:ff
    inet 172.17.251.66/16 brd 172.17.255.255 scope global eth0
    inet 172.17.100.100/32 scope global eth1
    inet6 fe80::20c:29ff:fe22:8d75/64 scope link 
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:22:8d:7f brd ff:ff:ff:ff:ff:ff
    inet 192.168.37.128/24 brd 192.168.37.255 scope global eth1
    inet6 fe80::20c:29ff:fe22:8d7f/64 scope link 
       valid_lft forever preferred_lft forever
4: pan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN 
    link/ether ba:21:04:5b:66:60 brd ff:ff:ff:ff:ff:ff

② 使 keepalive 的主重新开启服务,因为主的优先级高,所以 VIP 又重新漂移到了主上
基于 Keepalived 高可用集群网站架构实现的多种方法

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2017-11/148571p2.htm

 

实验三:实现 keepalived 主从方式高可用基于 LVS-NAT 模式的应用实战:

 

实验原理

主从:一主一从,主的在工作,从的在休息;主的宕机了,VIP 漂移到从上,由从提供服务

 

1、环境准备

机器名称 IP 配置 服务角色 备注
lvs-server-1 VIP:172.17.120.120 DIP:192.168.37.120 负载均衡器 主服务器 开启路由功能 配置 keepalived
lvs-server-2 VIP:172.17.120.120 DIP:192.168.37.120 后端服务器 从服务器 开启路由功能 配置 keepalived
rs01 RIP:192.168.37.222 后端服务器 网关指向 DIP
rs02 RIP:192.168.37.111 后端服务器 网关指向 DIP

注意:要确保 rs 和 DIP 在一个网段,且不和 VIP 在一个网段

 

2、配置 lvs-server-master(主服务器)

2.1 配置文件中修改三段

配置文件为 /etc/keepalived/keepalived.conf
① 全局段,故障通知邮件配置

global_defs {
   notification_email {root@localhost}
   notification_email_from root@keer.com
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id keepalived_lvs
}

② 配置虚拟路由器的实例段,VI_1 是自定义的实例名称,可以有多个实例段

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 190
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass keer
    }
    virtual_ipaddress {172.17.120.120
        192168.37.120
    }
}

③ 设置一个 virtual server 段

virtual_server 172.17.120.120 80 {delay_loop 6
    lb_algo wrr
    lb_kind NAT
    nat_mask 255.255.255.255
    persistence_timeout 120
    protocol TCP

④ 配置 real server 段

    real_server 192.168.37.222 80 {weight 1
        HTTP_GET {url {path /
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }

    real_server 192.168.37.111 80 {weight 2
        HTTP_GET {url {path /
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

2.2 因为是 NAT 模式,所以需开启路由转发功能

vim /etc/sysctl.conf
    net.ipv4.ip_forward = 1

接着使用sysctl -p 读一下,使参数生效

2.3 开启 keepalived 服务

    service keepalived start

能看到网卡别名 和 负载均衡策略已经设置好了
基于 Keepalived 高可用集群网站架构实现的多种方法
 基于 Keepalived 高可用集群网站架构实现的多种方法

2.4 后续

因为是主从方式,所以从上的配置和主只有一点差别;所以可以把这个配置文件拷过去

scp /etc/keepalived/keepalived.conf @172.17.251.66:

 

3、配置 lvs-server-backup(从服务器)

3.1 修改配置文件

因为这个配置文件是从主服务器上拷贝过来的,所以只需要修改②实例段,其他都不要变,保证一模一样:

vrrp_instance VI_1 {
    state BACKUP
    interface eth1
    virtual_router_id 190
    priority 98
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass keer
    }
    virtual_ipaddress {172.17.120.120
        192.168.37.120
    }
}

3.2 因为是 NAT 模式,所以需开启路由转发功能

vim /etc/sysctl.conf
    net.ipv4.ip_forward = 1

接着使用 sysctl -p 读一下,使参数生效

3.3 开启 keepalived 服务

    service keepalived start

负载均衡策略已经设置好了,注意:主 director 没有宕机,从上就不会有 VIP
基于 Keepalived 高可用集群网站架构实现的多种方法

 

4、配置 real server

4.1 开启事前准备好的 web 服务

systemctl start nginx
systemctl start mariadb
systemctl start php-fpm

4.2 因为是 NAT 模式,需在 rs 上设置

只需把网关指向 DIP

route add default gw 192.168.37.123

此时,我们可以查看一下网关:

[root@rs01 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.37.123  0.0.0.0         UG    0      0        0 ens34
0.0.0.0         172.17.0.1      0.0.0.0         UG    100    0        0 ens33
172.17.0.0      0.0.0.0         255.255.0.0     U     100    0        0 ens33
192.168.37.0    0.0.0.0         255.255.255.0   U     100    0        0 ens34
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0

我们发现,还有一个 172 的网关在生效,所以我们把它 down 掉:

[root@rs01 ~]# ifconfig ens33 down

一定要注意这一点,不然多个网关会让数据不知道从哪走~

 

5、测试

5.1 lvs 负载均衡作用是否开启

客户端访问 http://172.17.120.120/
基于 Keepalived 高可用集群网站架构实现的多种方法

也可以进行详细测试:
① 在 rs1 上设置一个测试页面

vim /data/web/test.html
    real server 1

② 在 rs2 上设置一个测试页面

vim /data/web/test.html
    real server 2

③ 网页访问 http://172.17.120.120/test.html 发现有 real server 1 也有 real server 2
基于 Keepalived 高可用集群网站架构实现的多种方法

5.2 测试 keepalived 的主从方式

① 使 keepalive 的主宕机

    service keepalived stop

会发现服务能照常访问,但是 VIP 漂移到了从上
从多了网卡别名,且地址是 VIP
基于 Keepalived 高可用集群网站架构实现的多种方法

③ 使 keepalive 的主重新开启服务,因为主的优先级高,所以 VIP 又重新漂移到了主上

    service keepalived start

基于 Keepalived 高可用集群网站架构实现的多种方法


以上~ 如果有不足之处还请大家多多指教喏٩(๑>◡<๑)۶

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-11/148571.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计14812字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19350
评论数
4
阅读量
7968712
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
飞牛NAS玩转Frpc并且配置,随时随地直连你的私有云

飞牛NAS玩转Frpc并且配置,随时随地直连你的私有云

飞牛 NAS 玩转 Frpc 并且配置,随时随地直连你的私有云 大家好,我是星哥,最近在玩飞牛 NAS。 在数...
你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你 为什么要用宝塔跑分? 宝塔跑分其实就是对 CPU、内存、磁盘、IO 做...
12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换...
星哥带你玩飞牛NAS-8:有了NAS你可以干什么?软件汇总篇

星哥带你玩飞牛NAS-8:有了NAS你可以干什么?软件汇总篇

星哥带你玩飞牛 NAS-8:有了 NAS 你可以干什么?软件汇总篇 前言 哈喽各位玩友!我是是星哥,不少朋友私...
支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare 也瘫了连监控都挂,根因藏在哪? 最近两天的互联网堪称“故障...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞...
星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛 NAS 硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话? 前言 在选择 NAS 用预...
让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级 大家好,我是星哥,之前写了一篇文章 自己手撸一...
小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比 星哥玩云,带你从小白到上云高手。今天咱们就来聊聊——什...
4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

  4 盘位、4K 输出、J3455、遥控,NAS 硬件入门性价比之王 开篇 在 NAS 市场中,威...