文章目录
一、Keepalived简介
官网:https://www.keepalived.org/
keepalived是集群管理中
保证集群高可用
的一个服务软件,其功能类似于heartbeat,用来防止单点故障
1.1、keepalived工作原理
-
keepalived是以VRRP协议为实现基础的,
VRRP全称Virtual Router Redundancy Protocol
,即虚拟路由冗余协议。 -
虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该路由器所在局域网内其他机器的默认路由为该vip),
master会发组播,当backup收不到vrrp包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个backup当master
。这样的话就可以保证路由器的高可用了。 -
keepalived主要有三个模块,分别是core、check和vrrp。
core模块为keepalived的核心
,负责主进程的启动、维护以及全局配置文件的加载和解析。
check
负责健康检查,包括常见的各种检查方式。
vrrp
模块是来实现VRRP协议的。
1.2、 keepalived的配置文件
keepalived只有一个配置文件keepalived.conf
,里面主要包括以下几个配置区域
- global_defs: 主要是配置故障发生时的通知对象以及机器标识(邮件通知)
- static_ipaddress :节点ip (通常不用改)
- static_routes :路由信息(通常不用改)
- vrrp_script :做健康检查的
- vrrp_instance:用来定义对外提供服务的VIP区域及其相关属性
- virtual_server: 在超大型的LVS中用到(通常用不到)
1.3、 架构图
二、Keepalived安装
端口防火墙记得放行!!!
1.1、2种安装方式
- yum安装
- 源码编译安装
1.2、 方式一 yum安装
配置文件看方式二里面的说明
#yum 安装
yum -y install keepalived
# 查看安装路径
rpm -ql keepalived
1.3、方式二 源码编译安装
下载gcc依赖
#查看版本
gcc -v
#安装gcc
yum -y install gcc openssl-devel libnfnetlink-devel
下载方式有2种:
-
去官网下载压缩包上传解压
-
使用wget安装
#查看是否安装wget rpm -qa|grep "wget" #下载 wget yum -y install wget #下载keepalived 版本自己指定 no-check-certificate不检查安全证书 wget https://www.keepalived.org/software/keepalived-1.4.5.tar.gz --no-check-certificate
软件下载到opt目录
如图:
解压到/usr/local/src
tar -zxvf keepalived-1.4.5.tar.gz -C /usr/local/src
安装依赖插件
yum install -y gcc openssl-devel popt-devel
进入解压后的目录,进行配置,进行编译
#进入源码目录
cd /usr/local/src/keepalived-1.4.5
# 先指定keepalived安装的的位置
./configure --prefix=/usr/local/keepalived
#编译+安装
make && make install
拷贝配置文件
# 配置文件init.d拷贝
cp /usr/local/src/keepalived-1.4.5/keepalived/etc/init.d/keepalived /etc/init.d/
#创建目录
mkdir /etc/keepalived
#配置文件keepalived.conf拷贝
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
#拷贝keepalived
cp /usr/local/src/keepalived-1.4.5/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
# 拷到sbin 让每个目录都能执行(运行脚本)
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
修改配置文件
vi /etc/keepalived/keepalived.conf
#vi 命令说明-编辑模式下
set nu #显示行号
shift g #到末尾
1 shift g #去第一行
%d #清空文件
set nonu #关闭行号
内容:
! Configuration File for keepalived
#全局配置项
bal_defs {
#keepalived发送主备切换发送邮箱通知
notification_email {
11202@qq.com
}
notification_email_from keepalived@showjoy.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
#主机配MASTER,备机配BACKUP--说明是主机还是备机
state MASTER
#所在机器网卡 用 ip addr 或ifconfig
interface eth1
virtual_router_id 51
#数值越大优先级越高-主机要比备机大
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
#虚拟IP 阿里云禁止虚拟ip--还要避免ip漂移
192.168.56.200
}
}
#这个可以不指定,指定了就相当于使用了LVS的配置,需要安装ipvs模块,
#即对haporxy有进行了负载均衡,如果不配,默认只有一个haporxy提供服务,
#这边也可以指定多个 -这边类似于nignx的配置
virtual_server 192.168.56.200 48066 {
delay_loop 6
lb_algo rr
lb_kind NAT
persistence_timeout 50
protocol TCP
#这个56.100上的haporxy进行负载(保护)
real_server 192.168.56.100 48066 {
weight 1
TCP_CHECK {
connect_timeout 3
retry 3
delay_before_retry 3
}
}
#这个56.101上的haporxy进行负载(保护)
real_server 192.168.56.101 48600 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
virtual_server 192.168.56.200 7777 {
delay_loop 6
lb_algo rr
lb_kind NAT
persistence_timeout 50
protocol TCP
#这个56.100上的haporxy进行负载(保护) 7777是haporxy的后台管理端口
real_server 192.168.56.100 7777 {
weight 1
TCP_CHECK {
connect_timeout 3
retry 3
delay_before_retry 3
}
}
#这个56.101上的haporxy进行负载(保护) 7777是haporxy的后台管理端口
real_server 192.168.56.101 7777 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
启动
service keepalived start
查看状态和进程
service keepalived status
ps -ef |grep keepalived
如图:
这样Keepalived就配置成功了,在如法炮制安装在192.168.56.101,在配置文件中指定成备机,这样Keepalived的主备就配置完成,可以实现自主切换,代理形成高可用
1.4、测试
haproxy 查看
==> HAProxy安装及使用-Linux
说明:
-
192.168.56.100去访问haproxy
http://192.168.56.100
:7777/admin -
192.168.56.200–代理了haproxy在去访问haproxy的后台
http://192.168.56.200
:7777/admin
效果如图: