公有云-实验二 实践高可用的云架构

实验二 实践高可用的云架构

概述

企业A的论坛平台已经顺利上线。但是随着用户量的激增,原有的架构已经难以完全支撑论坛平台的正常运行。由于用户量的增加,前端负载压力也随之增大,而且难以解决单点故障的问题。每到周末论坛平台的访问量会比工作日的访问量大很大,在访问非高峰期闲置的资源造成浪费。因此需要结合腾讯云的负载均衡CLB和弹性伸缩AS升级原有架构。

在本实验中,我们将会使用腾讯云的负载均衡CLB实现论坛平台的前端高可用,使用弹性伸缩AS实现云服务器的自动扩容和缩容。首先对承载论坛平台的云服务CVM进行镜像操作,用作CLB的第二节点服务器的镜像和AS的扩缩容。然后创建CLB实现负载均衡,创建AS实现弹性伸缩。最后测试整个平台的高可用性。

实验环境

1、 实验组网介绍

2、实验数据规划(数据规划表)

数据项

数据

说明

腾讯云账号

账号:XXXXXXXXX 密码:XXXXXXXXXX

涉及产品如下: VPC CVM CBD for MySQL CFS CLB AS

3、实验环境确认

能够通过浏览器连接腾讯云官网https://cloud.tencent.com;

配置表

购买产品

规格

备注

腾讯云CVM

标准型S2 1C 1GB

使用腾讯提供的代金券购买

腾讯云CLB

应用型

使用腾讯提供的代金券购买

腾讯云AS

对应CVM选择标准型S2 1C 1GB

使用腾讯提供的代金券购买

前提条件

本实验要求:

  • 运行Microsoft Windows,可以接入互联网的笔记本电脑或者台式机
  • Internet浏览器,例如Chrome, IE或Firefox
  • 能够通过浏览器连接腾讯云官网https://cloud.tencent.com
  • SSH客户端

实验流程

实验目标

完成本实验后,您将能够:

  • 创建CVM镜像
  • 创建子网
  • 通过镜像创建CVM
  • 创建和配置负载均衡CLB
  • 创建和配置弹性伸缩AS
  • 通过CLB和AS实现论坛平台的高可用架构

通过该实验,学员能够在腾讯云平台上创建镜像,并通过镜像创建CVM,掌握CLB和AS的创建和配置操作,能够结合CLB和AS实现高可用的云架构。本实验实验时长为1.5小时。

任务1 使用镜像创建CVM

【任务目标】

制作自定义镜像,并使用镜像创建CVM。

【任务步骤】

1、 在【腾讯云服务器控制台】中,登录实验一中创建的CVM,使用如下命令进行关机操作,或者在【更多】中选择【云主机状态】-【关机】。

shutdown -h now;

2、在【腾讯云控制台】中,鼠标依次悬停【云产品-基础产品-云计算与网络-云服务器】,单击【云服务器】;

3、 在【Lab1-CVM01】右侧操作栏中,单击【更多】-【制作镜像】,【镜像名称】命名为“Lab2-MIR01”,单击【确定】开始制作;

4、 在【镜像】处能够查看到镜像已经成功创建;

5、 创建实验二所需的网络环境。

1) 进入实验一创建的私有网络【Lab1-VPC01】中

2)新建一个子网【Lab2-SBN01】,子网的【CIRD】设置为10.0.2.0/24

3)【可用区】选择【广州四区】(注意:需要与【Lab1-SBN01】使用不同的可用区)

4) 单击【创建】按钮;

6、子网创建完毕后,在【Lab2-SBN01】下,添加一台新的CVM;

1)选择地域与机型

  • 【计费模式】,选择“按量计费”
  • 【地域】选择“广州”,【可用区】选择“广州四区”
  • 【网络】选择任务一中新建的私有网络VPC及其子网--【Lab1- VPC01】-【Lab2- SBN01】
  • 【实例】选择“标准型S2 ,1核1GB”
  • 点击【下一步:选择镜像】;
  • 【镜像】中选择【自定义镜像】-【Lab2-MIR01】
  • 【系统盘】默认选择“高性能云硬盘”,“50GB”
  • 【网络计费模式】选择“按使用流量”
  • 带宽上限保持1Mbps
  • 确认勾选【分配免费公网IP】
  • 不勾选【作为公网网关】
  • 点击【下一步:设置主机】;

2) 设置主机:

  • 【所属项目】选择“默认项目”
  • 【安全组】选择“放通全部端口”
  • 【实例名】填写“Lab2-CVM01”
  • 【登录方式】选择“保持镜像设置”,即使用实验一中相同的登录方式和密码
  • 勾选【安全加固】、【云监控】免费开通,【定时销毁】不勾选
  • 点击【下一步:确认配置信息】;

