您的位置:首页 > 软件教程 > 教程 > 使用Jenkins和GitLab实现aspnetcorewebapi项目的CI/CD部署到k8s

使用Jenkins和GitLab实现aspnetcorewebapi项目的CI/CD部署到k8s

来源:好特整理 | 时间:2024-07-05 18:58:22 | 阅读:132 |  标签: T Net Pi API Ins 项目 K S C in ETC   | 分享到:

主题: aspnetcorewebapi项目,提交到gitlab,通过jenkins(gitlab的ci/cd)编译、发布、推送到k8s。 关于gitlab、jenkins、k8s安装,都是使用docker启动服务。 首先新建一个项目,为了方便浏览就把swaggerr非开发环境不展示去掉 下面就是需

aspnetcorewebapi项目,提交到gitlab,通过jenkins(gitlab的ci/cd)编译、发布、推送到k8s。

关于gitlab、jenkins、k8s安装,都是使用docker启动服务。

首先新建一个项目,为了方便浏览就把swaggerr非开发环境不展示去掉

使用Jenkins和GitLab实现aspnetcorewebapi项目的CI/CD部署到k8s

使用Jenkins和GitLab实现aspnetcorewebapi项目的CI/CD部署到k8s

下面就是需要准备Dockerfile和k8s.yaml文件,这里不应该用net5,过时了。

这里需要注意的是configMap的name是我们需要再K8S里面建的appsettings.环境.json文件

一切准备就绪,本地需要有docker环境,就能验证dockerfile是否有报错,我本地是dockerdesktop。

下面就先把代码提交到gitlab,我是用develop自建分支,而且我用的是http

使用Jenkins和GitLab实现aspnetcorewebapi项目的CI/CD部署到k8s

这里gitlab

v17.1.1

有一个问题就是默认会把容器的id当成请求的ip地址,通过git 的git或者http拉取代码这里都会有问题,进入gitlab的容器内部找到 /etc/gitlab/gitlab.rb找到external_url注释掉的一行,改下你实际的地址和端口就行.

使用Jenkins和GitLab实现aspnetcorewebapi项目的CI/CD部署到k8s

这里稍微提一下gitlab的ci/cd,本篇主要是jenkins。

gitlab安装完默认密码存放在 /etc/gitlab/initial_root_password ,默认用户root

networks:指定唯一,在服务器中新建一个networks,方便一个网段通信,如果是分开的服务器就是用ip或者其他。
register runner的时候手敲,ip指定gitlab容器的内网ip,查看命令 docker inspect docker容器id,类似这样的,下面提示就是成功注册一个runner
Registering runner... succeeded runner=

这里是安装gitlab和gitlab-runner的docker-compose.yml

只要在项目中新增.gitlab-ci.yml,再把类似jenkins的shell操作放到文件中就可以了。这里有一个测试的文件,tags很重要,注册runner的时候指定需要的,再在文件中配置了,就会按照流程.

上面仅仅只是一个测试完整流程文件,不涉及docker打包操作,需要docker打包的话runner就需要安装,安装模式有几种,自行查资料.

使用Jenkins和GitLab实现aspnetcorewebapi项目的CI/CD部署到k8s

下面介绍jenkins的操作

使用Jenkins和GitLab实现aspnetcorewebapi项目的CI/CD部署到k8s

使用Jenkins和GitLab实现aspnetcorewebapi项目的CI/CD部署到k8s

使用Jenkins和GitLab实现aspnetcorewebapi项目的CI/CD部署到k8s

这里提一提,通过git拉取代码,需要在jenkins的容器内部生成.ssh的公钥私钥,公钥添加到gitlab的ssh中,私钥就放到jenkins的全局变量中,Credentials就可以选择你的验证方式了.

下面的选择会影响你拉取代码,第一个设置你有可能需要在jenkins容器内部拉取一次代码,最后一个设置可以通过http拉。

使用Jenkins和GitLab实现aspnetcorewebapi项目的CI/CD部署到k8s

使用Jenkins和GitLab实现aspnetcorewebapi项目的CI/CD部署到k8s

下面继续:

使用Jenkins和GitLab实现aspnetcorewebapi项目的CI/CD部署到k8s

使用Jenkins和GitLab实现aspnetcorewebapi项目的CI/CD部署到k8s

这里我有三个步骤,编译,发布,K8S拉取镜像

构建的日志就略过,这里使用的是harbor仓库,注需要注意,docker login需要登陆harbor的仓库,在harbor主机host通过ip地址映射一个随意取名的域名,不要用ip,否则触发https安全检查.

使用Jenkins和GitLab实现aspnetcorewebapi项目的CI/CD部署到k8s

jenkins的第三步,会触发k8s去pull仓库镜像。关于jenkins和k8s的关联就是把k8s主机的config文件拷贝到jenkins的 ./var/jenkins_home/root/.kube/config

当K8S拉取镜像后,服务正常启动.

使用Jenkins和GitLab实现aspnetcorewebapi项目的CI/CD部署到k8s

配置字典里新建autopubtest的appsettings.Production.json文件,该名称需要与k8s。yaml的对应起来autopubtest-config

使用Jenkins和GitLab实现aspnetcorewebapi项目的CI/CD部署到k8s

新建下面的服务

使用Jenkins和GitLab实现aspnetcorewebapi项目的CI/CD部署到k8s

使用Jenkins和GitLab实现aspnetcorewebapi项目的CI/CD部署到k8s

下面就能正常使用接口了

使用Jenkins和GitLab实现aspnetcorewebapi项目的CI/CD部署到k8s

小编推荐阅读

好特网发布此文仅为传递信息,不代表好特网认同期限观点或证实其描述。

项目 1.0.2.24
项目 1.0.2.24
类型:休闲益智  运营状态:正式运营  语言: 英文   

游戏攻略

游戏礼包

游戏视频

游戏下载

游戏活动

《项目》(.projekt)是游戏商StampedeGames制作的一款新型简约益智游戏。.projekt要求你以不同的方式看
K
K
类型:角色扮演  运营状态:封测  语言:中文   

游戏攻略

游戏礼包

游戏视频

游戏下载

游戏活动

《K》是由乐次元开发的一款日系动漫RPG游戏,游戏根据同名动漫改编而来,高水准的漫画和音乐是这款游戏的

相关视频攻略

更多

扫二维码进入好特网手机版本!

扫二维码进入好特网微信公众号!

本站所有软件,都由网友上传,如有侵犯你的版权,请发邮件[email protected]

湘ICP备2022002427号-10 湘公网安备:43070202000427号© 2013~2024 haote.com 好特网