负载均衡之keepalived「终于解决」

负载均衡之keepalived「终于解决」DR实验存在的隐患 DR可能会挂,单点故障 RS可能会挂 解决方案: 解决单点故障 主备:准备多个DR备用机,做好配置,主机挂掉备用机顶上 主主 解决RS会挂的问题 给RS发送请求,如果收到200 o

负载均衡之keepalived

DR实验存在的隐患

  1. DR可能会挂,单点故障
  2. RS可能会挂

解决方案:

  • 解决单点故障

    • 主备:准备多个DR备用机,做好配置,主机挂掉备用机顶上
    • 主主
  • 解决RS会挂的问题

    给RS发送请求,如果收到200 ok回复则说明RS正常

keepalived

keepalived就是实现了上述解决方法的工具,检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web服务器从系统中剔除,当web服务器工作正常后Keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web服务器。

主要用途:

  • 高可用:监控主机,主动替换备用机
  • RS的健康检测

只需要给主机DR和备用机装keepalived监控DR,并且向RS发送请求检测RS。

keepalived的使用:

  1. 安装

    yum install keepalived ipvsadm -y
    
  2. 备份和修改keepalived配置文件

    DR配置文件:

    cp keepalive.conf keepalived.conf.bak
    cat /etc/keepalived.conf
    global_defs {
    
      notification_email {  #设置报警邮件地址,可多行每行一个。
      xxxxxxx@qq.com
       }
    
      notification_email_from keepalived@localhost  #设置邮件的发送地址
    
      smtp_server 127.0.0.1                         #设置SMTP server地址
    
      smtp_connect_timeout 30                       #设置SMTP 超时时间
    
      router_id LVS_DEVEL                           #运行keepalived机器的一个标识
    
    }
    
    vrrp_instance VI_1 {                      #定义一个vrrp实例,不同实例的实例编号不一样。
    
       state MASTER        #定义在keepalived的角色MASTER表示为主服务器,BACKUP为备服务器。
    
       interface eth0      #指定HA检测的网络接口
    
       virtual_router_id 50     #虚拟路由标示,同一个实例里的路由标示相同,且唯一。MASTER和BACKUP的路由标识一样,且唯一。
    
       priority 100        #定义此服务器在此虚拟路由器中的优先级,优先级大权限高
    
       advert_int 1        #检测时间间隔
    
       authentication {    #设置验证类型和密码,主从的密码必须相同,要不两者不通讯。
    
           auth_type PASS
    
           auth_pass 1111
    
       }
    
       virtual_ipaddress {     #设置虚拟IP地址,可以设置多个虚拟IP地址。
    
           192.168.233.100/24 dev ens33 label  ens33:3
    
       }
    
    }
    //配置DR主机lvs,代替使用ipvsadm配置lvs
    virtual_server 192.168.233.100 80 {
        delay_loop 6  
        lb_algo rr
        lb_kind DR //模式,NAT,DR,TUN
        nat_mask 255.255.255.0  //子网掩码
        persistence_timeout 0  //
        protocol TCP
    
        real_server 192.168.150.12 80 {//负载机配置
            weight 1
            HTTP_GET {//对后端机进行健康检查的配置
                url {
                    path /
                    status_code 200
                }
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 3
            }   
    	}
        //配置RS
        real_server 192.168.233.129 80 {
            weight 1
            HTTP_GET {
                url {
                    path /
                    status_code 200
                }
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 3
            }
        }
    

    备用DR配置:

    global_defs {
    
      notification_email {
      xxxxxx@qq.com
       }
    
      notification_email_from keepalive@localhost
    
      smtp_server 127.0.0.1
    
      smtp_connect_timeout 30
    
      router_id LVS_DEVEL
    
    }
    
    vrrp_instance VI_1 {
    
       state BACKUP
    
       interface eth0
    
       virtual_router_id 51
    
       priority 50
    
       advert_int 1
    
       authentication {
    
           auth_type PASS
    
           auth_pass 1111
    
       }
    
       virtual_ipaddress {
    
           192.168.233.100
    
       }
    
    }
    //配置DR主机lvs,代替使用ipvsadm配置lvs
    virtual_server 192.168.233.100 80 {
        delay_loop 6  
        lb_algo rr
        lb_kind DR //模式,NAT,DR,TUN
        nat_mask 255.255.255.0  //子网掩码
        persistence_timeout 0  //
        protocol TCP
    
        real_server 192.168.150.12 80 {//负载机配置
            weight 1
            HTTP_GET {//对后端机进行健康检查的配置
                url {
                    path /
                    status_code 200
                }
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 3
            }   
    	}
        //配置RS
        real_server 192.168.233.129 80 {
            weight 1
            HTTP_GET {
                url {
                    path /
                    status_code 200
                }
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 3
            }
        }
    
  3. 启动keepalived服务

    service keepalived start
    

最后,如果keepalived进程挂掉呢?

使用zookper集群解决这个问题。

原文地址:https://www.cnblogs.com/casheww/archive/2022/05/25/16309916.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/5199.html

(0)
上一篇 2023-05-19
下一篇 2023-05-19

相关推荐

  • Linux环境变量配置方法

    Linux环境变量配置方法环境变量是操作系统用来存储信息的一种机制,它为用户在不同的进程或终端会话中提供了一种在不同的上下文中传递信息的方法。在Linux系统中,环境变量的值是按字符串形式存储的,可以包含数字、字符串以及文件路径等不同类型的值。

    2023-12-15
    107
  • SQLPro Studio for Mac 2020.38 数据库管理器

    SQLPro Studio for Mac 2020.38 数据库管理器SQLPro Studio mac 是Mac上一款简单,强大的macOS 数据库管理器,使用sqlpro studio mac可以创建表格,自定义查询,自动完成和语法突出显示,同时可以执行多个查询,…

    2023-02-22
    154
  • 部署python应用(python 应用)

    部署python应用(python 应用)所需工具:

    2023-11-27
    142
  • Python 中 nsew 的应用

    Python 中 nsew 的应用nsew是Tkinter库中常用的几何布局,代表了north、south、east、west四个方向。在Tkinter中,nsew可以用于控制组件的相对位置关系。nsew的使用可以使得组件相对位置更加灵活,避免了固定位置布局的局限性。

    2024-01-01
    125
  • ods_to_dwd_sql[亲测有效]

    ods_to_dwd_sql[亲测有效]主要是这两个sql start_log(利用get_json_object函数): insert overwrite table “$app”.dwd_start_log PARTITION (dt…

    2023-04-08
    155
  • 如何下载并安装mysql_下载MySQL

    如何下载并安装mysql_下载MySQL下载: 1.下载地址:https://www.mysql.com/downloads/ 2.选择社区版:MySQL Community (GPL) Downloads » 3.MySQL C

    2022-12-20
    145
  • 用Python打造网络爬虫

    用Python打造网络爬虫随着互联网的迅速发展,数据已经成为了现代社会的重要资源之一。但是要想获取这些数据,往往需要使用网络爬虫技术。网络爬虫可以自动化地从互联网上抓取数据,因此在新闻、商业、科研、金融等领域都有着广泛的应用。

    2024-05-31
    74
  • Python集合交集实现

    Python集合交集实现在实际编程中,经常需要对数据进行处理,比如查找两个数据集合的交集。Python中提供了多种方法来实现集合交集操作,但是不同的方法可能会因为数据规模、算法复杂度等因素,导致运行效率不同。因此,本文将从多个方面介绍Python集合交集的实现,旨在帮助读者更好地理解Python语言的特性,提高编程效率。

    2024-09-05
    23

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注