暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

LVS+Keepalived 高可用群集部署,LVS采用NAT模式。

原创 边缘随行 2022-10-10
1017

一、LVS+Keepalived 高可用群集

1、LVS

Linux虚拟服务器(Linux Virtual Server)

LVS 实际上相当于基于IP地址的虚拟化应用, 为基于IP地址和内容请求分发的负载均衡提出了一种高效的解决方法

2、Keepalived

1、支持故障自动切换(Failover)
2、支持节点健康状态检查(Health Checking)

判断LVS负载调度器、节点服务器的可用性,当master主机出现故障及时切换到backup节点保证业务正常,当 master 故障主机恢复后将其重新加入群集并且业务重新切换回 master 节点。

二、LVS+Keepalived 高可用群集部署

环境配置

image.png

1、178Director1服务器配置负载调度器

安装keepalived

[root@localhost ~]# cd /usr/local/src/
[root@localhost src]# tar -zxf keepalived-2.2.4.tar.gz 
[root@localhost src]# cd keepalived-2.2.4
[root@localhost keepalived-2.2.4] ./configure --prefix=/usr/local/keepalived
[root@localhost keepalived-2.2.4] make && make install
[root@localhost keepalived]#  cd /usr/local/keepalived
[root@localhost keepalived]# ln -s /usr/local/src/keepalived-2.2.4/keepalived/etc/init.d/keepalived /etc/init.d/
[root@localhost keepalived]# ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
[root@localhost keepalived]# ln -s /usr/local/keepalived/sbin/keepalived /usr/local/sbin/
[root@localhost keepalived]# mkdir /etc/keepalived/
[root@localhost keepalived]# ln -s  /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
[root@localhost ~]# cat  /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
   router_id LVS1		# 服务器名称,不能重复
}

vrrp_instance VI_1 {	# 定义VRRP热备实例名称
    state MASTER	# 热备状态MASTER为主服务器
    interface ens192	# 承载VIP地址的物理接口网卡 通过这张网卡做心跳检测
    virtual_router_id 66 # 虚拟服务器的ID号,每个热备份组保持一致
    priority 100	# 权重(优先级)最大不超过150 官网建议主和从之间差距为50
    advert_int 1	# 通告间隔秒数 检测间隔1秒
    authentication {	# 认证信息,每个热备份组保持一致
        auth_type PASS	# 认证类型
        auth_pass 123456	# 密码字串
    }
    virtual_ipaddress {	# 指定漂移地址VIP 可以有多个
        10.228.255.174
    }
}

virtual_server 10.228.255.174 11000 {	# 虚拟服务器地址与端口
    delay_loop 6	# 健康检测间隔时间
    lb_algo wlc		# 指定算法
    lb_kind NAT		# 指定群集模式
    persistence_timeout 50	# 持久化时间
    protocol TCP	# 采用的协议为TCP

    real_server 10.228.204.187 11000 {	# 第一个web 节点服务器的地址和端口
        weight 1	# 权重
                TCP_CHECK {		# 健康检查方式
                        connect_port 11000 # 检查目标端口
                        connect_timeout 3	# 连接超时时间
                        nb_get_retry 3		# 重试次数
                        delay_before_retry 4	# 重试间隔时间
        }
    }
   real_server 10.228.204.188 11000 {
        weight 1
                TCP_CHECK {
                        connect_port 11000 
                        connect_timeout 3
                        nb_get_retry 3
                        delay_before_retry 4
        }
    }
}

启动keepalived

systemctl start keepalived
systemctl status keepalived

配置负载调度器,LVS-NAT模式

modprobe ip_vs   #加载ip_vs模块
cat /proc/net/ip_vs  #查看ip_vs版本信息

开启IPV4路由转发,关闭重定向功能。

net.ipv4.ip_forward = 1 net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.default.send_redirects = 0 net.ipv4.conf.ens192.send_redirects = 0

执行 sysctl -p 生效

#清除LVS-Server调度表中的所有记录

ipvsadm -C

#增加一个带有调度算法的转换表

ipvsadm -A -t 10.228.255.174:11000 -s wlc
ipvsadm -A -t 10.228.255.174:11001 -s wlc

#增加后端的服务器 -m nat模式

ipvsadm -a -t 10.228.255.174:11000 -r 10.228.204.187:11000 -m -w 3
ipvsadm -a -t 10.228.255.174:11001 -r 10.228.204.187:11001 -m -w 3
ipvsadm-save > /etc/sysconfig/ipvsadm
ipvsadm -Ln

由于188服务器nginx未开启,如果后期把188的nginx启用了,需要 执行

ipvsadm -a -t 10.228.255.174:11000 -r 10.228.204.188:11000 -m -w 3
ipvsadm -a -t 10.228.255.174:11001 -r 10.228.204.188:11001 -m -w 3
ipvsadm-save > /etc/sysconfig/ipvsadm

2、179Director2服务器配置负载调度器

除了keepalive的配置文件有一点不同之外,其他的都相同。

[root@localhost ~]# cat  /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
   router_id LVS2		# 服务器名称,不能重复
}

vrrp_instance VI_1 {	# 定义VRRP热备实例名称
    state BACKUP	# 热备状态MASTER为主服务器
    interface ens192	# 承载VIP地址的物理接口网卡 通过这张网卡做心跳检测
    virtual_router_id 66 # 虚拟服务器的ID号,每个热备份组保持一致
    priority 90	# 权重(优先级)最大不超过150 官网建议主和从之间差距为50
    advert_int 1	# 通告间隔秒数 检测间隔1秒
    authentication {	# 认证信息,每个热备份组保持一致
        auth_type PASS	# 认证类型
        auth_pass 123456	# 密码字串
    }
    virtual_ipaddress {	# 指定漂移地址VIP 可以有多个
        10.228.255.174
    }
}

virtual_server 10.228.255.174 11000 {	# 虚拟服务器地址与端口
    delay_loop 6	# 健康检测间隔时间
    lb_algo wlc		# 指定算法
    lb_kind NAT		# 指定群集模式
    persistence_timeout 50	# 持久化时间
    protocol TCP	# 采用的协议为TCP

    real_server 10.228.204.187 11000 {	# 第一个web 节点服务器的地址和端口
        weight 1	# 权重
                TCP_CHECK {		# 健康检查方式
                        connect_port 11000 # 检查目标端口
                        connect_timeout 3	# 连接超时时间
                        nb_get_retry 3		# 重试次数
                        delay_before_retry 4	# 重试间隔时间
        }
    }
   real_server 10.228.204.188 11000 {
        weight 1
                TCP_CHECK {
                        connect_port 11000 
                        connect_timeout 3
                        nb_get_retry 3
                        delay_before_retry 4
        }
    }
}

三、nginx由现场安装配置。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论