实验二 实践高可用的云架构
概述
企业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,选择安全组的时候,是否选择开通所有端口的安全组。