keepalived 简单安装部署应用

Keepalived与VRRP详解
本文详细介绍了Keepalived高可用系统的工作原理及VRRP协议的基础知识。包括如何通过VRRP协议解决静态路由的单点故障问题,以及Keepalived如何利用VRRP实现主备切换,确保业务连续性。此外,还提供了部署Keepalived及配置示例。

如果你在面试时,要你解答Keepalived的工作原理,建议用自己的话回答如下内容,以下为对面试官的表述:

Keepalived高可用对之间是通过VRRP通信的,因此,我从VRRP开始给您讲起:
1)VRRP,全称Virtual Router Redundancy Protocol,中文名为虚拟路由冗余协议,VRRP的出现是为了解决静态路由的单点故障。
2)VRRP是通过一种竞选协议机制来将路由任务交给某台VRRP路由器的。
3)VRRP用IP多播的方式(默认多播地址(224.0.0.18))实现高可用对之间通信。
4)工作时主节点发包,备节点接包,当备节点接收不到主节点发的数据包的时候,就启动接管程序接管主节点的资源。备节点可以有多个,通过优先级竞选,但一般Keepalived系统运维工作中都是一对。
5)VRRP使用了加密协议加密数据,但Keepalived官方目前还是推荐用明文的方式配置认证类型和密码。
介绍完了VRRP,接下来我再介绍一下Keepalived服务的工作原理:
Keepalived高可用对之间是通过VRRP进行通信的,VRRP是通过竞选机制来确定主备的,主的优先级高于备,因此,工作时主会优先获得所有的资源,备节点处于等待状态,当主挂了的时候,备节点就会接管主节点的资源,然后顶替主节点对外提供服务。
在Keepalived服务对之间,只有作为主的服务器会一直发送VRRP广播包,告诉备它还活着,此时备不会抢占主,当主不可用时,即备监听不到主发送的广播包时,就会启动相关服务接管资源,保证业务的连续性。接管速度最快可以小于1秒。

部署keepalived

部署好负载均衡服务
 [root@lb01 ~]# curl -A "iphone" -H host:www.jinc.org 10.0.0.6/test.html
 web01 mobile user
 [root@lb01 ~]# curl -A "chrome" -H host:www.jinc.org 10.0.0.6/test.html
 web02 pc user for google
 [root@lb01 ~]# curl -A "IE" -H host:www.jinc.org 10.0.0.6/test.html
 web03 default
安装高可用软件
 yum install -y keepalived
 
 [root@lb02 ~]# rpm -ql keepalived
 /etc/keepalived
 /etc/keepalived/keepalived.conf
 /etc/rc.d/init.d/keepalived
编写keepalived配置文件

全局配置:
global_defs {
#notification_email {
# oldboy@qq.com
#}
#notification_email_from Alexandre.Cassen@firewall.loc
#smtp_server 192.168.200.1
#smtp_connect_timeout 30
router_id lb01 — 定义keepalived主机身份信息, 身份信息不能有重复的
}
vrrp_instance oldboy { — 定义家族名称
state MASTER — 指定家族所处家族身份(MASTER/BACKUP) 描述信息
interface eth0 — 指定生成的vip地址放在哪一块网卡上
virtual_router_id 51 — 家族标识
priority 100 — 优先级越高,就会成为主
advert_int 1
authentication { — 认证机制
auth_type PASS
auth_pass 1111
}
virtual_ipaddress { — 生成指定的vip地址
10.0.0.3
}
}

keepalived管理nginx程序服务问题

nginx服务停止时,keeplived服务一起停止
编写脚本(主)
 #!/bin/bash
 nginx_info=`ps -ef |grep -c [n]ginx`
 if [ $nginx_info -lt 2 ]
 then
 	/etc/init.d/keepalived stop
 fi
 
 ps:脚本名称不要和进程名相同
     在执行调试脚本命令时,出现几个+号就表示有几个shell空间执行了命令操作,输出的数值信息会累加

weight 参数使用原理

参数为正:
 1. 判断脚本执行结果是否为真: 为真做求和运算  priority+weight 
 2. 判断脚本执行结果是否为假: 为假不做运算    priority
脚本信息
 if [ $nginx_info -ge 2 ]    
 then
    echo "nginx is start~"    为真时: nginx启动--priority+weight 
    exit 0
 else
    echo "nginx is stop~"     为假时: nginx停止--priority
    exit 1
 fi
配置文件中设置:
 lb01: weight=60 priority=90
 lb02: priority=100
参数为负数的时候:
 1. 判断脚本执行结果是否为真: 为真不做运算    priority
 2. 判断脚本执行结果是否为假: 为假做求差运算  priority-weight	
脚本信息
 if [ $nginx_info -ge 2 ]    
 then
    echo "nginx is start~"    为真时: nginx启动--priority
    exit 0
 else
    echo "nginx is stop~"     为假时: nginx停止--priority-weight
    exit 1
 fi	
配置文件中设置:
 lb01: priority=110  weight=-20
 lb02: priority=100 

安全优化: 只允许用户访问网站架构虚IP地址, 不能访问真实的负载均衡服务器物理地址

编写配置文件,nginx.conf
 listen   10.0.0.3:80;
 改为监听虚IP
修改内核参数,实现可以临时监听网卡上不存在的ip
 [root@lb01 scripts]# echo 'net.ipv4.ip_nonlocal_bind = 1' >>/etc/sysctl.conf
 [root@lb01 scripts]# sysctl -p
 重启nginx服务
 nginx -s stop 
 nginx

keepalived双主配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值