内容简介:Github地址https://github.com/rootsongjc/distributed-load-testing-using-kubernetes该教程描述如何在Kubernetes中进行分布式负载均衡测试,包括一个web应用、docker镜像和Kubernetes controllers/services。更多资料请查看Distributed Load Testing Using Kubernetes 。如果你还没有kubernetes集群,可以参考kubernetes-handbook部署
Github地址https://github.com/rootsongjc/distributed-load-testing-using-kubernetes该教程描述如何在Kubernetes中进行分布式负载均衡测试,包括一个web应用、 docker 镜像和Kubernetes controllers/services。更多资料请查看Distributed Load Testing Using Kubernetes 。
注意:该测试是在我自己本地搭建的kubernetes集群上测试的,不需要使用Google Cloud Platform。
准备
不需要GCE及其他组件,你只需要有一个kubernetes集群即可。
如果你还没有kubernetes集群,可以参考kubernetes-handbook部署一个。
部署Web应用
sample-webapp
目录下包含一个简单的web测试应用。我们将其构建为docker镜像,在kubernetes中运行。你可以自己构建,也可以直接用这个我构建好的镜像 index.tenxcloud.com/jimmy/k8s-sample-webapp:latest
。
在kubernetes上部署sample-webapp。
$ cd kubernetes-config $ kubectl create -f sample-webapp-controller.yaml $ kubectl create -f kubectl create -f sample-webapp-service.yaml
部署Locust的Controller和Service
locust-master
和 locust-work
使用同样的docker镜像,修改cotnroller中 spec.template.spec.containers.env
字段中的value为你 sample-webapp
service的名字。
- name: TARGET_HOST value: http://sample-webapp:8000
创建Controller Docker镜像(可选)
locust-master
和 locust-work
controller使用的都是 locust-tasks
docker镜像。你可以直接下载 gcr.io/cloud-solutions-http://olz1di9xf.bkt.clouddn.com/locust-tasks
,也可以自己编译。自己编译大概要花几分钟时间,镜像大小为820M。
$ docker build -t index.tenxcloud.com/jimmy/locust-tasks:latest . $ docker push index.tenxcloud.com/jimmy/locust-tasks:latest
注意:我使用的是时速云的镜像仓库。
每个controller的yaml的 spec.template.spec.containers.image
字段指定的是我的镜像:
image: index.tenxcloud.com/jimmy/locust-tasks:latest
部署Locust-Master
$ kubectl create -f locust-master-controller.yaml $ kubectl create -f locust-master-service.yaml
部署Locust-Worker
Now deploy locust-worker-controller
:
$ kubectl create -f locust-worker-controller.yaml
你可以很轻易的给work扩容,通过命令行方式:
$ kubectl scale --replicas=20 replicationcontrollers locust-worker
当然你也可以通过WebUI:Dashboard – Workloads – Replication Controllers – ServiceName – Scale来扩容。
配置Traefik
参考kubernetes的traefik ingress安装,在 ingress.yaml
中加入如下配置:
- host: traefik.locust.io http: paths: - path: / backend: serviceName: locust-master servicePort: 8089
然后执行 kubectl replace -f ingress.yaml
即可更新traefik。
通过Traefik的dashboard就可以看到刚增加的 traefik.locust.io
节点。
执行测试
打开 http://traefik.locust.io
页面,点击 Edit
输入伪造的用户数和用户每秒发送的请求个数,点击 Start Swarming
就可以开始测试了。
在测试过程中调整 sample-webapp
的pod个数(默认设置了1个pod),观察pod的负载变化情况。
从一段时间的观察中可以看到负载被平均分配给了3个pod。
在locust的页面中可以实时观察也可以下载测试结果。
来源: https://www.kubernetes.org.cn/1895.html
以上所述就是小编给大家介绍的《运用Kubernetes进行分布式负载测试》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 4.10 负载均衡分布式
- 干货 | 独创分布式网络负载均衡最佳实践
- 分布式系统关注点:如何去实施负载均衡?
- 2019淘宝:OceanBase分布式系统负载均衡案例分享
- 分布式负载均衡算法之亲和性轮询原理
- 分布式系统关注点:仅需这一篇,吃透 “负载均衡” 妥妥的
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Beginning ARKit for iPhone and iPad
Wallace Wang / Apress / 2018-11-5 / USD 39.99
Explore how to use ARKit to create iOS apps and learn the basics of augmented reality while diving into ARKit specific topics. This book reveals how augmented reality allows you to view the screen on ......一起来看看 《Beginning ARKit for iPhone and iPad》 这本书的介绍吧!