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服务
 =============================================

posted @ 2019-11-27 17:04  elin菻  阅读(153)  评论(0编辑  收藏  举报