转载:
一、直接挂载方式:
这里我们创建两个虚拟机环境,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节点。