前言
随着云原生的推进,k8s和service mesh已然成为云上的事实标准,我们的压测引擎也是基于这个理念演化而来。整个引擎的架构为k8s jmeter influxdb grafana,其中:
- k8s 管理压测发力机,可以方便快速的适配目标环境的扩缩容处理;
- 压测工具完全兼容jmeter脚本,功能强大,支持多种协议,多种插件服务;
- 时序数据库influxdb对压测数据进行采集,让压测数据做到持久化;
- 通过框架提供的grafana的dashboard,能实时的了解压测量级的变化以及看到目标接口吞吐量的变化。依托于grafana优秀的可视化能力,能很方便查看各次压测的详细数据,为压测节约了大量的时间和视觉体验;
集群节点配置
- 节点配置:8核16G,带宽按量计费,外网带宽100Mbps,系统盘配置50GB 高性能的云硬盘
- 节点数量根据压测的目标QPS而定,一般1个节点可以支持2K的QPS
步骤一:购买CVM及构建TKE集群
购买云服务器
以子节点(8核16G,带宽按量计费,外网带宽100Mbps,系统盘配置50GB 高性能云硬盘)为例,说明购买步骤。
- 在腾讯云官网登录账号后,进入到云服务器界面,点击“新建”。
- 选择合适的计费模式、地域。
- 选择合适的机器配置,镜像默认选择最新版本即可,点击“下一步”。
- 勾选上“免费分配独立公网IP”,选择“按使用流量”,带宽配置100Mbps。
- 选择“新建安全组”,安全组把常用的IP/端放开。
- 设置CVM的登录密码,密码不能过于简单,否则很容易被攻击,然后点击下一步。
- 确认配置信息后勾选协议,选择压测机台数,然后等待机器构建。
构建TKE集群
- 在容器服务页面新建集群
- 选择“标准集群”,点击创建
- 在“集群信息”步骤填写集群名称,选择集群所在地域,kubernetes版本选择1.20.6,`集群网络需要和压测机器在同一个网络下`
- 操作系统建议选择最新即可,然后点击下一步。
- 在“选择机型”步骤选择已有节点,选择需要加入集群的节点,然后点击下一步。
- 在“云服务器配置”步骤设置CVM的登录密码,然后点击下一步。
- 组件配置不需要改动,然后点击下一步。
- 最后确认配置信息无误,点击完成,集群开始创建,大约需要15分钟。
删除压测集群(压测任务全部结束后删除压测机群)
- 在集群管理页面中,选择“更多”->“删除”。
- 删除集群时勾选“直接销毁集群内全部按量计费节点”、“销毁CBS”即可。
步骤二:部署压测引擎
安装Jmeter-Suite压测引擎
- 集群创建完成后进入“应用”
- 选择地域、集群类型和集群,最后点击“新建”
- 第一步填写应用名称(没有要求,填写jmeter即可),第二步搜索输入“jmeter”,第三步选择“tke-jmeter-suite-non”,最后选择点击修改参数
- 修改参数文件,修改完成后点击“保存”
- 点击“完成”,创建应用
- 回到集群中,可以看到Deployment中已经有pod了,点击“更新pod配置”
- 在内存限制那设置limit 的值,大于内存的一半即可(如16g内存,设置9000即可)
- 点击“完成”,应用就创建好了,最后确保pod 都全部运行起来即可使用
- 至此,压测引擎部署完成。
集群添加外网访问白名单
压测集群部署好后需要添加外网访问权限,否则外网是访问不了压测集群的,具体操作步骤见文档:TKE集群添加外网访问白名单
下载kubeconfig
选择集群点击进入,选择“基本信息”,点击下载kubeconfig文件(在配置Coding时需要用到)
更新应用(需要更新时才需要该步骤,正常步骤不需要)
当需要修改压测机节点数、内存大小和账号密码时,可以通过更新应用来解决
首先进入容器服务的“应用”,选择需要修改的机器,点击“更新应用”
点击编辑参数
修改内容后保存,回到更新应用页面后点击确定即可
步骤三:压测工具验证
通过访问监控面板来验证压测工具是否部署完成,监控面板的地址为:集群节点IP:31221
以下面为例对应的grafana监控面板地址为:http://152.136.130.236:31221,账号/密码如未修改,默认为admin/admin(建议密码不要默认)