热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux云计算架构使用keepalived+LVS+DR部署高可用集群

文章目录Linux云计算架构-使用keepalivedLVSDR部署高可用集群1.keepalivedLVSDR架构图2.配置RS后端真实服务器3.keepalivedLVSDR负

文章目录

  • Linux云计算架构-使用keepalived+LVS+DR部署高可用集群
    • 1. keepalived+LVS+DR架构图
    • 2. 配置RS后端真实服务器
    • 3. keepalived+LVS+DR负载均衡高可用集群测试
      • 3.1 测试负载均衡
      • 3.2 测试高可用
      • 3.3 测试主LVS故障恢复


Linux云计算架构-使用keepalived+LVS+DR部署高可用集群

1. keepalived+LVS+DR架构图

在这里插入图片描述
在这里插入图片描述
在博主的其他博客有说到如何配置主备LVS,这里不多介绍。

2. 配置RS后端真实服务器

使用脚本配置rs1:

[root@rs1 ~]# vim /etc/init.d/lvsrsdr
#!/bin/bash
#description:start relserver
VIP=192.168.10.30
source /etc/init.d/functions #加载环境变量(可以加载所有的环境变量)
case $1 in
start)echo 'start LVS of Realserver DR'/sbin/ifconfig lo:1 $VIP broadcast $VIP netmask 255.255.255.255 up/sbin/route add -host $VIP dev lo:1echo '1' > /proc/sys/net/ipv4/conf/lo/arp_ignoreecho '2' > /proc/sys/net/ipv4/conf/lo/arp_announceecho '1' > /proc/sys/net/ipv4/conf/all/arp_ignoreecho '2' > /proc/sys/net/ipv4/conf/all/arp_announce;;
stop)/sbin/ifconfig lo:1 downecho 'Close LVS of Realserver DR'echo '0' > /proc/sys/net/ipv4/conf/lo/arp_ignoreecho '0' > /proc/sys/net/ipv4/conf/lo/arp_announceecho '0' > /proc/sys/net/ipv4/conf/all/arp_ignoreecho '0' > /proc/sys/net/ipv4/conf/all/arp_announce;;
*)echo "Usage:$0 (start|stop)"
exit 1
esac

