负载均衡,负责分发任务的 是单节点
那么如果这个单节点挂掉了,我们后面不管多少服务器,都将不能使用。
Keepalived 程序,是抢占IP用的。
抢占到IP的就是主服务,没有抢到的就是备用。
备用的就一直等待时机,当主服务器挂掉,备用就会抢占这个IP。
这个就是双机热备。
安装keepalived
# ubuntu
apt-get update
apt-get install keepalived
# centos7
# 下载地址 https://www.keepalived.org/download.html
tar -zxvf keepalived-2.0.16.tar.gz
cd keepalived-2.0.16
./configure --prefix=/usr/local/keepalived
make && make install
# 若出现警告 不支持IPV6字样,运行下面命令后./configure
yum -y install libnl libnl-devel
修改配置文件
vim /usr/local/keepalived/etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
state MASTER # keepalived的身份,MASTER、slave
interface eth0 # 定义的虚拟IP保存在哪个网卡里
virtual_router_id 51 # 取id 0-255
priority 100 # 权重,越高越优先
advert_int 1 # 心跳检测的时间间隔 秒
authentication { # 心跳检测对外开放的账号
auth_type PASS
auth_pass 1111
}
virtual_ipaddress { # 绑定抢占的虚拟IP
192.168.200.16
192.168.200.17
192.168.200.18
}
}
宿主机
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.99.150
}
}
virtual_server 192.168.99.150 8888 {
delay_loop 3
lb_algo rr
lb_kind NAT
persistence_timeout 50
protocol TCP
real_server 172.18.0.201 8888 {
weight 1
}
}
virtual_server 192.168.99.150 3306 {
delay_loop 3
lb_algo rr
lb_kind NAT
persistence_timeout 50
protocol TCP
real_server 172.18.0.201 3306 {
weight 1
}
}
docker容器内
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
172.18.0.201
}
}
将 keepalived 注册为系统服务,
这儿复制三个文件到指定的系统启动文件夹即可,
源文件的目录 keepalived-1.4.2/keepalived/etc/init.d 的两个个快捷启动文件和 keepalived 安装目录下的 /usr/local/keepalived 目录下一个配置文件需要复制
cp /root/keepalived-2.0.16/keepalived/etc/init.d/keepalived /etc/init.d/
cp /root/keepalived-2.0.16/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/