一、环境
服务器系统版本:CentOS 7
两台服务器,一台做主节点,一台做备用节点:
192.168.1.200(主节点)
192.168.1.201(备用节点)
二、安装keepalived 2.0
两台服务器都安装上 keepalived 2.0。
1、安装依赖包(libnl库-简化netlink 协议对象的实现、gcc-GNU编译器套件、openssl-devel-包含开发支持各种密码算法和协议的应用程序所需的文件的库包)
#yum install -y libnl-devel libnl3-devel libnfnetlink-devel gcc openssl-devel
2、访问keepalived官网下载安装包:
#wget https://www.keepalived.org/software/keepalived-2.0.18.tar.gz
3、解压keepalived安装包:
#tar -zxvf keepalived-2.0.18.tar.gz
4、安装keepalived:
#mkdir /usr/local/keepalived(创建安装目录)
#cd keepalived-2.0.18切换到(安装目录下)
#./configure --prefix=/usr/local/keepalived(指定位置下安装源代码)
#make(编译)
#make install(源代码安装)
检查keepalived版本号
#/usr/local/keepalived/sbin/keepalived -v
复制keepalived配置文件到 /etc/keepalived/ 目录下:
#mkdir /etc/keepalived(创建目录)
#cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
(启动 keepalived 时,默认会去 /etc/keepalived 目录下找 keepalived.conf 文件)
keepalived日志文件路径:/var/log/messages
三、配置keepalived
192.168.1.200(主节点)上操作:
1、配置keepalived文件
#vi /etc/keepalived/keepalived.conf
将默认的配置文件内容清空(%d),输入以下内容:
vrrp_instance VI_1 { ### 实例名称,VI_1即实例名。
state MASTER ### 标记该节点是主节点(master)
interface ens33 ### 配置vip绑定的网卡,ens33是网卡名,按照实际情况修改成你自己(网卡名查询:ifconfig)。vip指的是虚拟ip地址。
virtual_router_id 51 ### 取1-255之间的值,主备节点的值需要设置成一样的,成为一个组。
priority 100 ### 权重,数值大的节点是master。
advert_int 1 ### 主备节点之间通讯的间隔秒数,用于判断主节点是否存活。
authentication {
auth_type PASS ### 认证方式
auth_pass 1111 ### 认证密码
}
virtual_ipaddress {
192.168.1.100 ### vip地址
}
}
保存文件:wq,退出。
2、启动keepalived:
#systemctl start keepalived
3、查看主节点的地址信息:
#ip addr
输出如下信息:
可以看到,在 ens33 网卡下面,已经出现了vip:192.168.1.100
4、在192.168.1.102(备用节点)上操作:
编辑keepalived.conf配置文件:
#vi /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
state BACKUP ### 标记该节点是备用节点(backup)
interface ens33 ### 配置vip绑定的网卡,eno16777736是网卡名,按照实际情况修改成你自己###的网卡名。### vip指的是虚拟ip地址。
virtual_router_id 51 ### 取1-255之间的值,主备节点的值需要设置成一样的,成为一个组。
priority 66 ### 权重,数值小的节点是backup。
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.100 ### 设置成跟主节点一样的vip地址。
}
}
保存文件,退出。
5、启动 keepalived:
#systemctl start keepalived
查看备用节点的地址信息:# ip addr
输出如下信息:
从上图可以看出,备用节点没有vip地址。vip地址在主节点上。
四、实验验证nginx+keepalived高可用
1、在主备节点上都安装好nginx。nginx安装方法:
https://www.51anidea.com/forum.php?mod=viewthread&tid=266&extra=page%3D1
2、安装好之后,编辑nginx的主页文件。
192.168.1.200(主节点)上操作:
#vi /usr/share/nginx/html/index.html
清空该文件的内容,输入以下内容:
200
保存文件,退出。
3、192.168.1.102(备用节点)上操作:
#vi /usr/share/nginx/html/index.html
清空该文件的内容,输入以下内容:
201
保存文件,退出。
4、测试
(1)测试虚拟(网址)ip跳转的服务器网址(主节点)
打开浏览器,访问 192.168.1.200:81(ip+端口号)(主节点)的web页面:
输出结果为200-主节点的内容
访问192.168.1.201:81(备用节点)的web页面
输出结果为201-备用节点内容
访问192.168.1.100:81(vip虚拟ip)的web网页
输出结果为200——主节点
因为vip地址在备用节点 192.168.1.102 上,所以访问vip地址会跳转到备用节点上。
(2)故障测试----当主节点出现故障或者宕机时,虚拟ip是否能跳转至备用节点。
a、通过停止主节点的 keepalived服务来模拟故障。
192.168.1.106(主节点)上操作:
停止keepalived服务:
#systemctl stop keepalived
b、访问虚拟ip(vip)192.168.1.100:80
输出内容为201------说明当主节点宕机时,虚拟ip将会跳转至备用节点。
(3)主节点上线时,vip是否能跳转至主节点
a、主机点开启keepalived服务
#systemctl start keepalived
b、访问vip
浏览器打开192.168.1.100
输出内容200-----主节点。说明主节点上线时,vip将会跳转至主节点。
五、在实际生产环境中把vip地址(或者vip地址对应的域名)提供给用户访问,以达到高可用的目的。
原文地址:https://blog.51cto.com/14413105/2436284