• LVS+keepalived


    面试:nginx连接不上怎么排查 ? 可以通过写一个脚本,用crul -I IP地址
    查看返回信息的状态码,从而排查nginx连接不上的原因。
    介绍
    Keepalived软件起初是专门为LVS负载均衡软件设计的用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能。因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务的高可用解决方案软件。
    Keepalived软件主要是通过VRRP协议实现高可用功能的,VRRP是Virtual Router Redundancy Protocol(虚拟路由器冗余协议)的缩写.VRRP出现的目的就是为了解决静态路由单点故障问题的
    keepalived的三个核心模块
    core核心模块 chech健康监测  vrrp虚拟路由冗余协议
     Keepalived服务的三个重要功能
    支持故障自动切换    
    支持节点健康状态检查
    作为系统网络服务的高可用功能
    ===
    keepalived 的热备方式:VRRP协议(虚拟路由冗余协议)
    漂移地址  (VIP)
    ===============
    以下是keepalived抢占模式
    需要四台机器   master  backup web1 web2
    配置方法:
    主调度器(master)   
    [root@localhost ~]# yum -y install ipvsadm keepalived
    cp /etc/keepalived/keepalived.conf{,.bak}
    [root@localhost ~]# vim  /etc/keepalived/keepalived.conf
    ! Configuration File for keepalived
    global_defs {
       notification_email {
         assassin@111.com    //   收件人邮件地址
       }
       notification_email_from assassin@111.com    // 发件人地址
       smtp_server smtp.111.com     // 发件服务器地址
       smtp_connect_timeout 30      // 连接服务器超时时间
       router_id LVS_MASTER         // 虚拟路由标识  邮件标题
       vrrp_skip_check_adv_addr    
       vrrp_strict
       vrrp_garp_interval 0
       vrrp_gna_interval 0
    }
    vrrp_instance VI_1 {         // 虚拟实例   两台主机的实例名必须相同
        state MASTER         // 在实例中扮演的状态
        interface ens32        // 心跳接口(本身的网卡名)  //探测主机是否存活
        virtual_router_id 51   //  虚拟路由标识
        priority 100            // 优先级 根据优先级可以选择谁具有优先权这个与备的不能一样。备的要比主的低
        advert_int 1           // 心跳检测间隔
        authentication {        // 验证
            auth_type PASS    //  验证类型   PASS和AH  两种
            auth_pass 1111    //  验证密码
        }
        virtual_ipaddress {       //  设置虚拟IP地址
            192.168.200.254     
        }
    }   
     
    virtual_server 192.168.200.254 80 {   //  虚拟服务器   
        delay_loop 6         //  设置健康检查时间
        lb_algo rr             // 设置负载均衡算法
        lb_kind DR           //  设置LVS实现负载均衡的机制,有NET、TUN、DR三种
        protocol TCP           //  指定转发协议类型
        real_server 192.168.200.113 80 {      //节点服务器
            weight 1                     权重
    TCP_CHECK {                      节点的健康状态检测设置部分
                connect_timeout 3           3秒无响应超时
                nb_get_retry 3             重试次数
                delay_before_retry 3         重试间隔
        connect_port 80                测试连接的端口
            }
        }
        real_server 192.168.200.112 80 {  //节点服务器
            weight 1
            TCP_CHECK {
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 3
                connect_port 80
            }
        }
    }
     
    [root@localhost ~]# systemctl restart keepalived
    ip a  //查看会有两个IP
    ipvsadm -Ln 
     ===========
    在浏览器中进行检测192.168.200.254
    备调度器backup
    [root@localhost ~]# yum -y install ipvsadm keepalived
    [root@localhost ~]# vi /etc/keepalived/keepalived.conf
    ! Configuration File for keepalived
    global_defs {
       notification_email {
         assassin@111.com     
       }
       notification_email_from assassin@111.com   
       smtp_server dmtp.111.com    
       smtp_connect_timeout 30     
       router_id LVS_BACKUP    //这个值 与主的可以不一样作为区别主备      
       vrrp_skip_check_adv_addr    
       vrrp_strict
       vrrp_garp_interval 0
       vrrp_gna_interval 0
    }
    vrrp_instance VI_1 {      
        state BACKUP      
        interface ens32       
        virtual_router_id 51
        priority 90 
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            192.168.200.254     
        }
    }
     
    virtual_server 192.168.200.254 80 {   
        delay_loop 6
        lb_algo rr
        lb_kind DR
        protocol TCP
        real_server 192.168.200.113 80 {
            weight 1
    TCP_CHECK {
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 3
        connect_port 80
            }
        }
        real_server 192.168.200.112 80 {
            weight 1
            TCP_CHECK {
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 3
                connect_port 80
            }
        }
    }
    [root@localhost ~]# systemctl restart keepalived
    ===
    keepalived 非抢占模式
    两台LVS都作为备用的LVS
    vi /etc/keepalived/keepalived.conf
    vrrp_instance VI_1 {      
        state BACKUP      
        interface ens32       
        virtual_router_id 51
        priority 90 
        nopreempt     //添加一行   保存退出即可
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            192.168.200.254     
        }
    }
      重启keepalived服务
     =============================================

  • 相关阅读:
    Vue.js计算属性
    Vue.js列表渲染&关于列表元素的key&列表过滤与排序
    Maven入门_如何向JAR添加资源&标准目录布局的介绍(部分翻译)
    高性能分布式对象存储——MinIO实战操作(MinIO扩容)
    列式存储的分布式数据库——HBase(环境部署)
    列式存储的分布式数据库——HBase Shell与SQL实战操作(HBase Master高可用实现)
    【云原生】Kubernetes(k8s)最新版最完整版环境部署+master高可用实现(k8sV1.24.1+dashboard+harbor)
    大数据Hadoop之——HDFS小文件问题与处理实战操作
    大数据Hadoop之——Hadoop 3.3.4 HA(高可用)原理与实现(QJM)
    高性能分布式对象存储——MinIO(环境部署)
  • 原文地址:https://www.cnblogs.com/elin989898/p/11943679.html
Copyright © 2020-2023  润新知