azure devops server自动生成容器镜像部署到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的流水线已成功设置完成。

posted @ 2020-08-04 21:15  悳鎭  阅读(751)  评论(0编辑  收藏  举报