1、什么是keepalived

keepalived是集群管理中保证集群高可用的一个服务软件,用来防止单点故障。
Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web服务器从系统中剔除,当web服务器工作正常后Keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web服务器。

2、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协议的。

3、实验

实验环境:

主机  ip 服务
server1  172.25.10.1  LVS ACTIVE(主)
server4 172.25.10.4 LVS BACKUP(备)
VIP    172.25.10.100  LVS VIP
server2    172.25.10.2 Realserver1
server3    172.25.10.3  Realserver2

实验步骤:    

server1主机上:

1、配置高级yum源

 cd /etc/yum.repos.d/vim rhel-source.repo

配置文件中的内容如下:

2、从物理机上传keepalived的包,然后将包解压并进入解压目录,安装依赖包gcc和openssl-devel,如下所示:

 scp root@172.25.10.250:/home/kiosk/Desktop/keepalived-2.0.17.tar.gz .lstar zxf keepalived-2.0.17.tar.gzcd keepalived-2.0.17/lsyum install -y gcc openssl-devel

3、编译keepalived的源码包,如下所示:

./configure --prefix=/usr/local/keepalived --with-init=systemd

4、make && make install安装

make && make install

5、设定软连接,关闭上个实验的ldirectord,查看keepalived的状态,如下所示:

 lsln -s /usr/local/keepalived/etc/keepalived/ /etc//etc/init.d/ldirectord stopchkconfig ldirectord offsystemctl status keepalived.service

6、修改文件中的配置,如下所示:

vim /etc/keepalived/keepalived.conf

配置内容如下:

! Configuration File for keepalivedglobal_defs {notification_email {root@localhost  #接收警报的email地址,可以添加多个
}notification_email_from keepalived@localhost #设置邮件的发送地址smtp_server 127.0.0.1        #设置smtp swrver地址smtp_connect_timeout 30      #设置连接smtp服务器超时时间router_id LVS_DEVEL  #load balancer的标识ID,用于email警报vrrp_skip_check_adv_addr#  vrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0
}vrrp_instance VI_1 {state MASTER        #备机改成BACPUP,此状态是由priority的值来决定的,当前priority的值小于备>机的值,那么将会失去MASTER状态interface eth0      #HA监测网络接口virtual_router_id 51        #主,备机的virtual_router_id 必须相同,取值0-255priority 100        #主机的优先级,备份机改为50,主机优先级一定要大于备机advert_int 1        #主备之间的通告间隔秒数authentication {    #主备切换时的验证auth_type PASS  #设置验证类型,主要有PASS和AH两种auth_pass 1111  #设置验证密码,在一个vrrp_instance下,MASTER与BACPUP必须使用相同的密码才
能正常通信}virtual_ipaddress { #设置虚拟IP地址,可以设置多个虚拟IP地址,每行一个172.25.12.100}
}virtual_server 172.25.12.100 80 {       #定义虚拟服务器delay_loop 6        #每隔6秒查询realserver状态lb_algo rr  #lvs调度算法,这里使用轮叫lb_kind DR  #lvs是用DR模式# persistence_timeout 50      #会话保持时间,单位是秒,这个选项对于动态网页是非常有
#用的,为集群系统中 session 共享提供了一个很好的解决方案。有了这个会话保持功能,用户的
#请求会被一直分发到某个服务节点,直到超过这个会话保持时间。需要注意的是,这个会话保
#持时间,是最大无响应超时时间,也就是说用户在操作动态页面时,如果在 50 秒内没有执行任
#何操作,那么接下来的操作会被分发到另外节点,但是如果一直在操作动态页面,则不受 50 秒
#的时间限制。protocol TCP        #指定转发协议类型,有tcp和udp两种real_server 172.25.12.2 80 {   #配置服务节点weight 1        #配置服务节点的权值,权值大小用数字表示,数字越大,权
#值越高,设置权值的大小可以为不同性能的服务器分配不同的负载,可以对性能高的服务器设
#置较高的权值,而对性能较低的服务器设置相对较低的权值,这样就合理的利用和分配了系统资源TCP_CHECK{      #realserve的状态检测设置部分,单位是秒connect_timeout 3   #10s无响应超时retry 3     #重试次数delay_before_retry 3        #重试间隔}}real_server 172.25.12.3 80 {weight 1TCP_CHECK{connect_timeout 3retry 3delay_before_retry 3}}
}

7、查看ip,并删除eth0网卡上的172.25.10.100,如下所示:

 ip aip addr del 172.25.12.100/24 dev eth0ip a

8、将配置好的文件发送给server4,如下所示:

scp /etc/keepalived/keepalived.conf server4:/etc/keepalived/

server4主机上:

1、从物理机上传keepalived的包,然后将包解压并进入解压目录,安装依赖包gcc和openssl-devel,如下所示:

scp root@172.25.10.250:/home/kiosk/Desktop/keepalived-2.0.17.tar.gz .
ls
tar zxf keepalived-2.0.17.tar.gz
cd keepalived-2.0.17/
ls
yum install -y gcc openssl-devel

2、编译keepalived的源码包,如下所示:

./configure --prefix=/usr/local/keepalived --with-init=systemd

3、make  && make install安装,如下所示:

make && make install