3) 确认配置信息:确认所有配置信息后点击【开通】。

7、 返回【云主机】列表,勾选【Lab1-CVM01】,单击【开机】启动机器;

8、将【Lab2-CVM01】的公网IP和内网IP记录在实验数据表中,在本地浏览器地址栏输入【Lab2-CVM01】的【公网IP】,可以同样看到一个Discuz!论坛;

9、 修改论坛标题:使用腾讯云服务器控制台登录到Lab1-CVM01,打开模板文件

cd /data/wwwroot/default/discuz/template/default/common

vi header_common.htm

10、 找到如下部分:

<title><!--{if !empty(nobbname)}-->

修改为

<title>This is the FIRST WebServer!</title>

修改完毕后保存退出;

11、 同样的方法,修改【CVM-Lab0201-1】上的同名文件中的\<title>标签内容为:

<title> This is the SECOND WebServer!</title>

12、 在浏览器地址栏输入两台CVM 的公网IP,可以看到两个论坛的标题是不同的。

任务2 配置负载均衡

【任务目标】

通过腾讯云平台创建负载均衡CLB,并把两台CVM加入到负载均衡中,实现前端的高可用。

【任务步骤】

1、 在【腾讯云控制台】中,鼠标依次悬停【云产品-网络-负载均衡】,进入【负载均衡】;

C:\Users\v_langyi\AppData\Local\Temp\企业微信截图_15661832268763.png

2、 在【LB 实例列表】中,单击【新建】,创建一个负载均衡实例;

  • 【地域】选择“广州”
  • 【实例类型】选择为“应用型CLB”
  • 【网络类型】选择“公网”
  • 【所属网络】选择“私有网络”-【Lab1-VPC01】
  • 【所属项目】选择“默认项目”
  • 【实例名】选择“立即命名”,填写“Lab2-CLB01”
  • 购买数量【1】,点击【立即购买】;

3、 完成CLB的创建,在负载均衡控制台中查看到已经创建好的CLB;

4、 在控制台中,【Lab2-CLB01】右侧的【监听器未配置】旁边,点击【配置】;

5、 点击【TCP/UDP监听器】的【新建】按钮,【名称】命名为“Lab2-LBM01”,【监听协议端口】为【TCP】,端口为“80”,【均衡方式】选择【按权重轮询】,单击【下一步】;

6、 勾选【健康检查】,健康检查各项时间参数保持默认值;

7、 在【会话保持】处保持默认。不选择【会话保持】,然后点击【完成】;

8、 单击【完成】,可以查看到TCP/UDP监听器已经新建完成;

9、 单击【绑定云主机】按钮,勾选【Lab1-CVM01】、【Lab2-CVM01】两台云主机,【权重】均设置为10;点击【确定】;

10、 点击【Lab2-CLB01】的【基本信息】,查看【VIP】,记录在实验数据表中;

11、 此时,在浏览器地址栏输入【Lab2-CLB01】的【VIP】,并不断刷新,可以看到标题栏中,两台服务器的Title也在不断切换;

12、 接下来做一个验证,返回【CVM】控制台,选中【Lab1-VPC01】,点击【关机】此刻在回到浏览器中,刷新页面,可以看到,标题栏不再跳跃,固定显示【This is the SECOND WebServer!】。

任务3 测试弹性扩容

【任务目标】

在本任务中,您将创建弹性伸缩AS,对AS进行配置,并完成弹性伸缩的测试。

【任务步骤】

1、 在【腾讯云控制台】,通过【云产品-基础产品-云计算与网络-弹性伸缩】,进入【弹性伸缩】,点击左侧【启动配置】-【新建】一个启动配置;

1) 选择机型

  • 【配置名称】处输入名称“Lab2-ASC01”
  • 【系列】选择“系列2”“标准型 CPU 1 内存1”,然后点击【下一步】;

2) 选择镜像:【镜像】选择“自定义镜像”-“Lab2-MIR01” 然后点击【下一步】

3) 选择存储和网络

  • 【系统盘】选择“云硬盘-50G”
  • 【数据盘】选择“云硬盘-50G”
  • 【带宽计费模式】选择“按流量计费”
  • 【带宽】输入“1”Mbps
  • 勾选免费分配公网IP,然后点击 【下一步】;

4) 设置信息

  • 【登录方式】选择“保留镜像设置”,使用与实验1 中相同的登录方式和密码,
  • 【安全组】选择“放通全部端口“
  • 云安全和云监控处勾选【免费开通】
  • 点击【完成】;

