目录
? ? ?Keepalived 通过虚拟ip绑定物理机网络接口的方式实现目标服务的高可用代理,被代理的服务上都需要安装 Keepalived?
? ? 环境信息:
? ? ? ? ?实际ip: 192.168.122.118、192.168.122.119
? ? ? ? ?虚拟ip: 192.168.122.135
yum install -y gcc gcc-c++ wget popt-devel openssl openssl-devel
yum install -y libnl libnl-devel libnl3 libnl3-devel
yum install -y libnfnetlink-devel
? 官网下载地址:?Keepalived for Linux
tar -zxvf keepalived-2.2.8.tar.gz
? 进入解压好的keepalived目录
./configure --prefix=/software/keepalived
make && make install
mkdir /etc/keepalived
cd /etc/keepalived
vim keepalived.conf
# 输入以下内容
#master
global_defs {
notification_email {
}
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_script check_kibana {
script "/opt/module/chk_kibana.sh" #这个是检测脚本,当挂了之后做的事情
interval 22
weight 2
}
vrrp_instance VI_1 {
state BACKUP #两台配置此处均是BACKUP,设为BACKUP将根据优先级决定主或从
interface ens160 #绑定的网卡, 用 ip addr 命令查看本机网卡名字
virtual_router_id 66 #虚拟路由标识,这个标识是一个数字(取值0-255之间)确保和slave相同,同网内不同集群此项必须不同,否则发生冲突。
priority 100 #用来选举master的,(取值0-255之间),此处master上设置为100,其他备用节点必须比这个值小
advert_int 1 #多久进行一次master选举(单位:s,可以认为是健康查检时间间隔)
nopreempt #不抢占,即允许一个priority比较低的节点作为master
authentication {
auth_type PASS #认证区域
auth_pass 1111 # 节点通讯密码 ,不同节点的通讯方式和密码必须一样
}
track_script {
check_kibana #指定核对的脚本,check_kibana是上述自定义的,这端配置必须写在“vrrp_script check_kibana ”这段配置的后面
}
virtual_ipaddress {
192.168.122.135/24 #虚拟ip,如果master宕机,虚拟ip会自动漂移到slave上,虚拟ip必须和实际的ip在同一个网段
}
}
virtual_server 192.168.122.135 5601 {
delay_loop 3 #健康检查时间间隔,单位秒
lb_algo rr #负载调度算法,支持的算法:rr|wrr|lc|wlc|lblc|sh|dh
lb_kind DR #LVS的类型:有NAT|DR|TUN
persistence_timeout 50 #会话保持时间,单位秒(可以适当延长时间以保持session)
protocol TCP #转发协议类型,有TCP和UDP两种
real_server 192.168.122.118 5601 { #定义RS 服务
weight 1 #权重
}
}
vim /opt/module/chk_kibana.sh
# 输入以下内容
#!/bin/bash
port_num=$(ss -nltp|grep -wc 5601)
if [ $port_num -eq 0 ];then
pkill keepalived
fi
# 权限处理
chmod +x chk_kibana.sh
sed -i 's/\r$//' chk_kibana.sh
systemctl start keepalived.service
systemctl status keepalived.service
ip addr
使用上述命令,会看到有且只有一个机器的网卡绑定了虚拟ip?
server.host: "0.0.0.0"