4、进入/usr/local/keepalived/制作软链接,如下所示:

 lscd /usr/local/keepalived/lsln -s /usr/local/keepalived/etc/keepalived/ /etc/

5、进入/etc/keepalived/keepalived.conf的配置目录更改优先级为50,如下所示:

vim /etc/keepalived/keepalived.conf

物理机测试:

分别重启server1和srever4的服务,发现自动分配了ip,此时server1和server4如下所示:

当我们关闭server1的服务时会发现ip发生了漂移,会出现在server4上,如下所示:

但当我们重新开启server1的服务时会发现ip又会回来,如下所示:

LVS——DR模式+Keepalived(高可用)相关推荐

  1. ​十六周一次课(4月11日) 学习完成 18.11 LVS DR模式搭建 18.12 keepalived + LVS

    2019独角兽企业重金招聘Python工程师标准>>> 18.11 LVS DR模式搭建 准备工作:三台机器 分发器,也叫调度器(简写为dir) 192.134 rs1 192.13 ...

  2. LVS DR模式搭建,keepalived + LVS

    2019独角兽企业重金招聘Python工程师标准>>> LVS DR模式搭建 准备工作 三台机器,只需要有公网IP 分发器,也叫调度器(简写为dir)IP:192.168.133.1 ...

  3. LVS DR模式搭建、keepalived+LVS

    LVS DR 模式搭建 准备工作 三台机器,三台机器均有公网IP. 调度器(director) IP:192.168.159.131 real server 1 (real1) IP:192.168. ...

  4. lvs服务器需要开启web服务么_Centos7搭建LVS+Keepalived高可用Web

    LVS + Keepalived 高可用集群 Keepalived的设计目标是构建高可用的LVS负载均衡的集群,可以调用ipvsadm工具创建虚拟机,不仅仅用作双机热备,还可以使用keepalived ...

  5. 基于keepalived 实现VIP转移,lvs,nginx的高可用

    一.Keepalived 高可用集群的解决方案 二.VRRP的有限状态机 三.利用keepalived 实现主从VIP的切换 四. 实现在状态转变的时候自定义进行通知, 五. 实现负载均衡 六:实现n ...

  6. Linux集群架构(LVS DR模式搭建、keepalived + LVS)

    为什么80%的码农都做不了架构师?>>>    LVS DR模式搭建 准备工作:三台机器 分发器,也叫调度器(简写为dir):192.168.248.128 rs1 :192.168 ...

  7. keepalived高可用lvs集群,主/备和主/主模型

    利用keepalived高可用lvs集群,主/备和主/主: vrrp_script高可用双主nginx: keepalived主备:lvs-dr工作模型 网络搭建: 在前端2台调度器: DR1:172 ...

  8. 实践 | Centos 7搭建LVS+Keepalived高可用Web服务群集群

    LVS + Keepalived 高可用集群 Keepalived的设计目标是构建高可用的LVS负载均衡的集群,可以调用ipvsadm工具创建虚拟机,不仅仅用作双机热备,还可以使用keepalived ...

  9. LVS+keepalived高可用负载均衡集群部署(一) ----数据库的读写分离

    l  系统环境: RHEL7 l  硬件环境:虚拟机 l  项目描述:为解决网站访问压力大的问题,需要搭建高可用.负载均衡的 web集群. l  架构说明:整个服务架构采用功能分离的方式部署.后端采用 ...

最新文章

  1. python 自定义异常
  2. Android驱动开发之Hello实例
  3. 骚操作:利用强弱符号制作插件库
  4. 【CodeChef - CLIQUED 】Bear and Clique Distances(建图,缩点技巧,思维)
  5. SpringCloud |第二篇: 服务消费者(Ribbon)
  6. ubuntu 安装yar和使用
  7. 月薪30K程序员花了一个小时,用c++做出经典扫雷游戏 !
  8. linux 的 cat more less 命令有什么区别
  9. java文件日志功能_JAVA文件下载功能问题解决日志
  10. SQL Server脏读方式数据提取---NOLOCK和READPAST
  11. mysql安装,数据库连接
  12. 1.13 单用户模式;1.14 救援模式;1.15 克隆虚拟机;1.16 Linux机器相互登录
  13. (PyTorch0.4.0) AttributeError: module 'torch' has no attribute 'flatten'
  14. Vue之echarts圆饼图详解
  15. 生成PDF并上传到图片服务器
  16. CSDN云IDE怎样克隆代码
  17. Pr 入门教程如何创建动作序列?
  18. Flask源码阅读(六)——Flash消息
  19. c++builder 6.0中OnCliked= fun实现的原理
  20. 解决网页中文字无法选中的问题

热门文章

  1. SpringCloud工作笔记045---SpringCloud分布式服务部署常用端口
  2. oracle数据库笔记---pl/sql的基础使用方法
  3. 2011浙大878计算机专业基础综合大题答案解析
  4. eclipse中的一个编译错误修正
  5. java 写一个简单的计算器
  6. linux 中文编码环境,linux中文编码问题总结
  7. 随想录(尝试wsl安装)
  8. 随想录(写给8-10年工作经验的同学)
  9. python的this_python中的this——self | 学步园
  10. java 保存 设置_如何在菜单中保存设置