学习
实践
活动
专区
工具
TVP
写文章
专栏首页CSIG质量部压测团队在Kubernetes上部署k6的详细步骤
原创

在Kubernetes上部署k6的详细步骤

k6介绍

k6是一款使用go语言编写的开源测试工具,支持用户编写测试脚本,解决了JMeter不易代码化的缺点。它的主要特点有

  • 提供了友好的 CLI 工具
  • 使用 JavaScript 代码编写测试用例
  • 可以根据性能条件设置阈值,表明成功还是失败

另外,k6不能直接使用 npm 包以及 Nodejs 提供的一些 API,因为它是通过golang程序包裹了javaScript运行js脚本的。

具体步骤

前置条件

  1. 下载kubectl

brew install kubectl

2. 安装helm

brew install helm

3. 新建一个放置k6的文件夹

配置并安装k6

  1. 输入vim k6-deployment.yaml
  2. 在里面详细写出对k6的配置
apiVersion: apps/v1
kind: Deployment
metadata:
name: k6-deployment
labels:
   app: k6
   spec:
replicas: 1
selector:
   matchLabels:
     app: k6
template:
   metadata:
     labels:
       app: k6
spec:
     containers:
     - name: k6
       image: loadimpact/k6
       command: ["tail","-f","/dev/null"]
       resources:
         requests:
           memory: "64Mi"
           cpu: "250m"
         limits:
           memory: "128Mi"
           cpu: "500m"
           

3. 接着在k8s上部署k6,namespace的名字自己定义,kubectl apply -f k6-deployment.yaml -n k6

此时它会显示

   deployment.apps/k6-deployment created

说明部署已经成功。

4. 输入kubectl -n k6 exec -it k6-deployment-57fd465f75-wxfj8 /bin/sh运行k6,运行成功后得到下图

进行压测

  1. 编写脚本

