部署LVS+keepalived做网站的高可用,高负载。

  • LVS+keepalived

    • keepalived背景

      • 针对LVS的辅助工具,主要提供故障切换与健康检查。

      • 工作场景:作为调度器的双机热备,以及节点服务器的健康检查以及故障切换(删除条目)。

      • 借鉴了VRRP协议来实现高可用。

    • keepalived部署

      • 拓扑

        • 两台调度器之间实现高可用并实现对web服务器的健康状态检查,web服务器之间做一个负载均衡。

      • 两台调度器的配置

        • 准备前奏

          • 添加或关闭防火墙,内核安全机制也要关闭

          • 关闭NetworkManager

            • 该服务如果不关闭,漂移IP无法进行漂移
        • 安装keepalived并进行配置

          • 安装后先设置为开机自启

            • systemctl disable keepalived
          • 拷贝配置文件:在/etc/keepalived/keepalived

          • 配置文件详解

            • 全局配置部分

              • global_defs {

              • notification_email {

                • 该模块表示当keep发生切换操作后需要发送Email通知,以及发送给哪些邮件地址
              • acassen@firewall.loc

                • 具体的邮件地址,每行一个
              • failover@firewall.loc

              • sysadmin@firewall.loc

              • }

              • notification_email_from Alexandre.Cassen@firewall.loc

                • 该行定义了发送警报邮件的发送者是谁(发件人)
              • smtp_server 192.168.200.1

                • 表示可以用那台服务器的邮件服务发送邮件,通常可以使用127.0.0.1也就是本机提供该服务。
              • smtp_connect_timeout 30

                • 连接stmp服务的超时时间
              • router_id LVS_DEVEL

                • 机器标识:区分不同服务器的标识,对实际的服务的运行不产生影响,邮件服务快速定位
              • vrrp_skip_check_adv_addr

                • 不对master的宣告地址做检查,宽松的运行keepalived
              • vrrp_strict

                • 启用该项是除非恰当设置网络,否则不允许单播通信。
              • vrrp_garp_interval 0

                • 定期宣告IP地址所有权,当设置为0时仅在切换后做宣告
              • vrrp_gna_interval 0

              • }

            • vrrp实例部分

              • vrrp_instance VI_1 {

                • 实例名称,一个服务器可以有多个实例(应用场景)后面会写。
              • state MASTER

                • 确定初始状态的角色

                  • 在vrrp的选举循环中的init位置
              • interface eth0

                • 承载VIP的网卡,以自己为准
              • virtual_router_id 51

                • 每一个实例都必须用相同的VRID才能加入到同一个热备组。
              • priority 100

                • 因为VRRP采用优先级做选举master依据范围(0~255)0保留,255(IP地址拥有者)
              • advert_int 1

                • master的宣告报文间隔,以秒为单位(告诉其他backup)master还活着。
              • authentication {

                • 当其他的实例想要加入该热备组需要进行密码认证。
              • auth_type PASS

              • auth_pass 1111

              • }

              • virtual_ipaddress {

                • 虚拟VIP地址:每一个虚拟vip就代表着一个群集
              • 192.168.200.16

              • 192.168.200.17

              • 192.168.200.18

              • }

              • }

            • 虚拟服务器部分

              • virtual_server 192.168.200.100 443 {

                • 与实例中的VIP对应,是一个群集的开始
              • delay_loop 6

                • 健康检查的时间间隔
              • lb_algo rr

                • 调度算法

                  • rr|wrr|lc|wlc|lblc|sh|dh
              • lb_kind NAT

                • 工作模式

                  • DR TUN NET
              • persistence_timeout 50

                • 持久超时(会话保持,在50秒内来自同一个IP的请求会被转发到同一个服务器上)
              • protocol TCP

                • 健康检查用的协议
              • real_server 192.168.201.100 443 {

                • 后端真实服务器的IP地址以及端口
              • weight 1

                • 该真实服务器的权重
              • SSL_GET {

                • 健康检查的方法


                  5:SMTP_CHECK:用来检测邮件服务的smtp的

              • url {

              • path /

              • digest ff20ad2481f97b1754ef3e12ecd3a9cc

              • }

              • url {

              • path /mrtg/

              • digest 9b3a0c85a887a256d6939da88aabd8cd

              • }

              • connect_port 80

                • 健康检查的端口
              • connect_timeout 3

                • 健康检查的连接超时时间
              • nb_get_retry 3

                • 超时后重试的次数
              • delay_before_retry 3

                • 重试次数之间的间隔
              • }

              • }

              • }

          • 配置文件中需要改动的地方

            • #vrrp_strict

              • 将不允许单播注释
            • 根据需要可以设为不同的标识

              • router_id LVS_01
            • state MASTER

              • 根据拓扑需求设置为不同的角色
            • interface ens33

              • 根据实际需要选择合适的网卡承载VIP
            • virtual_router_id 51

              • 确保同一个热备组中的实例的id一致
            • priority 100

              • 优先级越高越优先
            • virtual_ipaddress { 192.168.10.172 }

              • 选择虚拟ip
            • virtual_server 192.168.10.172 80 { delay_loop 6 lb_algo rr lb_kind DR nat_mask 255.255.255.0 ! persistence_timeout 50 protocol TCP real_server 192.168.10.103 80 { weight 1 TCP_CHECK { connect_port 80 connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } }

              • 修改成合适的IP地址,选择健康检查方式,将会话保持功能关闭方便后期测试。
          • 在调度器内核中加入相关参数

            • net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.default.send_redirects = 0 net.ipv4.conf.ens33.send_redirects = 0

              • 关闭内核的重定向功能,
          • 最后开启keepalived

          • 从服务器也要进行相关设置

          • web服务器处理

            • 两台服务器分别用lo:0去承载VIP,并且在内核中添加相关参数。

              • net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.all.arp_announce = 2 net.ipv4.conf.default.arp_ignore = 1 net.ipv4.conf.default.arp_announce = 2 net.ipv4.conf.lo.arp_ignore = 1 net.ipv4.conf.lo.arp_announce = 2
            • 最后在web网页文档目录下设置相关参数进行测试,分别down掉调度器与web服务器看是否能正常访问。

复制全部到xmind即可形成条理性笔记,图片复制不过去请单独粘贴!

相关推荐
2401_878961722 天前
lvs介绍 模式
服务器·数据库·lvs
2401_850410832 天前
LVS简介
运维·nginx·tomcat·lvs
弗罗里达老大爷2 天前
负载均衡-lvs
运维·负载均衡·lvs
qq_448941085 天前
1、lvs介绍和模式
负载均衡·lvs
a1denzzz5 天前
lvs介绍与应用
lvs
yangfeipancc6 天前
LVS介绍
lvs
2401_871213306 天前
lvs负载均衡
运维·负载均衡·lvs
TianyaOAO6 天前
lvs介绍和DR模式
服务器·网络·lvs
学Linux的语莫9 天前
负载均衡,高可用,监控服务搭建总结
linux·服务器·分布式·ceph·lvs
马立杰11 天前
LVS能否实现两台服务器的负载均衡
linux·lvs