code学习

CentOS单机安装k8s并部署.NET 6程序 压测 记录

前面部分依照CentOS单机安装k8s并部署.NET 6程序来进行,内存、cpu、centos版本一致,之前222元买的三年8M 2c4g腾讯云轻量服务器,这个教程算是写的很详细的了,基本可以一致执行下去就能打开网页

我卡在了搭建私有仓库部分,里面写的是需要添加insecure-registries,然后重启,但是重启之后我这里一直启动不了(IP已经修改成自己服务器的IP),随后我将添加的insecure-registries部分删掉,然后推送仓库时推送到了自己的docker hub(10.211.55.10:8888替换成自己的hub名称,后面的yaml里面也需要对应修改),并且想着后面做压测,就稍微改了一下代码,在

app.Run();

前增加了

app.UseEndpoints(endpoints =>
{
    endpoints.MapGet("/get",async content => {
        await content.Response.WriteAsync("hello!");
    });
});
           

这样,压测我们就直接访问/get

如果按照教程搞完之后,需要对网站进行修改,然后更新到k8s,那么可以在 dotnet publish 之后,将文件复制进容器中

docker ps -a

docker cp /root/publish/. a4951a90cc85:/app/

docker commit -m="添加get" a4951a90cc85 wangpengzong/k8s-netcore-demo:1.1

docker push wangpengzong/k8s-netcore-demo:1.1
           

然后去修改yaml文件里面的image,将

image: wangpengzong/k8s-netcore-demo

修改成

image: wangpengzong/k8s-netcore-demo:1.1

,然后保存

执行

kubectl delete -f deploy.yaml

删除之前创建的yaml和对应pod等

再执行一下

kubectl create -f deploy.yaml --validate

一下即可,执行之后需要重新查看新的端口号

kubectl get svc -n k8s-netcore

压测我是用的是go-stress-testing(压测工具如何选择? ab、locust、Jmeter、go压测工具【单台机器100w连接压测实战】),安装时可能出现安装不了的问题,例如

A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.

,更改一下代理

go env -w GOPROXY=https://goproxy.cn,direct

即可

-c 表示并发数

   -n 每个并发执行请求的次数,总请求的次数 = 并发数 * 每个并发执行请求的次数

   -u 需要压测的地址

   # clone 项目
   git clone https://github.com/link1st/go-stress-testing.git

   # 进入项目目录
   cd go-stress-testing

   # 运行 
   go run main.go -c 1 -n 100 -u https://www.baidu.com/
           

简单压测,如果直接访问网站

go run main.go -c 100 -n 100 -u http://ip:port

,结果是这样的

CentOS单机安装k8s并部署.NET 6程序 压测 记录

某运维大佬评价

CentOS单机安装k8s并部署.NET 6程序 压测 记录

访问刚才的/get `go run main.go -c 100 -n 100 -u http://ip:port/get```,结果是这样

CentOS单机安装k8s并部署.NET 6程序 压测 记录

此次给出的评价是

CentOS单机安装k8s并部署.NET 6程序 压测 记录