CentOS單機安裝k8s並部署.NET 6程式 壓測 記錄

abstractcyj發表於2022-02-28

前面部分依照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,結果是這樣的

某運維大佬評價

訪問剛才的/get `go run main.go -c 100 -n 100 -u http://ip:port/get```,結果是這樣

此次給出的評價是

相關文章