• LVS+keepalived高可用


    1.keeplived相关

    1.1工作原理

    Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案,可以解决静态路由出现的单点故障问题。

    在一个LVS服务集群中通常有主服务器(MASTER)和备份服务器(BACKUP)两种角色的服务器,但是对外表现为一个虚拟IP,主服务器会发送VRRP通告信息给备份服务器,当备份服务器收不到VRRP消息的时候,即主服务器异常的时候,备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性。

    VRRP:虚拟路由冗余协议(Virtual Router Redundancy Protocol,简称VRRP)是由IETF提出的解决局域网中配置静态网关出现单点失效现象的路由协议,1998年已推出正式的RFC2338协议标准。VRRP广泛应用在边缘网络中,它的设计目标是支持特定情况下IP数据流量失败转移不会引起混乱,允许主机使用单路由器,以及即使在实际第一跳路由器使用失败的情形下仍能够维护路由器间的连通性。

    1.2 Keepalived体系主要模块

    keepalived体系架构中主要有三个模块,分别是core、check和vrrp。
    ●core模块:为keepalived的核心,负责主进程的启动、维护及全局配置文件的加载和解析。
    ●vrrp模块:是来实现VRRP协议的。
    ●check模块:负责健康检查,常见的方式有端口检查及URL检查。

    2. 实验配置

    2.1 实验环境

    服务器 ip
    主DR服务器 192.168.80.20
    vip:192.168.80.101
    备DR服务器 192.168.80.25
    vip:192.168.80.101
    Web服务器1 192.168.80.30
    Web服务器2 192.168.80.35
    客户端 192.168.80.45

    2.2 配置步骤

    1.配置负载均衡器(主备一致)

    systemctl stop firewalld.service
    setenforce 0
    
    yum -y install ipvsadm keepalived
    

    (1)配置keeplived(主备均要配置)

    cd /etc/keepalived/
    cp keepalived.conf keepalived.conf.bak
    vim keepalived.conf
    ___________________________________________
    ......
    global_defs {						#定义全局参数
    --10行--修改,邮件服务指向本地
    	smtp_server 127.0.0.1
    --12行--修改,指定服务器(路由器)的名称,主备服务器名称须不同,主为LVS_01,备为LVS_02
    	router_id LVS_01
    --14行--注释掉,取消严格遵守VRRP协议功能,否则VIP无法被连接
    	#vrrp_strict
    }
    
    vrrp_instance VI_1 {				#定义VRRP热备实例参数
    --20行--修改,指定热备状态,主为MASTER,备为BACKUP
        state MASTER
    --21行--修改,指定承载vip地址的物理接口
        interface ens33
    --22行--修改,指定虚拟路由器的ID号,每个热备组保持一致	
        virtual_router_id 10
    	#nopreempt		#如果设置非抢占模式,两个节点state必须为bakcup,并加上配置 nopreempt
    --23行--修改,指定优先级,数值越大优先级越高,这里设置主为100,备为90
        priority 100
        advert_int 1					#通告间隔秒数(心跳频率)
        authentication {				#定义认证信息,每个热备组保持一致
    		auth_type PASS				#认证类型
    --27行--修改,指定验证密码,主备服务器保持一致
            auth_pass 1111
        }
        virtual_ipaddress {				#指定群集vip地址
            192.168.80.101
        }
    }
    --36行--修改,指定虚拟服务器地址(VIP)、端口,定义虚拟服务器和Web服务器池参数
    virtual_server 192.168.80.101 80 {
        delay_loop 6					#健康检查的间隔时间(秒)
        lb_algo rr						#指定调度算法,轮询(rr)
    --39行--修改,指定群集工作模式,直接路由(DR)
        lb_kind DR
        persistence_timeout 0			#连接保持时间(秒)
        protocol TCP					#应用服务采用的是 TCP协议
    --43行--修改,指定第一个Web节点的地址、端口
        real_server 192.168.80.30 80 {
            weight 1					#节点的权重
    --45行--删除,添加以下健康检查方式		
            TCP_CHECK {
    			connect_port 80			#添加检查的目标端口
    			connect_timeout 3		#添加连接超时(秒)
    			nb_get_retry 3			#添加重试次数
    			delay_before_retry 3	#添加重试间隔
    		}
    	}
    
    	real_server 192.168.80.35 80 {		#添加第二个 Web节点的地址、端口
            weight 1
            TCP_CHECK {
    			connect_port 80
    			connect_timeout 3
    			nb_get_retry 3
    			delay_before_retry 3
    		}
    	}
    ##删除后面多余的配置##
    }
    ___________________________________________
    systemctl start keepalived
    ip addr	
    

    (2)启动ipvsadm服务

    ipvsadm-save > /etc/sysconfig/ipvsadm
    systemctl start ipvsadm
    
    ipvsadm -ln
    

    (3)调整proc响应参数,关闭Linux内核的重定向参数响应

    vim /etc/sysctl.conf
    net.ipv4.conf.all.send_redirects = 0
    net.ipv4.conf.default.send_redirects = 0
    net.ipv4.conf.ens33.send_redirects = 0
    
    sysctl -p
    
    

    2.节点服务器配置

    --192.168.80.30---
    echo 'this is  web server1 from 192.168.80.30!' > /var/www/html/index.html
    
    --192.168.80.35---
    echo 'this is  web server2 from 192.168.80.35!' > /var/www/html/index.html
    
    vim /etc/sysconfig/network-scripts/ifcfg-lo:0
    DEVICE=lo:0
    ONBOOT=yes
    IPADDR=192.168.80.101
    NETMASK=255.255.255.255
    
    service network restart 或 systemctl restart network
    ifup lo:0
    ifconfig lo:0
    route add -host 192.168.80.101 dev lo:0
    
    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
    
    sysctl -p
    

    2.3 实验截图

    2.3.1 负载均衡器配置

    1.主节点配置
    image
    2.配置文件修改
    image
    image
    image
    image
    image
    备用负载均衡器配置与主一致

    注意keepalived.conf中的

    --12行--修改,指定服务器(路由器)的名称,主备服务器名称须不同,主为LVS_01,备为LVS_02
    	router_id LVS_02
    --20行--修改,指定热备状态,主为MASTER,备为BACKUP
        state MASTER
    --23行--修改,指定优先级,数值越大优先级越高,这里设置主为100,备为90
        priority 90
    

    备用的负载均衡器keeplived配置完成后,虚拟地址在主未宕机的时候不会出现。

    image
    2.3.2 网页服务器配置
    image
    网页服务2除网页内容不同外配置相同。

    2.4 客户端测试

    image
    关闭.20的keepalived的服务。

    查看备负载均衡器的虚拟网卡是否启用
    image
    客户端访问正常:
    image

  • 相关阅读:
    二叉搜索树的实现
    java集合02:Collection集合,Set子集合,HashSet实现类和TreeSet实现类
    成都榆熙电子商务有限公司:获得更多的自然流量需要商家们做些什么?
    基于springboot的房产销售系统
    【Linux学习笔记】字符串切分
    【Vue脚手架项目的结构】
    css高阶技巧(2)
    fastjson值java对象与JSON串互转
    Vue2.0+AntvX6—边 Edge
    ShardingSphere数据库读写分离
  • 原文地址:https://www.cnblogs.com/Canyun-blogs/p/16355916.html