Keepalived实现服务高可用认识
一、首先说明Keepalived服务
何为keepalived?
keepalived软件除了可以管理LVS软件外,还能解决一些服务的高可用短板。如:Nginx、Haproxy、MySQL。
Keepalived软件底层是通过VRRP实现的高可用功能。(VRRP:虚拟路由器冗余协议,解决静态路由单点故障问题,就是个别节点故障时其它节点补上,使网络不间断运行。)
Keepalived可管理LVS功能,可对LVS下面节点进行健康检查功能,实现系统网络的高可用功能。
二、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官方目前还是推荐用明文的方式配置认证类型和密码。
Keepalived的工作原理:
Keepalived高可用对之间是通过 VRRP进行通信的, VRRP是遑过竞选机制来确定主备的,主的优先级高于备,因此,工作时主会优先获得所有的资源,备节点处于等待状态,当主挂了的时候,备节点就会接管主节点的资源,然后顶替主节点对外提供服务。
在 Keepalived服务对之间,只有作为主的服务器会一直发送 VRRP广播包,告诉备它还活着,此时备不会枪占主,当主不可用时,即备监听不到主发送的广播包时,就会启动相关服务接管资源,保证业务的连续性.接管速度最快可以小于1秒。
三、keepalived软件实践使用
1、安装
# yum安装
yum install keepalived -y
# keepalived配置文件
# a查看配置文件
rpm -qc keepalived
/etc/keepalived
/etc/keepalived/keepalived.conf #keepalived服务主配置文件
/etc/rc.d/init.d/keepalived #服务启动脚本
/etc/sysconfig/keepalived
/usr/bin/genhash
/usr/libexec/keepalived
/usr/sbin/keepalived
2、解析配置文件
# a.全局配置文件
global_defs { #全局配置
notification_email { 定义报警邮件地址
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc #定义发送邮件的地址
smtp_server 192.168.200.1 #邮箱服务器
smtp_connect_timeout 30 #定义超时时间
router_id LVS_DEVEL #定义路由标识信息,相同局域网唯一
}
# b、虚拟IP配置vrrp:配置管理LVS
vrrp_instance VI_1 { #定义实例
state MASTER #状态参数 master/backup 只是说明
interface eth0 #虚IP地址放置的网卡位置
virtual_router_id 51 #同一家族要一直,同一个集群id一致
priority 100 # 优先级决定是主还是备 越大越优先
advert_int 1 #主备通讯时间间隔
authentication { # ↓
auth_type PASS #↓
auth_pass 1111 #认证
} #↑
virtual_ipaddress { #↓
192.168.200.16 设备之间使用的虚拟ip地址
192.168.200.17
192.168.200.18
}
}
扩展:
1、列出所有安装的Jenkins
rpm -qa | grep jenkins
2、软件是否安装;例如:jenkins是否安装
rpm -q | grep jenkins
3、rpm -ql 列出软件包安装的文件
rpm -ql jenkins
4、可以直接使用 rpm -qal |grep mysql 查看mysql所有安装包的文件存储位置
rpm -qal |grep jenkins #查看jenkins所有安装包的文件存储位置
5、查看配置文件
rpm -qc keepalived