【ACK秒级部署】20万用户在10秒处理所有请求每个用户每秒5次请求

本文涉及的产品
性能测试 PTS,5000VUM额度
简介: 【ACK秒级部署】20万用户在10秒处理所有请求每个用户每秒5次请求


准备环境:MySQL、Redis、注册中心、RocketMQ、sentinel流控jar包部署、Jemter环境及脚本

注意事项:白名单、安全组、端口、镜像容器、压测脚本

压测场景:20万用户,在10秒处理完,每个用户每秒5次请求,共计一千万次请求,OPS是100万。

首先将项目打成jar包,然后在同层目录下创建Dockerfile文件,执行构建镜像容器,然后运行镜像容器进行测试项目能否正常运行。

创建Dockerfile:

# 使用openjdk:8作为基础镜像
FROM openjdk:8
# 将app.jar文件拷贝到/tmp目录下
COPY red-packet-rain-0.0.1.jar /tmp
# 设置工作目录为/tmp
WORKDIR /tmp
# 运行命令,启动Java应用程序
CMD java -jar red-packet-rain-0.0.1.jar

构建镜像容器:

docker build -t red-packet-rain-0.0.1.jar:1.0 .

运行镜像容器:

docker run --name red-packet-rain -p 8097:8097 red-packet-rain-0.0.1.jar:1.0

有红框标识出现说明正常启动了

浏览器访问:http://139.224.1.121:8097/api/v3/test

jemter压测受限的因素有很多,如果是本地机器运行jemter进行压测,主要受限于带宽。云服务器压测主要受限于云盘。由于我本地用的是手机热点,带宽不够,所以压不到过万的请求,更别说千万级别的请求了,所以将压测服务弄到云服务器上。

vim /etc/profile

将jdk和jemter添加到文件尾部:

export JAVA_HOME=/opt/jdk1.8.0_291
export JMETER_HOME=/opt/app/JMeter5.4.1/apache-jmeter-5.4.1
export PATH=$JMETER_HOME/bin:$PATH
export PATH=$JAVA_HOME/bin:$PATH

使其生效:

source /etc/profile

配置好相关的jemter压测文件,然后上传到云服务器上,执行以下命令

jmeter -n -t /opt/app/JMeter5.4.1/apache-jmeter-5.4.1/testpain/1.jmx -l  redtest1.jtl

推送到阿里云仓库文档:

https://cr.console.aliyun.com/repository/cn-shanghai/red_packet_rain/red_packet_rain/details

docker login --username=javaliaozhiwei registry.cn-shanghai.aliyuncs.com
docker tag [ImageId] registry.cn-shanghai.aliyuncs.com/red_packet_rain/red_packet_rain:[镜像版本号]
docker push registry.cn-shanghai.aliyuncs.com/red_packet_rain/red_packet_rain:[镜像版本号]

找另一台机器拉取镜像测试是否可用:

docker pull registry.cn-shanghai.aliyuncs.com/red_packet_rain/red_packet_rain:1.0

复制镜像容器

搜索ACK创建集群

文档与视频操作:https://help.aliyun.com/zh/ack/ack-managed-and-ack-dedicated/getting-started/getting-started-with-ack-using-kubectl?spm=a2c4g.11186623.0.0.72e11a99VUIajK

创建后不可用

分别看诊断结果

第一个问题是拉取镜像失败

判断应该是权限认证没有配置,使用免密组件拉取容器镜像,文档地址:

https://help.aliyun.com/zh/ack/ack-managed-and-ack-dedicated/user-guide/use-the-aliyun-acr-credential-helper-component-to-pull-images-without-using-secrets?spm=a2c4g.11186623.0.0.8dc32dbfDVQbco

第二个问题是Pod不满足调度约束无法被调度,在异常页面左边有一个节点池,点伸缩就可以扩容,伸缩是目标的节点数,不是伸缩多少台。2个节点只能有一个镜像容器,多了会提示资源不够,4个节点只能有3个镜像容器,多了也是一样提示资源不够,5个节点则是最多4个镜像容器,后面以此类推。

