欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

ipvsadm

最编程 2024-08-10 21:16:41
...
主节点暴露ip 
配置虚拟 ip 这里的主节点用来配置lvs ifconfig ens33:
2 192.168.1.100/24

 

 

ifconfig ens33:2 down
关闭虚拟ip
其他节点影藏vip 需要设置arp协议  先改内核再改ip
cd /proc/sys/net/ipv4/conf/ens33
一个是arp_ignore
一个是arp_announce
修改arp_ignore
echo 1 > arp_ignore 这里不要用vim
echo 2 > arp_announce
返回上一层 进入
cd all/
echo 1 > arp_ignore
echo 2 > arp_announce

设置环卫ip
ifconfig lo:2 192.168.1.100 netmask 255.255.255.255
这里一定要设置4个255的掩码 不能使用/来显示掩码
ip地址和掩码要进行按位与的操作 来生成路由条目 假如输入成3个255一个0 那么生成的路由条目和real 地址生成的路由条目一样 切环卫ip离内核进,会先进入环卫ip 又发回给自己,例如链接xshell 进入的是real ip 但是出来都可以出来但是环卫ip 离内核进,内核又将数据发送环卫ip,无线循环 所以这个包永远发布出去 设置4个255 规避死循环的风险
------------------------------------------------------
另一台也是要这样设置
echo > 1 /proc/sys/net/ipv4/conf/ens33/arp_ignore
echo > 1 /proc/sys/net/ipv4/conf/all/arp_ignore
echo > 2 /proc/sys/net/ipv4/conf/ens33/arp_announce
echo > 2 /proc/sys/net/ipv4/conf/all/arp_announce
再配置ip
ifconfig lo:2 192.168.1.100 netmask 255.255.255.255
两台配置httpd
yum install httpd -y
service httpd start
创建一个主页
vi /var/www/html/index.html
在主节点下载 ipvsadm
yum install ipvsadm -y
配置入口规则 -A 是入口规则 -t tcp协议 ip+端口 -s 轮询
ipvsadm -A -t 192.168.1.100:80 -s rr
查看规则
ipvsadm -ln
进入到A 入口的
配置出口规则 -a 出口规则 -t tcp 协议 ip+端口号 -r real ip ip+端口号 -g 轮询 -w 权重为1
ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.6 -g -w 1
ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.8 -g -w 1

刷新页面可以看到负载

node02-node03
netstat -natp 可以看到很多链接
node01
netstat -natp 看不到链接
node01 ipvsadm -lnc 查看偷窥记录

如果node02 down掉 就会出现 syn-recv 此时访问节点 只有一个能访问 另一个无法访问 握手发送但是没有收到确认的包

 

 ipvsadm  -C  清除配置

ifconfig ens33:2 down
关闭虚拟ip
在node01 和 node04安装
yum install keepalived ipvsadm -y
cd /etc/keepalived/
cp keepalived.conf keepalived.conf.bak
复制一个副本 避免出错
vim keepalived.conf
vrrp_instance VI_1 虚拟冗余协议

vrrp_instance VI_1 {
    state MASTER //node04 BACKUP
    interface eth0
    virtual_router_id 51
    priority 100 //node04权重 50
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.1.100/24 dev ens33 label ens33:3
    }
}

80 http 443 https
lb_kind DR 将NAT 改成DR模式
persistence_timeout 0 当一个用户访问之前访问过的 keepalive会根据曾经的记录 转给之前的服务器内存有直接相应 而不是重新转给新的 节省开销
测试时 写50 那么页面不跳转 生产环境改成合适时间

dG 删除光标后所有
光标定位到real_server
shift+: . 代表光标所在位置 ,到哪 $文件最后一行 -1 就是倒数第二行 去掉最后一层大括号 y 是复制的意思
:.,$-1y
在倒数第二行按p 粘贴刚才复制的内容
只需要该real_server ip 就可以了

 

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.1.100/24 dev ens33 label ens33:3
    }
}

virtual_server 192.168.1.100 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    persistence_timeout 0
    protocol TCP

    real_server 192.168.1.12 80 {
        weight 1
        HTTP_GET {
            url {
              path /
                status_code 200
            }

            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
real_server 192.168.1.13 80 {
        weight 1
        HTTP_GET {
            url {
              path /
                status_code 200
            }

            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

将上述文件拷贝到另一台备机上

 


在修改内容

状态是BACKUP
权重是50

 

 

 


 

 

 


 启动node01的keepalived

ifconfig

------------------------------

 


down掉物理网卡 node01


此时查看node04 ifconfig 虚拟vip成功显示


 

 

 启动node01 时 因为master 权重较高 

node04 的vip  会下线

但是这是因为数据比较少得时候 能同步的过来   node01并不是每次都能正常转换成master

当数据较多时 node01 会抢主 但是同步数据会消耗时间 会使服务器拒绝服务  无法正常访问 

但是最好将主备的配置一样,一旦主发生宕机,备机直接顶上,

有些支持抢主ipvsadm  有些不支持