当前位置: 首页 > news >正文

LVS + Keepalived 高可用群集部署

简介:
keepalived是专门针对LVS设计的一款强大的辅助工具,主要用来提供故障切换(Failover)和健康检查(Health Checking)功能——判断LVS负载调度器、节点服务器的可用性,及时隔离并替换为新的服务器,当故障主机修复后将其重新加入群集。
Keepalived采用VRRP(Virtual Router Redundancy Protocl,虚拟路由冗余协议)热备份协议,以软件的方式实现Linux服务器的多机热备功能。

实验拓扑:
LVS + Keepalived 高可用群集部署

实验环境:

序号名称类型IP地址
1keepalived 主centos7192.168.10.10
2keepalived 从centos7192.168.10.20
3节点服务器 web1centos7192.168.10.100
4节点服务器 web2centos7192.168.10.200
5客户机 clientcentos7192.168.10.15

实验过程:
一、调度服务器
1、安装环境部署、关闭防火墙、安全功能,两台调度服务器相同操作

[root@localhost ~]#yum install keepalived ipvsadm -y
[root@localhost ~]#systemctl stop firewalld.service 
[root@localhost ~]#setenforce 0

2、修改网卡为仅主机模式,配置静态IP,两台调度服务器相同操作,DR 1:192.168.10.10 DR 2:192.168.10.20

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
[root@localhost ~]#service network restart

LVS + Keepalived 高可用群集部署
3、开启路由功能、关闭重定向功能,两台调度服务器相同操作

[root@localhost ~]#vi /etc/sysctl.conf
[root@localhost ~]#sysctl -p

LVS + Keepalived 高可用群集部署
4、配置虚拟IP,并开启。注意:如果DR开启虚拟网卡时报错,可用 service network restart 重启网卡,再次开启即可成功。

[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]#cp ifcfg-ens33 ifcfg-ens33:0
[root@localhost network-scripts]#vim ifcfg-ens33:0
      DEVICE=ens33:0
      ONBOOT=yes
      IPADDR=192.168.10.2
      NETMASK=255.255.255.0
[root@localhost ~]#ifup ens33:0

DR 1:
LVS + Keepalived 高可用群集部署
DR 2:
LVS + Keepalived 高可用群集部署
5、编辑服务脚本,并执行,两台调度服务器相同操作

[root@localhost ~]# cd /etc/init.d/
[root@localhost ~]#vim dr.sh

LVS + Keepalived 高可用群集部署

[root@localhost ~]#chmod +x dr.sh  
[root@localhost ~]#service dr.sh start

二、节点服务器
1、安装环境部署,关闭防火墙、安全功能,两台节点服务器同样操作

[root@localhost ~]#yum install httpd -y
[root@localhost ~]#systemctl stop firewalld.service 
[root@localhost ~]#setenforce 0

2、开启网页服务,并设置测试页面,web1和web2测试页面加以区分

[root@localhost ~]#systemctl start httpd.service
[root@localhost ~]#cd /var/www/html/
[root@localhost html]#echo "this is aaa" > index.html      #web1
[root@localhost html]#echo "this is bbb" > index.htm       #web2

3、修改网卡为仅主机模式,web1配置静态IP为192.168.10.100,web2:192.168.10.200,并配置回环网卡的虚拟IP

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
[root@localhost ~]#service network restart
[root@localhost ~]#cd /etc/sysconfig/network-scripts
[root@localhost network-scripts]#cp ifcfg-lo ifcfg-lo:0
[root@localhost network-scripts]#vim ifcfg-lo:0
      DEVICE=lo:0
      IPADDR=192.168.10.2
      NETMASK=255.255.255.0
      ONBOOT=yes

web1:
LVS + Keepalived 高可用群集部署
web2:
LVS + Keepalived 高可用群集部署

4、编辑服务脚本,并执行,两台节点服务器相同操作

[root@localhost ~]#cd /etc/init.d/
[root@localhost ~]#vim web.sh

LVS + Keepalived 高可用群集部署

[root@localhost ~]#chmod +x web.sh
[root@localhost ~]#service web.sh start
[root@localhost ~]#ifup lo:0

5、用火狐浏览器进行自测:firefox "http://127.0.0.1/" & ,访问后重启脚本服务
web1:
LVS + Keepalived 高可用群集部署
web2:
LVS + Keepalived 高可用群集部署
*到此部分,节点服务器服务部署完成,DR调度服务器配置完成,便可用客户机检测:通过访问调度服务器虚拟IP,可以访问到web1、web2的测试页面
LVS + Keepalived 高可用群集部署
LVS + Keepalived 高可用群集部署
三、在两台调度服务器上配置keepalived服务
1、在192.168.10.10上配置主服务器

[root@localhost ~]#cd /etc/keepalived/
[root@localhost ~]#vim keepalived.conf

LVS + Keepalived 高可用群集部署
2、开启服务,并查看状态

[root@localhost ~]#systemctl start keepalived
[root@localhost ~]#systemctl status keepalived

LVS + Keepalived 高可用群集部署
3、在192.168.10.20上配置备用服务器

[root@localhost ~]#cd /etc/keepalived/
[root@localhost ~]#vim keepalived.conf

LVS + Keepalived 高可用群集部署
4、开启服务,并查看状态
LVS + Keepalived 高可用群集部署
5、测试,如果客户机无法访问,此时只需要将其防火墙重新关闭,并重启相关服务即可。
LVS + Keepalived 高可用群集部署
访问到网页后,down掉keepalived的主服务器,再次访问,如果成功,说明热备冗余设置成功。
LVS + Keepalived 高可用群集部署

到此实验已全部完成,其中报错较多,可以试着用重启服务等方式进行调整,并注意是否是虚拟网卡的问题!

转载于:https://blog.51cto.com/13784264/2165148

相关文章:

  • 【大数据】MapTask并行度和切片机制
  • WSTMart开源商城
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • 微服务架构eureka集群高可用配置
  • OSS访问控制介绍
  • Swift逆向之函数解码
  • Win2008/2012r2下批量更改域用户密码
  • SSH免密码登录配置
  • 基于kerberos的NFS服务
  • CPP基础
  • vue - for遍历数组
  • 笔记本电脑该如何装监控软件?
  •  一套莫尔斯电报听写、翻译系统
  • linux系统挂载
  • vue的全局变量和全局拦截请求器
  • Android Volley源码解析
  • codis proxy处理流程
  • ES6, React, Redux, Webpack写的一个爬 GitHub 的网页
  • java 多线程基础, 我觉得还是有必要看看的
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • js作用域和this的理解
  • MaxCompute访问TableStore(OTS) 数据
  • mysql_config not found
  • OSS Web直传 (文件图片)
  • PHP 小技巧
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • VUE es6技巧写法(持续更新中~~~)
  • webpack入门学习手记(二)
  • 程序员最讨厌的9句话,你可有补充?
  • 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶
  • 前端学习笔记之原型——一张图说明`prototype`和`__proto__`的区别
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 使用agvtool更改app version/build
  • 验证码识别技术——15分钟带你突破各种复杂不定长验证码
  • 用Canvas画一棵二叉树
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • 阿里云ACE认证学习知识点梳理
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • ​低代码平台的核心价值与优势
  • ​力扣解法汇总946-验证栈序列
  • ​一些不规范的GTID使用场景
  • ​用户画像从0到100的构建思路
  • #Spring-boot高级
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • ${factoryList }后面有空格不影响
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (四)JPA - JQPL 实现增删改查
  • (转)jQuery 基础
  • (转)甲方乙方——赵民谈找工作
  • (转载)Linux 多线程条件变量同步