腾讯压测建议方案
附件: kubernetes 集群压测方及监控告警案方案.pdf
摘要:
Kubernetes网络和集群性能测试
参考:https://jimmysong.io/kubernetes-handbook/practice/network-and-cluster-perfermance-test.html
-
工具
- Locust
- curl
- kubemark
- 测试程序 sample-webapp
-
网络延迟测试场景
- node节点上测试 clusterIP访问
- 集群内测试 service访问
- 集群外测试 公网上traefik ingress访问
-
网络性能测试场景
- 主机间
- 不同主机pod间
- 主机与非同主机pod间
Kubernetes集群性能测试(Kubemark)
参考:https://supereagle.github.io/2017/03/09/kubemark/
-
原理
- kubemark: K8s官方提供的一个对K8s集群进行性能测试的工具。
- 真实k8s master + 虚拟node
- 测试过程走整个API流程,但不真实创建pod (k8s-api压测)
- 借用Kubermark,直接在真实集群上跑E2E测试,从而对我们真实集群进行性能测试
-
能测什么
- 极限指标:node上限、pod上限、性能瓶颈、服务延迟
- 服务质量:node启动时间、pod启动时间、api延迟
-
怎么用
- 开启一个测试集群(在GCE上)
- 在测试集群上运行e2e测试 (what is e2e 测试)
- 监视测试过程并对错误进行调试
- 退出测试集群
其他参考:
运用Kubernetes进行分布式负载测试(Locust)
参考:https://blog.csdn.net/qq_34463875/article/details/72730448
-
怎么用
- 部署web应用
- 部署Locust的Controller和Service
- 创建Controller Docker镜像(可选)
- 部署Locust-Master
- 部署Locust-Worker
- 配置Traefik
- 执行测试
- 伪造的用户数和用户每秒发送的请求个数
- 测试过程中调整
sample-webapp
的pod个数 - 观察pod的负载变化情况