【Keepalived】安装、配置文件详解、主备、热备、LVS的配置

安装Keepalived

1.下载Keepalived的安装包https://www.keepalived.org/download.html
2.上传到/home/software下
3.进入到/home/software目录下
4.解压

tar -zxvf keepalived-2.0.18.tar.gz

5.解压之后进入到解压的目录,使用configure命令配置安装目录与核心配置文件所在位置

./configure --prefix=/usr/local/keepalived --sysconf=/etc

prefix keepalived的安装位置
sysconf keepalived核心配置文件所在的位置,固定位置,改成其他位置keepalived启动不了,/var/log/message中会报错

5.1 配置过程中可能会出现警告信息

*** WARNING - this build will not support IPVS with IPv6. Please install libnl/libnl-3 dev libraries to support IPv6 with IPVS.

5.2安装libnl/libnl-3依赖

yum -y install libnl libnl-devel  

5.3重新configure一下,ok。
6.安装keepalived

make && make install

7.进入到/etc/keepalived,该目录下为keepalived核心配置文件 keeplived.conf
8.keeplived.conf

global_defs {
   # 路由id:当前安装keepalived的节点主机标识符,保证全局唯一
   router_id keep_171
}

vrrp_instance VI_1 {
    # 表示状态是MASTER主机还是备用机BACKUP
    state MASTER
    # 该实例绑定的网卡
    interface ens33
    # 保证主备节点一致即可
    virtual_router_id 51
    # 权重,master权重一般高于backup,如果有多个,那就是选举,谁的权重高,谁就当选
    priority 100
    # 主备之间同步检查时间间隔,单位秒
    advert_int 2
    # 认证权限密码,防止非法节点进入
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    # 虚拟出来的ip,可以有多个(vip)
    virtual_ipaddress {
        192.168.1.161
    }
}

9.主备机配置好keeplived之后测试如下:
第一种情况(keeplived宕机):主节点keeplived 宕机之后,vip去飘移到备机上面,Nginx可以正常提供服务;keeplived恢复之后,vip会重新飘移到主机上面,重新恢复服务。
第二种情况(Nginx宕机):主节点Nginx宕机之后由于keeplived没有宕机所以vip依然在主节点,这样Nginx就不能正常的提供服务了,需要做如下操作:
a.编写脚本 并且chmod赋值权限.

#!/bin/bash

A=`ps -C nginx --no-header |wc -l`
# 判断nginx是否宕机,如果宕机了,尝试重启
if [ $A -eq 0 ];then
    /usr/local/nginx/sbin/nginx
    # 等待一小会再次检查nginx,如果没有启动成功,则停止keepalived,使其启动备用机
    sleep 3
    if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
        killall keepalived
    fi
fi

b.配置keeplived监听nginx的脚本.

vrrp_script check_nginx_alive {
    script "/etc/keepalived/check_nginx_alive_or_not.sh"
    interval 2 # 每隔两秒运行上一行脚本
    weight 10 # 如果脚本运行成功,则升级权重+10
    # weight -10 # 如果脚本运行失败,则升级权重-10
}

c.在vrrp_instance中新增监控的脚本.
global_defs {
router_id keep_171
}

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.1.161
}
}

vrrp_instance VI_2 {
state BACKUP
interface ens33
virtual_router_id 52
priority 80
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.162
}
}:

track_script {
    check_nginx_alive   # 追踪 nginx 脚本
}

d.重启keeplived.
10 双机热备实现方案:两个vip互相飘移,互为主备.
主节点配置

global_defs {
   router_id keep_171
}

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.1.161
    }
}

vrrp_instance VI_2 {
    state BACKUP
    interface ens33
    virtual_router_id 52
    priority 80
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.1.162
    }
}

从节点配置

global_defs {
   router_id keep_172
}

vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 51
    priority 80
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.1.161
    }
}

vrrp_instance VI_2 {
    state MASTER
    interface ens33
    virtual_router_id 52
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.1.162
    }
}

LVS的配置详情

Lvs和Leepaliveds是无缝衔接的,在keepalived.conf 的配置文件详解如下:

# 配置集群地址访问的IP和端口好,端口和nginx保持一致,都是80
virual_server 192.168.1.50 80{
	#健康检查的时间,单位:s
	delay_loop 6
	#配置负载均衡的算法,默认是轮询
	lb_algo rr
	#设置LVS的模式 NAT|TUN|DR
	lb_kind DR
	# 设置回话持久化事件
	persistence_timeout 5
	#协议
	protool TCP
	#负载均衡的真实服务器,也就是nginx节点的具体的真实ip地址
	real_server 192.168.1.171 80{
		# 轮询的默认权重配比设置为1
		weight 1
		# 设置健康检查
		TCP_CHECK{
			# 检查的80端口
			connect_port 80
			# 超时时间 2s
			connect_timeout 2
			# 重试次数 2次
			nb_get_retry 2
			# 间隔时间 3s
			delay_befor_retry 3
		}
	}
	#负载均衡的真实服务器,也就是nginx节点的具体的真实ip地址
	real_server 192.168.1.172 80{
		# 轮询的默认权重配比设置为1
		weight 1
		# 设置健康检查
		TCP_CHECK{
			# 检查的80端口
			connect_port 80
			# 超时时间 2s
			connect_timeout 2
			# 重试次数 2次
			nb_get_retry 2
			# 间隔时间 3s
			delay_befor_retry 3
		}
	}

}

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值