前面部分依照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```,結果是這樣
此次給出的評價是