# 用脚本配置RS1
[root@rs1 ~]# chmod +x /etc/init.d/lvsrsdr
[root@rs1 ~]# /etc/init.d/lvsrsdr start
Reloading systemd: [ 确定 ]
Starting lvsrsdr (via systemctl): [ 确定 ]
[root@rs1 ~]# echo "/etc/init.d/lvsrsdr start" >> /etc/rc.local[root@rs1 ~]# ifconfig -a
lo:1: flags&#61;73<UP,LOOPBACK,RUNNING> mtu 65536inet 192.168.10.30 netmask 255.255.255.255loop txqueuelen 1000 (Local Loopback)# 在RS1上配置httpd服务&#xff0c;并开通防火墙的80端口号&#xff0c;httpd服务重启并添加到开机自启
[root&#64;rs1 ~]# yum install httpd -y
[root&#64;rs1 ~]# echo 192.168.10.40 > /var/www/html/index.html
[root&#64;rs1 ~]# firewall-cmd --permanent --zone&#61;public --add-port&#61;80/tcp
success
[root&#64;rs1 ~]# firewall-cmd --reload
success
[root&#64;rs1 ~]# systemctl restart httpd
[root&#64;rs1 ~]# systemctl enable httpd# 如果重启不来&#xff0c;一般是ServerName没有修改。
[root&#64;rs1 ~]# vim /etc/httpd/conf/httpd.conf 95 ServerName localhost:80# 用curl命令看下能否获取到网页&#xff0c;可以看到是没问题的。
[root&#64;rs1 ~]# curl 192.168.10.40
192.168.10.40# 用同样的方法配置RS2
为了看到负载均衡的效果&#xff0c;测试页的内容稍微调整下&#xff1a;
[root&#64;rs2 ~]# echo 192.168.10.50 > /var/www/html/index.html
[root&#64;rs2 ~]# curl 192.168.10.50
192.168.10.50

3. keepalived&#43;LVS&#43;DR负载均衡高可用集群测试

这里配置一台客户端&#xff0c;IP地址为192.168.10.60。能访问VIP的前提是能ping通。
在这里插入图片描述

3.1 测试负载均衡

# 安装检测工具
[root&#64;client ~]# yum install elinks -y# 如果在keepalived的配置文件中&#xff0c;设置了以下参数&#xff0c;可能会无法看到以下效果。
# 该参数的作用是同一IP访问VIP时&#xff0c;会保持长连接50s,即50s后才会切换。
# 要想立刻看到效果的&#xff0c;可以删除改行。
persistence_timeout 50

在这里插入图片描述
在这里插入图片描述

3.2 测试高可用

# 停止主LVS的keepalived服务模拟故障
[root&#64;mlvs1 ~]# systemctl stop keepalived.service# VIP已经进行漂移
[root&#64;mlvs2 ~]# ip a | grep ens32
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000inet 192.168.10.20/24 brd 192.168.10.255 scope global noprefixroute ens32inet 192.168.10.30/32 scope global ens32# 还是可以访问VIP
[root&#64;client ~]# elinks 192.168.10.30 --dump192.168.10.50
[root&#64;client ~]# elinks 192.168.10.30 --dump192.168.10.40
[root&#64;client ~]# elinks 192.168.10.30 --dump192.168.10.50
[root&#64;client ~]# elinks 192.168.10.30 --dump192.168.10.40
[root&#64;client ~]# elinks 192.168.10.30 --dump192.168.10.50
[root&#64;client ~]# elinks 192.168.10.30 --dump192.168.10.40
[root&#64;client ~]# elinks 192.168.10.30 --dump192.168.10.50
[root&#64;client ~]# elinks 192.168.10.30 --dump192.168.10.40[root&#64;mlvs2 ~]# ipvsadm -L -n --stats
IP Virtual Server version 1.2.1 (size&#61;4096)
Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes-> RemoteAddress:Port
TCP 192.168.10.30:80 8 48 0 3736 0-> 192.168.10.40:80 4 24 0 1868 0-> 192.168.10.50:80 4 24 0 1868 0

3.3 测试主LVS故障恢复

# 重新启动主LVS上的keepalived服务
[root&#64;mlvs1 ~]# systemctl start keepalived.service# 可以看到VIP已经迁移回来了
[root&#64;mlvs1 ~]# ip a | grep ens32
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000inet 192.168.10.10/24 brd 192.168.10.255 scope global noprefixroute ens32inet 192.168.10.30/32 scope global ens32# VIP还是可以继续访问
[root&#64;client ~]# elinks 192.168.10.30 --dump192.168.10.50
[root&#64;client ~]# elinks 192.168.10.30 --dump192.168.10.40
[root&#64;client ~]# elinks 192.168.10.30 --dump192.168.10.50
[root&#64;client ~]# elinks 192.168.10.30 --dump192.168.10.40
[root&#64;client ~]# elinks 192.168.10.30 --dump192.168.10.50
[root&#64;client ~]# elinks 192.168.10.30 --dump192.168.10.40[root&#64;mlvs1 ~]# ipvsadm -L -n --stats
IP Virtual Server version 1.2.1 (size&#61;4096)
Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes-> RemoteAddress:Port
TCP 192.168.10.30:80 6 36 0 2802 0-> 192.168.10.40:80 3 18 0 1401 0-> 192.168.10.50:80 3 18 0 1401 0


推荐阅读
  • 架构设计:负载均衡层设计方案之负载场景和解决方式篇
    来自:JAVA入门中https:blog.csdn.netyinwenjiearticledetails46605451在上一篇《标准Web系统的架构分层》文章中&# ... [详细]
  • ZooKeeper 学习
    前言相信大家对ZooKeeper应该不算陌生。但是你真的了解ZooKeeper是个什么东西吗?如果别人面试官让你给他讲讲ZooKeeper是个什么东西, ... [详细]
  • LVS-DR直接路由实现负载均衡示例
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 目录Atlas介绍Atlas部署Atlas基本管理Atlas结合MHA故障恢复读写分离建议Atlas介绍Atlas是由Qihoo360Web平台部基础架构团队开发维护的一个基于My ... [详细]
  • php网站设计实验报告,php网站开发实训报告
    本文目录一览:1、php动态网站设计的关键技术有哪些软件,及搭建步骤需要哪些页面,分别完成 ... [详细]
  • Nginxgaodaima.comnginx属于七层架构,支持的是http协议,本身对tcp协议没有支持。所以不能代理mysql等实现负载均衡。但是lvs这个东西不熟悉,主要是公司 ... [详细]
  • 什么是网关服务器初学linux服务器开发时,我们的服务器是很简单的,只需要一个程序完成与客户端的连接,接收客户端数据,数据处理,向客户端发送数据。但是在处理量很大的情况下,一 ... [详细]
  • PartI:取经处: http:www.ramkitech.com201210tomcat-clustering ... [详细]
  • 一、生产服务器netstattcp连接状态 ... [详细]
  • 高可用架构_MySQL高可用架构设计
    文章来自于https:www.jianshu.compd3107bda2963PHP进阶学习交流QQ群:983229225Mysql复制功能介绍Mysql的复制功能提 ... [详细]
  • springcloud:微服务涉及哪些技术、有哪些核心组件(二)
    0.引言上一期我们介绍了什么是微服务,微服务的基础概念,那么本期我们来介绍一下微服务涉及的技术点以及所需要的组件1.微服务涉及哪些技术1.1、基础 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • QuestionThereareatotalofncoursesyouhavetotake,labeledfrom0ton-1.Somecoursesmayhaveprerequi ... [详细]
  • nginx使用内置模块配置限速限流的方法实例_nginx
    Nginx现在已经是最火的负载均衡之一,在流量陡增的互联网面前,接口限流也是很有必要的,尤其是针对高并发的场景,下面这篇文章主要给大家介绍了关于nginx使用内置模块配置限速限流的 ... [详细]
  • Kubernetes(k8s)基础简介
    Kubernetes(k8s)基础简介目录一、Kubernetes概述(一)、Kubernetes是什么(二& ... [详细]
author-avatar
nuabolalalala4_135
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有