前端怎么做电商网站东莞 企业网站建设
- 作者: 五速梦信息网
- 时间: 2026年03月21日 09:55
当前位置: 首页 > news >正文
前端怎么做电商网站,东莞 企业网站建设,seo基础知识培训视频,免费相册制作模板使用K8S集群执行分布式负载测试
本教程介绍如何使用Kubernetes部署分布式负载测试框架#xff0c;该框架使用分布式部署的locust 产生压测流量#xff0c;对一个部署到 K8S集群的 Web 应用执行负载测试#xff0c;该 Web 应用公开了 REST 格式的端点#xff0c;以响应传入…使用K8S集群执行分布式负载测试
本教程介绍如何使用Kubernetes部署分布式负载测试框架该框架使用分布式部署的locust 产生压测流量对一个部署到 K8S集群的 Web 应用执行负载测试该 Web 应用公开了 REST 格式的端点以响应传入的 HTTP POST 请求。
关于分布式负载测试的更多资料请查看 Distributed Load Testing Using Kubernetes GoogleCloudPlatform/distributed-load-testing-using-kubernetes: Distributed load testing using Kubernetes on Google Container Engine (github.com)
本文借鉴了官方的框架在官方基础上做了简化修改支持在本地搭建的K8S集群上进行分布式负载测试。
测试使用的工作负载实例 下图展示了将客户端请求传送到应用的示例工作负载。 为对该交互进行建模您可以使用 Locust 这一基于 Python、可跨多个目标路径分发请求的分布式负载测试工具。例如Locust 可以将请求分发到 /login 和 /metrics 目标路径。工作负载在 Locust 中建模为一组任务。
locust分布式负载测试架构 该架构涉及到两个主要组件 Locust 容器映像。容器编排和管理机制。 Locust 容器映像包含 Locust 软件包含用于启动 Locust 服务和执行任务的脚本。为尽可能贴近真实客户端的情况每个 Locust 任务都进行了加权。例如每一千个客户端总请求发生一次注册。 Kubernetes提供容器编排和管理功能。使用 Kubernetes您可以指定为负载测试框架奠定基础的容器节点的数量。此外您还可以将负载测试工作器组织到 pod 中并指定希望Kubernetes 持续运行的 pod 数量。 为了部署负载测试任务请执行以下操作 部署负载测试主节点。部署一组负载测试工作器。您要使用这些负载测试工作器创建大量的流量以便执行测试。 下图展示了使用示例应用进行负载测试的架构。主 Pod 提供用于操作和监控负载测试的网页界面。工作器 Pod 为接受测试的应用生成 REST 请求流量并将指标发送到主 Pod。 2.1 关于负载测试主节点 Locust 主节点是执行负载测试任务的入口点。Locust 主节点配置指定了数个元素包括容器使用的默认端口 8089 用于网页界面5557 和 5558 用于与工作器通信 2.2 关于负载测试工作器 Locust 工作器执行负载测试任务可以使用单个 Deployment 来创建多个 pod。这些 pod 分布在 Kubernetes 集群中。 下图显示了 Locust 主节点与 Locust 工作器之间的关系。 3. 部署用于测试 Web 应用 sample-webapp 目录下包含一个简单的 web 测试应用先构建为 docker 镜像。 \( git clone https://gitee.com/lldhsds/distributed-load-testing-using-k8s.git \) cd distributed-load-testing-using-k8s/sample-webapp/# 构建镜像 $ docker build -t lldhsds/sample-webapp:20240625 .
查看构建的容器镜像
$ docker images | grep sample-webapp lldhsds/sample-webapp 20240625 c4e7e59ac329 About a minute ago 928MB
打包镜像将镜像导入到其他节点。也可以推送到镜像仓库。
$ docker save -o sample-webapp.tar lldhsds/sample-webapp:20240625在 kubernetes 上部署 web应用名字保持默认sample-webapp [rootk8s-master manifest-k8s]# pwd /root/distributed-load-testing-using-k8s/manifest-k8s
镜像指向上面构建的镜像其他信息如副本数根据自己的测试环境调整或者后续修改
[rootk8s-master manifest-k8s]# cat sample-webapp.yaml kind: Deployment apiVersion: apps/v1 metadata:name: sample-webapp
spec:selector:matchLabels:name: sample-webappreplicas: 2template:metadata:labels:name: sample-webappspec:containers:- name: sample-webappimage: lldhsds/sample-webapp:20240625ports:- name: webcontainerPort: 8000
kind: Service apiVersion: v1 metadata:name: sample-webapplabels:name: sample-webapp spec:ports:- port: 8000selector:name: sample-webapp[rootk8s-master manifest-k8s]# kubectl create -f sample-webapp.yaml[rootk8s-master manifest-k8s]# kubectl get pod NAME READY STATUS RESTARTS AGE sample-webapp-65cdc749f7-hd8df 1⁄1 Running 0 61s sample-webapp-65cdc749f7-j65sr 1⁄1 Running 0 61s [rootk8s-master manifest-k8s]# kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.96.0.1 none 443/TCP 14d sample-webapp ClusterIP 10.99.23.223 none 8000/TCP 9m52s
测试应用正常响应
[rootk8s-master manifest-k8s]# curl http://10.99.23.223:8000 Welcome to the Distributed Load Testing Using Kubernetes sample web app4. 部署 Locust 分布式压测组件 locust-master 和 locust-worker 使用同样的容器镜像。 4.1 构建 locust tasks 镜像 locust-master 和 locust-worker 使用的都是 locust-tasks 镜像自定义locust测试脚本构建为容器镜像 [rootk8s-master locust]# pwd /root/distributed-load-testing-using-k8s/locust [rootk8s-master locust]# cd .. [rootk8s-master distributed-load-testing-using-k8s]# cd locust/ [rootk8s-master locust]# ls Dockerfile locust-tasks [rootk8s-master locust]# docker build -t lldhsds/locust-tasks:20240625 .
查看构建的镜像
[rootk8s-master locust]# docker images | grep locust-tasks lldhsds/locust-tasks 20240625 0b08d2e86b76 About a minute ago 983MB
打包镜像导入到其他节点中
[rootk8s-master locust]# docker save -o locust-tasks.tar lldhsds/locust-tasks:202406254.2 部署 locust分布式测试环境 修改master cotnroller 和worker cotnroller 中 spec.template.spec.containers.image 字段指向自己构建的镜像 [rootk8s-master manifest-k8s]# pwd /root/distributed-load-testing-using-k8s/manifest-k8s [rootk8s-master manifest-k8s]# ls locust-tasks.yaml sample-webapp.yaml [rootk8s-master manifest-k8s]# vim locust-tasks.yaml … image: lldhsds/locust-tasks:20240625 …部署locust-master和locust worker根据需要修改worker节点的副本数 [rootk8s-master manifest-k8s]# ls locust-tasks.yaml sample-webapp.yaml [rootk8s-master manifest-k8s]# kubectl create -f locust-tasks.yaml deployment.apps/locust-master created service/locust-master created deployment.apps/locust-worker created# 查看部署的容器 [rootk8s-master manifest-k8s]# kubectl get pod NAME READY STATUS RESTARTS AGE locust-master-8b64d8b4c-fmjsz 1⁄1 Running 0 9m52s locust-worker-84fc79566c-2gjqr 1⁄1 Running 0 9m51s locust-worker-84fc79566c-6v8cz 1⁄1 Running 0 9m51s sample-webapp-65cdc749f7-hd8df 1⁄1 Running 0 18m sample-webapp-65cdc749f7-j65sr 1⁄1 Running 0 18m [rootk8s-master manifest-k8s]# kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.96.0.1 none 443/TCP 14d locust-master NodePort 10.109.114.2 none 8089:30502/TCP,5557:31739/TCP,5558:32268/TCP 9m55s sample-webapp ClusterIP 10.99.23.223 none 8000/TCP 27m4.3 指向locust性能测试 使用http://ip:30502即可访问locust web界面可以看到已经有两个workder节点连接到master。 配置参数进行测试 5. 总结 基于该架构可以实现K8S环境下应用的分布式压测借助与K8S易于扩展的能力可以很容易的调整压测端、应用端的副本数实现扩缩容本文使用一套K8S集群承载locust分布式测试组件和业务应用最佳实践情况下可以将locust部署到单独的K8S集群中对业务侧K8S进行压测。
- 上一篇: 前端学校网站开发视频大型高迸发网站用什么语言做
- 下一篇: 前端做网站的兼职网页制作的软件有哪些
相关文章
-
前端学校网站开发视频大型高迸发网站用什么语言做
前端学校网站开发视频大型高迸发网站用什么语言做
- 技术栈
- 2026年03月21日
-
前端网站页面模板可以自己做主题的软件
前端网站页面模板可以自己做主题的软件
- 技术栈
- 2026年03月21日
-
前端网站开发教程wordpress图片主题 瀑布流经典
前端网站开发教程wordpress图片主题 瀑布流经典
- 技术栈
- 2026年03月21日
-
前端做网站的兼职网页制作的软件有哪些
前端做网站的兼职网页制作的软件有哪些
- 技术栈
- 2026年03月21日
-
前段模板的网站wordpress二次开发手册
前段模板的网站wordpress二次开发手册
- 技术栈
- 2026年03月21日
-
前后端分离企业网站源码家庭宽带做网站稳定
前后端分离企业网站源码家庭宽带做网站稳定
- 技术栈
- 2026年03月21日