此处使用k6官网上的测试脚本进行一次小压测,在终端输入vi 脚本名称.js,并在弹出来的窗口中输入脚本内容,此处使用的脚本为

   import http from 'k6/http';

   import { sleep } from 'k6';

   export default function () {


 http.get('http://test.k6.io');

 sleep(1);
 

2. 运行脚本

输入命令k6 run 脚本名称.js,然后显示

即压测成功。

问题汇总

  1. 如果输入kubectl get pods -n k6,却显示
   NAME                                         READY   STATUS             RESTARTS   AGE

   k6-deployment-84f77b464f-2qjkb   0/1     CrashLoopBackOff   1          23s

说明这个pod一直在重复着【启动,崩溃,再次启动,然后再次崩溃】的过程。

解决方法:

k6-deployment.yaml文件里的container里加上command: ["tail","-f","/dev/null"],这条命令的作用是保持容器一直处于运行状态,上面的yaml文件里已经加好了。

注:此命令一般用于【 docker 容器中的进程(pid 1)没有在前台运行,如果前台没有任何进程运行,docker 会自动关闭自己】的情况

此时输入kubectl get pods -n k6,可以得到

   NAME                                         READY   STATUS        RESTARTS   AGE

   k6-deployment-57fd465f75-wxfj8   1/1     Running       0          9s

   k6-deployment-84f77b464f-2qjkb   0/1     Terminating   6          7m15s

原创声明,本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

登录 后参与评论
0 条评论

相关文章

  • 在CentOS中部署多节点Citus集群的详细步骤

    本文主要介绍了关于CentOS中部署多节点Citus集群的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

    砸漏
  • K6 在 Nebula Graph 上的压测实践

    对于数据库来说,性能测试是一个非常频繁的事情。优化查询引擎的规则,调整存储引擎的参数等,都需要通过性能测试,查看系统在不同场景下的影响。

    NebulaGraph
  • 在Google Cloud platform上的Kubernetes集群部署HANA Express

    在Google Cloud platform的Kubernetes cluster上,新建一个hxe.yaml文件:

    Jerry Wang
  • 在Google Cloud platform上的Kubernetes集群部署HANA Express

    在Google Cloud platform的Kubernetes cluster上,新建一个hxe.yaml文件:

    Jerry Wang
  • 在 Kubernetes 上使用 Spinnaker 构建部署流水线

    Spinnaker 是一种持续交付平台,最初由 Netflix 开发,用于快速、可靠地发布软件更改。Spinnaker 使开发人员可以更轻松地专注于编写代码,而...

    我是阳明
  • 在 Kubernetes 上设计和部署可扩展应用的 15 条原则

    本文最初发表于 Elastisys 的技术博客,经原作者 Lars Larsson 授权由 InfoQ 中文站翻译分享,未经许可禁止转载。

    深度学习与Python
  • 修改ubuntu上的pycharm镜像源,详细步骤

    毕竟用官方的链接下载简直像个蜗牛一样,等得不耐烦,于是我就去用了清华镜像源。不废话了,上步骤!! 第一个配置: 第一步:files-setting(就是进入...

    川川菜鸟
  • elasticsearch在windows上的安装步骤

    官网:https://www.elastic.co/cn/downloads/elasticsearch下载对应版本

    问问计算机
  • kibana在windows上的安装步骤

    Kibana 是一个开源的分析和可视化平台,主要用于和 Elasticsearch 一起工作,轻松实现 ElasticSearch 的查询和管理。使用 Ela...

    问问计算机
  • 手把手教你在centos上配置Django项目(超详细步骤)

    关于Django的部署,本人也踩了很多坑,这篇文章一步一步教你怎么进行部署,只需要你按照我的步骤来就OK了!这里我们使用的服务器是一个全新的服务器,没有安装任何...

    Python进击者
  • IntelliJ IDEA 热部署插件JRebel 的详细安装步骤

    IDEA本身没有集成热部署工具,一开始改动代码之后,都需要重新run或者debug,让开发效率大打折扣,而JRebel是一个很好的热部署工具。 安装和使用JR...

    魏晓蕾
  • 在Kubernetes上安装Netdata的方法

    Netdata可用于监视kubernetes集群并显示有关集群的信息,包括节点内存使用率、CPU、网络等,简单的说,Netdata仪表板可让您全面了解Kuber...

    小陈运维
  • Jenkins 在 Kubernetes 上的最佳实践

    Jenkins 是由 Java 编写的编排引擎,在 Full GC 时会 Stop The World(STW)。在大规模构建时,STW 可能会导致 Jenki...

    陈少文
  • Jenkins在kubernetes上的落地实践

    创建pv/pvc对象,这里我们要注意nfs提供给jenkins的存储目录的权限问题,否则服务因为权限无法写入数据:

    公众号: 云原生生态圈
  • Jenkins在kubernetes上的初体验

    创建 pv/pvc 对象,这里我们要注意 nfs 提供给 jenkins 的存储目录的权限问题,否则服务因为权限无法写入数据:

    公众号: 云原生生态圈
  • Helm, 在Kubernetes中部署应用的利器

    Kubernetes(k8s)是一个基于容器技术的分布式架构领先方案。它在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一...

    JFrog杰蛙科技
  • 在Linux系统里安装Virtual Box的详细步骤

    E1009 23:51:37.685891 358 start.go:174] Error starting host: Error creating host...

    Jerry Wang
  • 微服务架构在Kubernetes上的实现

    我们讨论了最近的微服务趋势,以及伴随微服务架构可能出现的一些复杂问题。在接下来的几周内,我们将深入探讨这个问题。我们将探讨不同设计选择中固有的权衡,以及可以采取...

    美的让人心动
  • 在Linux系统里安装Virtual Box的详细步骤

    版权声明:本文为博主汪子熙原创文章,未经博主允许不得转载。 https://jerry.bl...

    Jerry Wang

扫码关注腾讯云开发者

领取腾讯云代金券