LVS+Keepalived 双机 单活 实现

1、准备工作

1.1、检查内核是否支持LVS

查看内核版本

# 使用以下命令查看内核版本
uname -a
hostnamectl

备注:2.4.23以后的版本的内核已经支持LVS

1.2、安装Nginx

分别在10.84.169.220和10.84.169.221上安装Nginx并启动

安装过程可参考:https://www.cnblogs.com/cxbks-write-down/articles/14292895.html

修改index.html文件

# 备份index.html 
mv /usr/local/nginx/html/index.html /usr/local/nginx/html/index.html_back
# 编辑index.html文件
vim /usr/local/nginx/html/index.html
# 添加到10.84.169.220的index.html中
real_server1 
# 添加到10.84.169.221的index.html中
real_server2

2、安装ipvsadm管理工具

2.1、检查内核是否已加载ipvs模块

# lsmod命令可参考:
lsmod | grep ip_vs

2.2、检查ipvsadm是否被安装

# 检查命令
ipvsadm
# 检查结果如下表示安装成功
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

2.3、下载和安装

# 安装ipvsadm
yum -y install ipvsadm
# 安装成功检验
ipvsadm 
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

安装ipvsadm后,生成以下文件

# 查看ipvsadm安装了那些文件
rpm -ql ipvsadm
# 配置文件
/etc/sysconfig/ipvsadm-config
# 程序包
/usr/lib/systemd/system/ipvsadm.service
# 主程序
/usr/sbin/ipvsadm
# 规则重置工具
/usr/sbin/ipvsadm-restore
# 规则保存工具
/usr/sbin/ipvsadm-save
/usr/share/doc/ipvsadm-1.27
/usr/share/doc/ipvsadm-1.27/README
/usr/share/man/man8/ipvsadm-restore.8.gz
/usr/share/man/man8/ipvsadm-save.8.gz
/usr/share/man/man8/ipvsadm.8.gz

3、安装keepalived

3.1、下载和安装keepalived

# 通过yum安装
yum install -y keepalived
# 设置开机自启动
systemctl enable keepalived
# 启动keepalived 
systemctl start keepalived
# 重启keepalived 
systemctl restart keepalived
# 查看keepalived状态
systemctl status keepalived
# 查看keepalived进程
ps -aux|grep keepalived
root     117401  0.0  0.0 122872  1412 ?        Ss   13:57   0:00 /usr/sbin/keepalived -D
root     117402  0.0  0.0 122872  2612 ?        S    13:57   0:00 /usr/sbin/keepalived -D
root     117403  0.0  0.0 122872  1880 ?        S    13:57   0:00 /usr/sbin/keepalived -D
# 通过跟踪日志查看keepalived启动情况
tail -f /var/log/messages

3.2、配置双机 单活

# 打开配置文件keepalived.conf
vim /etc/keepalived/keepalived.conf

主配置

! Configuration File for keepalived

# 全局定义配置区域
global_defs {
   # 机器标识
   router_id LVS_DEVEL_MASTER
}

# VRRPD配置区域
vrrp_instance VI_1 {
    # 定义初始状态,可以是MASTER或者BACKUP
    state MASTER
    # 工作接口,通过选举使用哪个接口进行(通过ifconfig查看网卡)
    interface eth0
    # 虚拟路由ID,如果是一组虚拟路由就定义一个ID,如果是多组就要定义多个
    # 而且这个虚拟ID还是虚拟MAC最后一段地址的信息,取值范围0-225
    virtual_router_id 51
    # 如果state定义额MASTER,这里的优先级就需要定义的比其他的高
    priority 100
    # 通知频率,单位为秒
    advert_int 1
    # 通信认证机制,这里是明文认证还有一种是加密认证
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    # 设置虚拟VIP地址,一般就设置一个,在LVS中就是LVS主机设置VIP的
    virtual_ipaddress {
        10.84.169.2/24
    }
}

备配置

# 编辑配置文件 keepalived.conf
! Configuration File for keepalived
# 全局定义配置区域
global_defs {
   # 机器标识
   router_id LVS_DEVEL_BACKUP
}
# VRRPD配置区域
vrrp_instance VI_1 {
    # 定义初始状态,可以是MASTER或者BACKUP
    state BACKUP
    # 工作接口,通过选举使用哪个接口进行(通过ifconfig查看网卡)
    interface eth0
    # 虚拟路由ID,如果是一组虚拟路由就定义一个ID,如果是多组就要定义多个
    # 而且这个虚拟ID还是虚拟MAC最后一段地址的信息,取值范围0-225
    virtual_router_id 51
    # 如果state定义额MASTER,这里的优先级就需要定义的比其他的高
    priority 100
    # 通知频率,单位为秒
    advert_int 1
    # 通信认证机制,这里是明文认证还有一种是加密认证
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    # 设置虚拟VIP地址,一般就设置一个,在LVS中就是LVS主机设置VIP的
    virtual_ipaddress {
        10.84.169.2/24
    }
}

4、验证

4.1、主备机器都运行时

# curl VIP
curl 10.84.169.2
# 返回
real_server1

4.2、主机挂掉,备机正常运行时

# curl VIP
curl 10.84.169.2
# 返回
real_server2
posted on 2021-12-22 17:48  cxbks  阅读(184)  评论(0)    收藏  举报