然后又提示Pod的Sandbox容器创建失败

容器网络FAQ文档地址:https://help.aliyun.com/zh/ack/ack-managed-and-ack-dedicated/user-guide/faq-about-container-networks

等待工单回复,后期继续更新


相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
2月前
|
Kubernetes 持续交付 Docker
利用 Docker 和 Kubernetes 实现微服务部署
【10月更文挑战第2天】利用 Docker 和 Kubernetes 实现微服务部署
|
7天前
|
存储 Kubernetes 容器
K8S部署nexus
该配置文件定义了Nexus 3的Kubernetes部署,包括PersistentVolumeClaim、Deployment和服务。PVC请求20Gi存储,使用NFS存储类。Deployment配置了一个Nexus 3容器,内存限制为6G,CPU为1000m,并挂载数据卷。Service类型为NodePort,通过30520端口对外提供服务。所有资源位于`nexus`命名空间中。
|
2月前
|
Prometheus Kubernetes 监控
k8s部署针对外部服务器的prometheus服务
通过上述步骤,您不仅成功地在Kubernetes集群内部署了Prometheus,还实现了对集群外服务器的有效监控。理解并实施网络配置是关键,确保监控数据的准确无误传输。随着监控需求的增长,您还可以进一步探索Prometheus生态中的其他组件,如Alertmanager、Grafana等,以构建完整的监控与报警体系。
141 60
|
2月前
|
Prometheus Kubernetes 监控
k8s部署针对外部服务器的prometheus服务
通过上述步骤,您不仅成功地在Kubernetes集群内部署了Prometheus,还实现了对集群外服务器的有效监控。理解并实施网络配置是关键,确保监控数据的准确无误传输。随着监控需求的增长,您还可以进一步探索Prometheus生态中的其他组件,如Alertmanager、Grafana等,以构建完整的监控与报警体系。
271 62
|
1月前
|
Kubernetes Cloud Native 微服务
云原生入门与实践:Kubernetes的简易部署
云原生技术正改变着现代应用的开发和部署方式。本文将引导你了解云原生的基础概念,并重点介绍如何使用Kubernetes进行容器编排。我们将通过一个简易的示例来展示如何快速启动一个Kubernetes集群,并在其上运行一个简单的应用。无论你是云原生新手还是希望扩展现有知识,本文都将为你提供实用的信息和启发性的见解。
|
1月前
|
存储 Kubernetes Devops
Kubernetes集群管理和服务部署实战
Kubernetes集群管理和服务部署实战
59 0
|
2月前
|
Kubernetes Cloud Native 流计算
Flink-12 Flink Java 3分钟上手 Kubernetes云原生下的Flink集群 Rancher Stateful Set yaml详细 扩容缩容部署 Docker容器编排
Flink-12 Flink Java 3分钟上手 Kubernetes云原生下的Flink集群 Rancher Stateful Set yaml详细 扩容缩容部署 Docker容器编排
93 3
|
2月前
|
Kubernetes Docker 微服务
微服务实践k8s&dapr开发部署实验(1)服务调用(一)
微服务实践k8s&dapr开发部署实验(1)服务调用(一)
54 2
|
2月前
|
Kubernetes 网络安全 容器
基于Ubuntu-22.04安装K8s-v1.28.2实验(一)部署K8s
基于Ubuntu-22.04安装K8s-v1.28.2实验(一)部署K8s
348 2
|
3月前
|
Kubernetes 应用服务中间件 nginx
Kubernetes上安装Metallb和Ingress并部署应用程序
Kubernetes上安装Metallb和Ingress并部署nginx应用程序,使用LoadBalancer类型的KubernetesService
224 9

热门文章

最新文章

推荐镜像

更多