准备的环境信息:
主备服务器(同专有网络,同交换机下):
主:内网ip:172.16.1.187 操作系统:centos 7.9 64位
备:内网ip:172.16.1.186 操作系统:centos 7.9 64位
创建的高可用虚拟Havip私网ip(与服务器同专有网络,同交换机):172.16.1.185
1,创建虚拟高可用Havip:
(未有虚拟高可用Havip,需要先申请,申请公测参考:申请公测)
(1)登录专有网络VPC控制台
(2)在左侧导航栏,单击高可用虚拟IP
(3)在顶部菜单栏处,选择要创建HaVip的地域(此处选择华北3(张家口地域))
(4)在高可用虚拟IP页面,单击创建高可用虚拟IP(根据页面提示选择,专有网络,交换机,以及分配私网ip地址,此处分配的私网地址是:172.16.1.185)
2,主服务器:172.16.1.187 安装keepalived/nginx(nginx 用于测试访问):
(1)主服务器安装配置nginx测试访问服务:
yum -y install nginx #安装nginx
systemctl start nginx #启动nginx服务
设置测试页面:
echo 'testzhu' > /usr/share/nginx/html/index.html
测试访问测试页面:
curl http://172.16.1.187
(可选)设置nginx服务开机自启动:systemctl enable nginx
(2)主服务器配置keepalived:
yum install keepalived #安装keepalived
vim /etc/keepalived/keepalived.conf #编辑配置文件
以下是配置文件内容(默认的配置文件中会有部分多出的配置,可以自行#注释,或者删除多余配置):
! Configuration File for keepalived
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
# vrrp_strict #这个是原本有的配置,需要手动注释一下(由于keepalived严格模式无法无法使用单播,所有需要注释)
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
state MASTER#主节点,备节点会变化,注意调整
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
unicast_src_ip 172.16.1.187#这里是主服务器私网ip
unicast_peer {
172.16.1.186#备服务器的私网ip,如果有多个,可以换行添加(对端ip,比如主的这里写备的内网ip)
}
virtual_ipaddress {
172.16.1.185 label eth0:0#创建的Havip私网ip
}
}
}
调整好配置文件通过:wq! 保存退出。
systemctl start keepalived #启动服务
systemctl status keepalived #查看服务状态没有报错的话,一般是如附件状态,服务是正常启动的,如果有报错,需要根据报错检查配置文件。
3,备服务器:172.16.1.186 安装keepalived/nginx(nginx 用于测试访问):与主步骤基本一致
(1)主服务器安装配置nginx测试访问服务:
yum -y install nginx #安装nginx
systemctl start nginx #启动nginx服务
设置测试页面:
echo 'testbei' > /usr/share/nginx/html/index.html
测试访问测试页面:
curl http://172.16.1.186
(2)主服务器配置keepalived:
yum install keepalived #安装keepalived
vim /etc/keepalived/keepalived.conf #编辑配置文件
以下是配置文件内容(默认的配置文件中会有部分多出的配置,可以自行#注释,或者删除多余配置):
! Configuration File for keepalived
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
# vrrp_strict #这里要手动注释
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
state BACKUP#备节点,主节点会变化,注意调整
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
unicast_src_ip 172.16.1.186#这里是备服务器私网ip
unicast_peer {
172.16.1.187#主服务器的私网ip,如果有多个,可以换行添加(对端ip,比如备的这里写主的内网ip)
}
virtual_ipaddress {
172.16.1.185 label eth0:0#创建的Havip私网ip
}
}
}
调整好配置文件通过:wq! 保存退出。
systemctl start keepalived #启动服务
systemctl status keepalived #查看服务状态没有报错的话,一般是如附件状态,服务是正常启动的,如果有报错,需要根据报错检查配置文件。
4,绑定Havip到主备服务器:
(1)登录专有网络VPC控制台
(2)找到对应创建的Havip,点击实例ID(如:havip-8vb*****)进入到详情,点击:ECS实例中的立即绑定进行绑定。(重复步骤将备服务器也绑定好)
5,测试访问:
由于此测试没有配置弹性公网EIP,所以通过Havip的私网ip测试的,可以在主备任意服务器中测试结果:
主服务器:ifconfig 检查Havip已经分配,Havip分配私网ip可以ping通信
备服务器:ifconfig 检查Havip未分配,Havip分配私网ip可以ping通信
测试Havip主备切换:
主:Havip已分配,测试访问:curl http://172.16.1.185
返回:testzhu
停止主的keepalived服务:
主:Havip未分配,备Havip分配,测试访问:curl http://172.16.1.185
返回:testbei
遇到问题整理:
1,配置文件中# vrrp_strict #这里要手动注释 未注释,提示报错:(VI_1): No VIP specified; at least one is required
2,配置文件中172.16.1.185 label eth0:0#创建的Havip私网ip 这里开始没有设置: label eth0:0 ,ifconfig 没有找到Havip的信息。
3,备节点配置文件:state BACKUP#备节点,主节点会变化,注意调整 根据主的配置成了:state MASTER,导致备节点Havip不切换。
4,默认的配置文件:/etc/keepalived/keepalived.conf 会有些默认的配置,没有注释,提示:
Activating healthchecker for service [10.10.10.2]:1358
Removing service [192.168.201.100]:443 from VS [192.168.200.100]:443
会有些默认的校验,将配置注释重新启动服务即可。