转载:
一、直接挂载方式:
这里我们创建两个虚拟机环境,IP地址分别为192.168.209.121和192.168.209.122,如下图所示:
在192.168.209.122上添加一个VIP地址为:192.168.209.22,执行如下命令:
ifconfig eth0:1 192.168.209.22 broadcast 192.168.209.255 netmask 255.255.255.0 up
eth0:1表示这个VIP绑定的目标网卡设备,192.168.209.22就是VIP的值,广播地址为192.168.209.255,子网掩码为:255.255.255.0,up表示立即启用这个VIP。
接着我们通过route命令,在路由表上添加对这个VIP的路由信息
route add -host 192.168.209.22 dev eth0:1
此时,我们在192.168.209.122 这台虚拟机上执行ifconfig命令如下:
多了一张eth0:1网卡,说明VIP创建成功。
接下来,我们ping 192.168.209.22
如下图:
ping成功,说明我们的VIP创建测试成功。
注意:这种方式的VIP信息在主机重启后会消失,所以我们最好是将创建VIP的命令写成一个脚本vip.sh,将脚本配置到环境变量和开机启动项:
脚本信息如下:
#!/bin/bash
ifconfig eth0:1 192.168.209.22 broadcast 192.168.209.255 netmask 255.255.255.0 up
route add -host 192.168.209.22 dev eth0:1
二、keepalived方式vip:
keepalived第三方设置vip方式...通过vrrp协议的keepalived.
在两台机器上做高可用,分别问A,B. 两台服务都要安装keepalived,yum安装.
假设服务为nginx的高可用。A,B同时装有nginx服务。
A: 10.200.11.1 master,keepalived,nginx
B:10.200.11.2 backup ,keepalived,nginx
vip:10.200.11.3
yum install keepalived -y
keepalived -V
cd /etc/keepalived && cat keepalived.conf
mastr节点配置:
global_defs { router_id do118 vrrp_skip_check_adv_addr vrrp_garp_interval 0 vrrp_gna_interval 0 script_user root enable_script_security } vrrp_script chk_nginx { script "/usr/bin/killall -0 nginx && exit 0 || exit 1"
#script "/usr/bin/pkill -0 nginx" interval 1 weight -10 fall 2 rise 1 } vrrp_instance VI_1 { state MASTER # master主节点 interface ens192 # 网卡 virtual_router_id 118 #master和backup一致 priority 100 # master>backup advert_int 1 unicast_src_ip 10.200.11.1 unicast_peer { 10.200.11.2 } authentication { auth_type PASS auth_pass Abc@123 } virtual_ipaddress { 10.200.11.3/24 brd 10.200.11.255 dev ens192 label ens192:1 } track_script { chk_nginx } }
slave节点配置:
global_defs { router_id do116 vrrp_skip_check_adv_addr vrrp_garp_interval 0 vrrp_gna_interval 0 script_user root enable_script_security } vrrp_script chk_nginx { script "/usr/bin/killall -0 nginx && exit 0 || exit 1"
#script "/usr/bin/pkill -0 nginx" interval 1 weight -10 fall 2 rise 1 } vrrp_instance VI_1 { state BACKUP # 从节点,值:BACKUP interface ens192 # 网卡 virtual_router_id 118 #需路由ID,与主节点一致 priority 95 # 小于主节点值 advert_int 1 unicast_src_ip 10.200.11.2 unicast_peer { 10.200.11.1 } authentication { auth_type PASS auth_pass Abc@123 } virtual_ipaddress { 10.200.11.3/24 brd 10.200.11.255 dev ens192 label ens192:1 } track_script { chk_nginx } }
分别启动服务:
Systemctl start keepalived
Systemctl start nginx
ifconfg 查看ip情况
停掉主节点nginx服务,观察vip是否漂移到backup节点。