文章目录
- 一、说明
- 二、概念解释
- 三、环境准备
- 四、操作过程
- 五、验证
一、说明
我们经常听说 nginx + keepalived 双机热备,其实在这里,双机热备只是利用 keepalived 实现两个节点的故障切换,当主节点挂了,备用节点顶上,保证高可用群集中的热备效果。
二、概念解释
- VIP
虚拟ip(也叫浮动ip),他是虚拟路由器的ip地址,可以在热备组内的路由器之间进行转移。结合实际场景来解释:当我们配置好了双机热备后,两台节点之间会产生一个 vip,他同一时间只会漂移到一个节点上,我们可以用这个 vip 访问该节点的资源,他就如同你使用这个节点原本的 ip 去访问他一样。直到主节点挂了,这个 vip 会自动漂移到备用节点,实现相同的作用。
三、环境准备
- 节点
我们事先准备两个节点,ip 分别是 192.168.231.144、192.168.231.145
然后我们选择一个 VIP 192.168.231.147 这个ip必须还没有被占用
- 查询节点的网卡名字
ip addr
两个节点分别执行这个命令获取网卡名,要记下来
- 要被访问的服务
我们实现双机热备,那总得有东西访问,我们才能测试出结果,所以我在两个节点分别安装了不同版本的 haproxy,然后都配置上了其内置的监控页面,用来访问,下面的截图可以看到我们可以通过版本号来区分当前访问的是哪个节点的服务:
192.168.231.144:
192.168.231.145:
四、操作过程
分别在两个节点安装keepalived
下面的安装步骤都一样,只有配置文件需要区别修改,已经在配置文件中标注了需要修改的地方
配置文件中 (主备节点不同) 的就是需要修改的地方
- 安装依赖
yum -y install gcc gcc-c++ make popt-devel kernel-devel openssl-devel
- 下载 keepalived 程序包
https://www.keepalived.org/download.html
-
上传 keepalived-2.2.8.tar.gz 到 /usr/local/src 目录
-
解压安装包
tar -zxvf keepalived-2.2.8.tar.gz
- 进去解压目录
cd keepalived-2.2.8
- 配置安装目录
./configure --prefix=/usr/local/keepalived
- 编译安装
make & make install
- 将 keepalived 启动脚本写进去系统启动配置
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/keepalived
- 将 keepalived 主程序加入到环境变量
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/keepalived
- 创建 keepalived 的配置文件
mkdir /etc/keepalived
vi /etc/keepalived/keepalived.conf
文件内容如下:
注意:
主备节点的 router_id 要不一样
下面配置的 interface 是指定节点的网卡,必须对应上面查询出来的网卡名字
主备两个节点的 priority 必须设置成不一样,主节点要比备用节点的值要大
! Configuration File for keepalived
global_defs { #全局参数
router_id node1 #指定名称,各个服务器名称要不一样(主备节点不同)
}
vrrp_instance VI_1 { #指定vrrp热备参数
state MASTER #服务器角色是master,备份服务器设置为BACKUP(主备节点不同)
interface eth0 #修改物理网卡名称,默认是centos6的eth0
virtual_router_id 10 # 虚拟路由标识(需在两个节点上相同)
priority 101 #优先级,主服务器设置要大于备服务器(主备节点不同)
advert_int 1 # 发送VRRP广告的间隔时间
authentication {
auth_type PASS #验证类型和密码
auth_pass 123 # 认证密码(需在两个节点上相同)
}
virtual_ipaddress {
192.168.231.147 #漂移地址(VIP)地址,可以有多个
}
}
- 启动 keepalived
systemctl start keepalived.service
- 查询运行状态
systemctl status keepalived.service
- 查询 vip 是否生成
ip addr
我们在主节点执行这个命令,可以看到已经生成了我们指定的 vip
注意:这时候在备用节点是没有产生这个 vip 的
五、验证
通过虚拟ip访问haproxy监控页面
http://192.168.231.147:9999/haproxy
可以看到他此时访问的是主节点的内容
这时,我们手动去停掉主节点,或者直接 kill 掉主节点的 keepalived 的进程
他会自动切换到备节点