文章目录
- 实验环境
- 实验目的
- 实验步骤
- 1.将lb01的配置同步到lb02
- 2.在lb01和lb02上安装keepalived
- 3.编写keepalived的配置文件
- 4.启动服务
- 5、验证:主备是否成功
- 6、如何判断谁提供服务
实验环境
| 主机名 | 内网 | 虚拟IP | 角色 |
|---|---|---|---|
| lb01 | 10.0.0.5 | 10.0.0.200 | 主 |
| lb02 | 10.0.0.6 | 10.0.0.200 | 备 |
实验目的
提高lb的高可用,使用keepalived实现主备,这里我们对lnmp架构站点进行高可用
搭建lnmp架构的网站请看我之前的文档
实验步骤
1.将lb01的配置同步到lb02
1、安装Nginx[root@lb02~]# scp -r root@10.0.0.5:/etc/yum.repos.d/ /etc/yum.repos.d/root@10.0.0.5's password: CentOS-Base.repo 100% 1890 765.9KB/s 00:00 epel.repo 100% 664 950.3KB/s 00:00 nginx.repo 100% 192 324.1KB/s 00:00 nginx.conf 100% 99 134.7KB/s 00:00 [root@lb02 ~]# yum -y install nginx 创建程序用户 [root@lb02 ~]# groupadd www -g 666 [root@lb02 ~]# useradd www -u 666 -g 666 -s /sbin/nologin -M [root@lb02 ~]# scp -r root@10.0.0.5:/etc/nginx/ /etc/ root@10.0.0.5'spassword:proxy.conf100%194406.5KB/s00:00default.conf100%10722.1MB/s00:00java.conf100%254473.1KB/s00:00fastcgi_params100%10071.1MB/s00:00mime.types100%52316.9MB/s00:00nginx.conf100%6481.3MB/s00:00scgi_params100%636764.9KB/s00:00uwsgi_params100%664454.3KB/s00:00proxy_params100%275673.1KB/s00:00修改配置文件[root@lb02~]# sed -i '/^user/c user www;' /etc/nginx/nginx.conf[root@lb02~]# systemctl start nginx[root@lb02~]# systemctl enable nginxCreated symlink from/etc/systemd/system/multi-user.target.wants/nginx.service to/usr/lib/systemd/system/nginx.service.2.在lb01和lb02上安装keepalived
[root@lb01~]# yum install -y keepalived[root@lb02~]# yum install -y keepalived3.编写keepalived的配置文件
#lb01的配置:[root@lb01~]# cat /etc/keepalived/keepalived.conf!Configuration Fileforkeepalived global_defs{router_id lb01# 添加,唯一标识即可}vrrp_instanceVI_1{stateMASTER# 保留,Master节点标识interfaceens33# 注意:需确认你的服务器实际网卡名称(如ens33、eth0),必须和系统一致!virtual_router_id50# 保留,同一VRRP组内(Master/Backup)必须相同(0-255)priority100# 保留,Master优先级高于Backup即可advert_int1# 保留,心跳发送间隔(1秒,同一组必须相同)authentication{auth_typePASS# 保留,认证方式auth_pass1111# 保留,同一组必须相同(密码长度1-8位)}virtual_ipaddress{# 【关键修改】去掉`dev eth1`:该写法在部分Keepalived版本中会导致VIP绑定失败# 原写法:172.16.1.3/24 dev eth110.0.0.200/24# Keepalived会自动绑定到interface指定的网卡# 这里的IP可以自己定义,需要和主机IP在同一个网段里面}}#lb02的配置:[root@lb02~]# cat /etc/keepalived/keepalived.conf!Configuration Fileforkeepalived global_defs{router_id lb02# 【必改1】router_id唯一,添加为lb02}vrrp_instanceVI_1{stateBACKUP# 【必改2】state改为BACKUPinterfaceens33# 【必须和Master一致】网卡名称相同virtual_router_id50# 【必须和Master一致】priority99# 【必改3】priority改为低于Master(如100)advert_int1# 【必须和Master一致】authentication{auth_typePASS# 【必须和Master一致】auth_pass1111# 【必须和Master一致】}virtual_ipaddress{10.0.0.200/24# 【必须和Master一致】VIP相同}}4.启动服务
[root@lb01~]# systemctl start keepalived[root@lb01~]# systemctl enable keepalivedCreated symlink from/etc/systemd/system/multi-user.target.wants/keepalived.service to/usr/lib/systemd/system/keepalived.service.[root@lb02~]# systemctl start keepalived[root@lb02~]# systemctl enable keepalivedCreated symlink from/etc/systemd/system/multi-user.target.wants/keepalived.service to/usr/lib/systemd/system/keepalived.service.5、验证:主备是否成功
1、检查lb01
# lb01存在vip地址[root@lb01 conf.d]# ip addr |grep 10.0.0.200inet10.0.0.200/24 scope global secondary ens33# 停止lb01上的keepalived, 检测vip已不存在[root@lb01 conf.d]# systemctl stop keepalived[root@lb01 conf.d]# ip addr |grep 10.0.0.200[root@lb01 conf.d]#2、检查lb02
在 lb02 上进行如下操作 因为lb01已经暂停,检查lb02是否有接管[root@lb02 conf.d]# ip addr |grep 10.0.0.200inet10.0.0.200/24 scope global secondary ens33 现在把lb01的服务启动,观察lb02是否有虚拟IP[root@lb01 conf.d]# systemctl start keepalived[root@lb02 conf.d]# ip addr |grep 10.0.0.200[root@lb02 conf.d]#6、如何判断谁提供服务
# 看哪一台有虚拟IP地址[root@lb01~]# ip address show ens363:ens36:<BROADCAST,MULTICAST,UP,LOWER_UP>mtu1500qdisc pfifo_fast stateUPgroupdefaultqlen1000link/ether00:0c:29:c4:62:f0 brdff:ff:ff:ff:ff:ff inet172.16.1.5/24brd172.16.1.255scopeglobalnoprefixroute ens36 valid_lft forever preferred_lft forever inet172.16.1.3/32scopeglobalens36