0
点赞
收藏
分享

微信扫一扫

LVS+Keepalived实现高可用和负载均衡

干自闭 2022-04-23 阅读 60

IPADDR=10.10.10.100

NETMASK=255.255.255.255

NETWORK=127.0.0.0

If you’re having problems with gated making 127.0.0.0/8 a martian,

you can change this to something else (255.255.255.255, for example)

BROADCAST=127.255.255.255

ONBOOT=yes

NAME=loopback

[root@a network-scripts]# systemctl restart network

3、ARP行为控制

[root@a network-scripts]# echo “1” > /proc/sys/net/ipv4/conf/lo/arp_ignore

[root@a network-scripts]# echo “2” > /proc/sys/net/ipv4/conf/lo/arp_announce

[root@a network-scripts]# echo “1” > /proc/sys/net/ipv4/conf/all/arp_ignore

[root@a network-scripts]# echo “2” > /proc/sys/net/ipv4/conf/all/arp_announce

刷新

[root@a network-scripts]# sysctl -p

4、添加路由

[root@a network-scripts]# route add -host 10.10.10.100 dev lo:0

[root@a network-scripts]# echo “route add -host 10.10.10.100 dev lo:0” >> /etc/rc.local

5、关闭防火墙和selinux

[root@a network-scripts]# systemctl stop firewalld

[root@a network-scripts]# systemctl disable firewalld

[root@a network-scripts]# setenforce 0

6、设置LBC

参数说明:

-A:添加集群

-a:集群子节点

-t:tcp协议

-s:算法

-r:真实服务器

-g:DR模式

[root@a ~]# ipvsadm -A -t 10.10.10.100:80 -s rr

[root@a ~]# ipvsadm -a -t 10.10.10.100:80 -r 10.10.10.12:80 -g

[root@a ~]# ipvsadm -a -t 10.10.10.100:80 -r 10.10.10.13:80 -g

[root@a ~]# ipvsadm -Ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port Forward Weight ActiveConn InActConn

TCP 10.10.10.100:80 rr

-> 10.10.10.12:80 Route 1 0 0

-> 10.10.10.13:80 Route 1 0 0

[root@a ~]# ipvsadm --save > /etc/sysconfig/ipvsadm

[root@a ~]# systemctl start ipvsadm.service

[root@a ~]# systemctl enable ipvsadm.service

7、测试

lvs会把请求按rr算法分给rs

[root@a network-scripts]# ipvsadm -Ln --stats

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes

-> RemoteAddress:Port

TCP 10.10.10.100:80 24 164 0 24880 0

-> 10.10.10.12:80 12 94 0 16209 0

-> 10.10.10.13:80 12 70 0 8671 0

(2)部署keepalived

在lvs上配置和一台新的虚拟机上配置

[root@a ~]# cd /etc/sysconfig/network-scripts/

[root@a ~]# scp ./ifcfg-ens32:0 10.10.10.14:/etc/sysconfig/network-scripts/ifcfg-ens32:0

[root@a ~]# yum install -y keepalived

#配置keepalived配置文件

[root@a ~]# cat /etc/keepalived/keepalived.conf|head -50

! Configuration File for keepalived

global_defs {

router_id R1

}

vrrp_instance VI_1 {

state MASTER

interface ens32

virtual_router_id 66

priority 50

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

10.10.10.100

}

}

virtual_server 10.10.10.100 80 {

delay_loop 6

lb_algo rr

lb_kind DR

persistence_timeout 50

protocol TCP

real_server 10.10.10.12 80 {

weight 1

TCP_CHECK {

connect_timeout 3

nb_get_retry 3

delay_before_retry 3

connect_port 80

}

}

real_server 10.10.10.13 80 {

weight 1

TCP_CHECK {

connect_timeout 3

nb_get_retry 3

delay_before_retry 3

connect_port 80

}

}

}

从节点配置基本一致,

修改以下配置

router_id R2

state SLAVE

priority 20

在从节点安装ipvsadm

[root@a 《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 network-scripts]# yum install -y ipvsadm

[root@a network-scripts]# ipvsadm -l

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port Forward Weight ActiveConn InActConn

第一次查看没有集群信息,重启keepalived服务后会发现集群信息已经同步在两个节点

[root@a network-scripts]# systemctl restart keepalived

[root@a network-scripts]# ipvsadm -Ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port Forward Weight ActiveConn InActConn

TCP 10.10.10.100:80 rr persistent 50

-> 10.10.10.12:80 Route 1 0 0

-> 10.10.10.13:80 Route 1 0 0

举报

相关推荐

0 条评论