LVS + Keepalived 集群部署

1、架构图

2、LVS 环境准备

在两台 nginx 服务器上操作

echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/ens32/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/ens32/arp_ignore

systemctl  restart network
# 添加本地回环网址
ifconfig lo:0 10.22.86.50 netmask 255.255.255.255 broadcast 10.22.86.50

# 添加本地回环路由地址

route add -host 10.22.86.50 dev lo:0

3、keepalived 配置

在两台 Keepalived 服务器上操作

# 主 Keepalived 
[root@localhost keepalived]# cat keepalived.conf
global_defs {
router_id ha1
}

vrrp_instance VI_1 {
    state MASTER            
    interface ens32         
    virtual_router_id 66    
    priority 100            
    advert_int 1            
    authentication {
        auth_type PASS 
        auth_pass 1111
    }
    virtual_ipaddress {
        10.22.86.50 
    }
}

virtual_server 10.22.86.50 80 {
    delay_loop 6               #服务轮询的时间间隔
    lb_algo rr                #加权轮询调度,LVS调度算法 rr|wrr|lc|wlc|lblc|sh|sh
    lb_kind DR                 #LVS集群模式 NAT|DR|TUN,其中DR模式要求负载均衡器网卡必须有一块与物理网卡在同一个网段
    #nat_mask 255.255.255.0
    #persistence_timeout 1     #会话保持时间
    protocol TCP              #健康检查协议

    real_server 10.22.86.200 80 {
        weight 3  ##权重
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
            connect_port 80
        }
    }
	
    real_server 10.22.86.201 80 {
        weight 3  ##权重
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
            connect_port 80
        }
    }
}
# 备 keepalived
[root@localhost keepalived]# cat keepalived.conf 
global_defs {
router_id ha1
}

vrrp_instance VI_1 {
    state BACKUP            
    interface ens32         
    virtual_router_id 66    
    priority 90            
    advert_int 1            
    authentication {
        auth_type PASS 
        auth_pass 1111
    }
    virtual_ipaddress {
        10.22.86.50/24      
    }
}

virtual_server 10.22.86.50 80 {
    delay_loop 6               #服务轮询的时间间隔
    lb_algo rr                #加权轮询调度,LVS调度算法 rr|wrr|lc|wlc|lblc|sh|sh
    lb_kind DR                 #LVS集群模式 NAT|DR|TUN,其中DR模式要求负载均衡器网卡必须有一块与物理网卡在同一个网段
    #nat_mask 255.255.255.0
    #persistence_timeout 1     #会话保持时间
    protocol TCP              #健康检查协议
    
    real_server 10.22.86.200 80 {
        weight 3  ##权重
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
            connect_port 80
        }
    }

    real_server 10.22.86.201 80 {
        weight 3  ##权重
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
            connect_port 80
        }
    }
}

ps -aux | grep keep | grep -v grep | awk '{print $2}' | xargs kill -9 
/usr/local/keepalived/sbin/keepalived -D

4、测试

5、常用命令

ipvsadm -C

ipvsadm -A -t 10.22.86.50:80 -s rr

ipvsadm -a -t 10.22.86.50:80 -r 10.22.86.200 -g

ipvsadm -a -t 10.22.86.50:80 -r 10.22.86.201 -g

ipvsadm -L -n

ifconfig lo:0 10.22.86.50 netmask 255.255.255.255 broadcast 10.22.86.50

route add -host 10.22.86.50 dev lo:0
posted @   Rocky_940120  阅读(117)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
点击右上角即可分享
微信分享提示