压测集群部署与Coding平台项目构建全应用

2021-11-15 10:34:29 浏览数 (1)

如何新建项目

1.首先登录账号,进入一个团队的主界面,点击左侧栏中的项目,进入项目界面

2.点击项目左上方的创建项目

3. 进入创建项目界面,根据提示选择所需的项目模板

如果已经确认好需要选择的模板,就直接点击选择该模板。

(从范例项目开始需要选择“展开范例项目”,然后选择具体项目)

一般来讲,我们默认选择DevOps项目即可,如有特殊需要再考虑其他模板

4.填写项目相关的基本信息

必填内容:项目名称是项目显示在团队里的名字,项目标识则影响该项目的url地址

选填内容:项目描述可以理解为项目的备注,右边还可以选择项目的封面

填完相关信息之后点击完成创建即可

5.项目创建完成

6. 项目创建完成后,还可以点击左下角的设置,进入功能开关,将不必要的功能关闭

一般推荐可以只保留代码仓库和持续集成:

创建项目完成后,需创建项目代码仓库,点击右上角创建代码仓库

创建仓库完成后,进入仓库,创建下面三个文件夹,将脚本及集群配置等信息上传上去

1. config文件夹是放置集群配置文件,从集群导出

2. demo文件夹是放置脚本的,内部默认放置TEST.jmx脚本,用于测试构建计划是否能正常跑通

3. Script文件夹,属于coding脚本配置文件,一般不做更改

创建好Coding项目后,需要搭建集群进行部署

前言

随着云原生的推进,k8s和service mesh已然成为云上的事实标准,我们的压测引擎也是基于这个理念演化而来。整个引擎的架构为k8s jmeter influxdb grafana,其中:

· K8S管理压测发力机,可以方便快速的适配目标环境的扩缩容处理

· 通过框架提供的grafana的dashboard,能实时的了解压测量级的变化以及看到目标接口QPS的变化。依托于grafana优秀的时间选择体验,能很方便查看各次压测的详细数据,为压测节约了大量的时间

· JMeter On K8s 的提供的Master / Slave 方式,让压测脚本实现过程中,对于一些资源数据,框架承担了发送到各压测执行机的责任,简化了编码和操作流程

集群节点配置

· 子节点:多台普通节点,8核16G,带宽按量计费,外网带宽100Mbps,需要公网IP,系统盘: 50GB 高性能云硬盘(作为实际施压的节点)

· 子节点数量视要压的QPS而定,一般1台可以支持2K的QPS

部署流程

我们的压测引擎是tke上一个服务,所以可以基于k8s进行一键部署。整个过程有如下的三个步骤,如果很熟练的操作tke,可以直接跳到第3个步骤。

步骤1:购买云服务器

以子节点(8核16G,带宽按量计费,外网带宽100Mbps,需要公网IP,系统盘: 50GB 高性能云硬盘)为例子,说明下购买步骤。

· 登录上腾讯云之后,进入到云服务器界面,点击新建

· 选择合适的计费模式,地域,地域选择跟被压环境同一地域,如该地域没有机器,选择购买最近得物理地址,降低不是同一地域带来的延迟等问题,产生干扰项

· 实例的话,选择8核16G,镜像选择默认就好,后面加到集群中会重装系统

· 勾选上“免费分配独立公网IP”,选择“按使用流量”,带宽选择100Mbps,数量选择10台,点击下一步

· 安全组把常用的IP/端口放开

· 设置好密码,密码不能过于简单,否则很容易被攻击;至于是否自动续费要取决于压测使用的时长

后续就按步骤点击就好。

步骤2:把云服务器加到tke集群中

· 容器服务界面,点击创建

· 在“集群信息”页面输入集群名称,选择所在地域,集群网络需要和机器在同一个网络下,点击下一步

· 强烈建议操作系统选择ubuntu server(不建议选择其他版本)

· 进入“选择机型”步骤,选择已有节点,然后选择你需要加入集群的节点

· 选择完需要加入的集群后,还需要在下面登录方式里面选择【设置密码】,之后填写需要设定的密码,设置完后点击下一步

· 组件配置不需要改动,直接点击下一步

· 最后确认一下信息是否有误,无误的话点击完成,集群就创建完成了

· 如果最后点击完成时出现以下提示,证明安全组已经达到了目前的上限

解决办法:

进入账号的安全组设置中,以下两种方法都行

a.首先进入云服务器界面,之后选择左侧的安全组

b.鼠标放到云产品上,在搜索框中输入安全组进行查找,选择【云服务器-安全组】

进入安全组后,选择如下图的,关联实例数位0,命名与备注不明确,时间较久的安全组,进行删除,之后再回去就能成功完成集群的创建了。

(注意:关联实例数为0是首要条件)

如果没有满足条件的安全组,请联系相关负责人员来进行协调。

压测集群构建完成后,需要将TKE集群添加外网访问白名单

1.测集群创建完成后外网是无法访问的,需要添加访问ip白名单才行,这里以coding平台为例,为集群添加白名单

2. 进入后可以看到基础设置里面的节点池配置,复制选择的节点ip

3. 进入腾讯云容器服务->集群->选择集群,为集群添加访问白名单

4. 进入后点击基本信息,可以看到一个外网访问的开关

5. 粘贴之前复制的ip到外网访问里面

放通以后将Kubeconfig配置文件下载下来,上传至coding平台项目里面

步骤3:安装压测引擎jmeter-suite

进入:容器服务->应用市场->jmeter-suite

点击创建应用,输入应用名称,选择相应的集群,并输入合理的参数,点击创建即可

· server-replicaCount对应的施压节点的数量,一般要小于或等于机器的节点数;

· image-tag确保是最新的版本V1.4;

· 需要修改grafana-adminPassword的密码;

如果要要卸载或者重新安装,需要如下两个操作:

1.在应用里面删除jmeter-suite

2.在PVC界面也需要删除

查看监控面板

监控面板的地址为:集群节点IP:31221

以下面为例对应的grafana监控面板地址为:http://159.75.220.185:31221

安装jmeter-suite的注意事项请参考:

https://cloud.tencent.com/developer/article/1822041

https://cloud.tencent.com/developer/article/1824996

操作TKE的腾讯云子账号是需要如下两类权限:

· 使用TKE预设策略授权:QcloudTKEFullAccess,QcloudTKEInnerFullAccess,QcloudTKEReadOnlyAccess

详见:https://cloud.tencent.com/document/product/457/46033

· 使用预设身份授权,操作如下

需要注意,云账号需要授权Admin权限,目前踩坑的情况是容器服务未获授权导致安装的influxdb一直处于 Pending状态,集群PVC处于一直报错状态,构建计划后,监控面板无数据,一直出现网关报错的问题,查看事情为无权限,后获取子账号权限后,重新构建集群创建应用,排除问题。

集群部署成功以后,进入Coding项目进行构建计划

1. 点击创建构建计划,选择压测执行模板

2.创建构建计划,替换构建参数及脚本名称,点击确定进行构建

3. 点击立即构建后,查看构建日志及进度

4. 构建完成后,查看监控面板,进行压测分析。

0 人点赞