1. 程式人生 > 實用技巧 >azure devops sever自動生成容器映象部署到k8s

azure devops sever自動生成容器映象部署到k8s

如果沒有配置過管道的請參考上一篇部落格

https://www.cnblogs.com/lidezhen/p/13430503.html

k8s安裝請參考:

https://www.cnblogs.com/lidezhen/p/13423802.html

harbor安裝請參考:

https://goharbor.io/docs/2.0.0/install-config/

開啟上次的程式碼專案,新增Dockerfile

內容如下,具體引數含義請參考官方文件

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1
WORKDIR /app
COPY . /app
ENV TZ=Asia/Shanghai
RUN ln 
-snf /usr/share/zoneinfo/$TZ /etc/localtime && echo '$TZ' > /etc/timezone ENTRYPOINT ["dotnet", "WebApplication7.dll"]

然後進入到上次的管道,進行編輯,新增通過ssh複製檔案

新增ssh

編輯管道專案如下(目標資料夾需要在linux伺服器上先建立好)

新增ssh

新增bash指令碼

cd /home/test/WebApplication7
version=$(date "+%Y%m%d%H%M%S")
docker build -t reg.lidezhen.com/library/testapp:$version . 
docker login reg.lidezhen.com 
-u admin -p Harbor12345 docker push reg.lidezhen.com/library/testapp:$version

STDERR故障的勾選去掉,推送映象時會有ERR資訊,但是一樣會推送成功,儲存後點擊執行管道

到harbor上檢視,映象已經存在

現在用harbor的映象部署到k8s上,k8s使用kuboard做前端,直接在上面操作

新增namespace

建立工作負載

點選儲存

應用已經部署完成,系統分配的埠為31444,開啟頁面,成功訪問

部署完成後,需要更改azure devops server管道,實現自動部署

點選kuboard上的CI/CD整合

複製上面紅色框的內容加到管道的ssh腳本里面,更改tag為變數

cd /home/test/WebApplication7
version=$(date "+%Y%m%d%H%M%S")
docker build -t reg.lidezhen.com/library/testapp:$version . 
docker login reg.lidezhen.com -u admin -p Harbor12345
docker push reg.lidezhen.com/library/testapp:$version
curl -X PATCH \
  -H "content-type: application/strategic-merge-patch+json" \
  -H "Authorization:Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6Ik5HOUtSZTJPOEg5QlBxMHRLczlET09uaS1NRDhTMGJPVVAyUnFxR3ZEM28ifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrdWJvYXJkLXVzZXItdG9rZW4tOWc3NWwiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoia3Vib2FyZC11c2VyIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiN2Y1NjA5ZTEtNGQ5MC00YTcwLTlkYWQtOTc5ODFhZjQxMGUzIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmUtc3lzdGVtOmt1Ym9hcmQtdXNlciJ9.fj48RBJnW24e7AhtP4Z8EHJkRzZbRpyELwM-jLUWymI4yAX3x8x_7fYFsxETs1GNHBf_rVr_fv6BLZWtvOGZIqHOPjluAxBDRO0wbbWOEYgNBAw9D0UxFSPACbsF7OEq0nWaTBSrW8Zx46w6_j77zyoX34ohF3X-cULZpzoKhOBhDtavIHhzCVyjCM51Bl-tl03oMYo-6S3t9n_wC0s10lBsUpqPnoa_tT4u1jav3mAd0sIVpDpr--urYlKC0ZvSiPKD2k_ptwIxknGBmou7_7p59KBMOkLY001xE0UNOkcZFKldoj2gNj7Z3vOAcq50-5TMVW3G4oFKqL4mXGgsuw" \
  -d '{"spec":{"template":{"spec":{"containers":[{"name":"test","image":"reg.lidezhen.com/library/testapp:'$version'"}]}}}}' \
  "http://192.168.123.21:32567/k8s-api/apis/apps/v1/namespaces/test/deployments/web-test"

點選儲存,然後更改主頁程式碼看自動部署是否成功

儲存提交程式碼

應用自動部署成功,檢視主頁已經更改。

到這裡自動CI/CD的流水線已成功設定完成。