2、 在【弹性伸缩控制台】-【启动配置】页面,能够成功查看到新建的启动配置;

3、 在左侧导航栏中单击【伸缩组】,单击【新建】按钮,现在来创建一个新的伸缩组;

1) 基本配置

  • 【名称】处输入名称“Lab2-AS01 “
  • 【最小伸缩数】输入“2”
  • 【起始实例数】输入“2”
  • 【最大伸缩数】输入“3”
  • 【启动配置】选择前面已经完成的配置项目-【Lab2-ASC01】
  • 【支持网络】选择“【Lab1-VPC01】“
  • 【支持子网】勾选您所需要的子网,此处勾选前面实验创建的所有子网
  • 【移出策略】处选择【移出最旧的云主机】
  • 然后点击【下一步】;

2) 负载均衡配置

  • 【负载均衡】选择前面创建的负载均衡CLB 的名称“【Lab2-CLB01】”
  • 【挂载监听器】选择前面创建的监听器名称“【Lab2-LBM01】”
  • 【主机端口权重】输入“80”“10”
  • 然后点击【完成】;

4、 点击新建的伸缩组的名称,进入伸缩组配置页面。在【告警触发策略】,单击【新建】按钮;

  • 【名称】输入告警触发策略的名称“Lab2-ASW01”
  • 【复制策略】留空
  • 【if】选择“CPU利用率”“1分钟内”“最大值”“>”“60”“连续3次”
  • 【then】留空
  • 【伸缩活动】选择“增加1台云主机”“冷却10秒”
  • 然后点击【完成】;

5、 告警策略新建完成;

6、 稍等片刻,返回【CVM 控制台】,可以看到新增的两台、以“AS-前缀”命名的CVM 在运行中;

7、 点击【弹性伸缩】-【Lab2- AS01】下的【伸缩活动】,可以查看详细原因为因匹配期望实例数,扩容2 台;

8、 为了让系统自动扩容,我们现在手工模拟系统负载量的增大;在云服务器控制台上登录到这两台CVM中任意一台上,执行以下命令:

for i in seq 1 $(cat /proc/cpuinfo |grep "physical id" |wc -l); do dd if=/dev/zero

of=/dev/null & done

9、 进入CVM 下的【监控】-【CPU】监控,可以看到【实时】的【CPU】利用率达到100%;

10、 回到【Lab2- ASW01】下的【伸缩活动】,可以看到【因执行告警触发策略" Lab2- ASW01",扩容1 台】,【关联云主机】此时变为3 台。

实验验证

1、 验证通过镜像创建CVM。任务一第10步能够正常通过互联网访问论坛;第14步,能够正常访问到两个标题不一的论坛网站;

2、 验证负载均衡。第12步,在外网访问负载均衡的公网IP,能够看到轮询的效果;第13步,将第一台CVM关机,在浏览器中多次访问网站,查看网站标题,确认只能访问到第二台CVM;

3、 验证弹性伸缩。第17步,当应用服务器Discuz!的CPU达到警告值,能够查看到【伸缩活动】中成功扩容的日志,并在云服务器控制台中确定弹性伸缩能已经自动扩容了1台CVM。

FAQ

1、 在任务一第3步,点击制作镜像时,按钮灰色无法点击。需要在关机状态下才能进行镜像制作,请确认您的CVM已经处于关机状态。

2、 在任务一第10步中,通过镜像创建的CVM论坛无法在外网进行访问。

  • 请确认在创建CVM的时候,是否选择自定义的镜像进行创建;
  • 请确认安全组是否选择正确;
  • 请检查访问的公网IP是否正确。

3、 无法正常查看到负载均衡的轮询效果,登录论坛网站的标题没有变化。

  • 请确认访问论坛的IP地址为负载均衡的VIP,而不是某台CVM的公网IP;
  • 检查任务一中第12-14步中,网站主页修改是否完成。

4、 在任务三中,无法达到弹性伸缩的效果,无法观察到有新的CVM自动生成。

  • 请检查任务三中步骤11中设置的告警触发策略配置是否正确。
  • 请确认在任务三步骤15-16中的输入耗费CPU的命令运行正常,能够看到CPU达到100%的监控结果。可尝试再次运行该命令。

5、 在任务三中,验证弹性伸缩的时候,无法正常访问到论坛网站。

  • 请确认任务三中步骤3,为弹性伸缩选择镜像的时候,选择了正确的CVM镜像;
  • 请确认任务三中步骤5,选择安全组的时候,是否选择开通所有端口的安全组。