您的位置:首頁 > 軟件教程 > 教程 > 使用Jenkins和GitLab實(shí)現(xiàn)aspnetcorewebapi項(xiàng)目的CI/CD部署到k8s

使用Jenkins和GitLab實(shí)現(xiàn)aspnetcorewebapi項(xiàng)目的CI/CD部署到k8s

來源:好特整理 | 時(shí)間:2024-07-05 18:58:22 | 閱讀:107 |  標(biāo)簽: T Net Pi API Ins 項(xiàng)目 K S C in ETC   | 分享到:

主題: aspnetcorewebapi項(xiàng)目,提交到gitlab,通過jenkins(gitlab的ci/cd)編譯、發(fā)布、推送到k8s。 關(guān)于gitlab、jenkins、k8s安裝,都是使用docker啟動(dòng)服務(wù)。 首先新建一個(gè)項(xiàng)目,為了方便瀏覽就把swaggerr非開發(fā)環(huán)境不展示去掉 下面就是需

aspnetcorewebapi項(xiàng)目,提交到gitlab,通過jenkins(gitlab的ci/cd)編譯、發(fā)布、推送到k8s。

關(guān)于gitlab、jenkins、k8s安裝,都是使用docker啟動(dòng)服務(wù)。

首先新建一個(gè)項(xiàng)目,為了方便瀏覽就把swaggerr非開發(fā)環(huán)境不展示去掉

使用Jenkins和GitLab實(shí)現(xiàn)aspnetcorewebapi項(xiàng)目的CI/CD部署到k8s

使用Jenkins和GitLab實(shí)現(xiàn)aspnetcorewebapi項(xiàng)目的CI/CD部署到k8s

下面就是需要準(zhǔn)備Dockerfile和k8s.yaml文件,這里不應(yīng)該用net5,過時(shí)了。

這里需要注意的是configMap的name是我們需要再K8S里面建的appsettings.環(huán)境.json文件

一切準(zhǔn)備就緒,本地需要有docker環(huán)境,就能驗(yàn)證dockerfile是否有報(bào)錯(cuò),我本地是dockerdesktop。

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

使用Jenkins和GitLab實(shí)現(xiàn)aspnetcorewebapi項(xiàng)目的CI/CD部署到k8s

這里gitlab

v17.1.1

有一個(gè)問題就是默認(rèn)會(huì)把容器的id當(dāng)成請(qǐng)求的ip地址,通過git 的git或者h(yuǎn)ttp拉取代碼這里都會(huì)有問題,進(jìn)入gitlab的容器內(nèi)部找到 /etc/gitlab/gitlab.rb找到external_url注釋掉的一行,改下你實(shí)際的地址和端口就行.

使用Jenkins和GitLab實(shí)現(xiàn)aspnetcorewebapi項(xiàng)目的CI/CD部署到k8s

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

gitlab安裝完默認(rèn)密碼存放在 /etc/gitlab/initial_root_password ,默認(rèn)用戶root

networks:指定唯一,在服務(wù)器中新建一個(gè)networks,方便一個(gè)網(wǎng)段通信,如果是分開的服務(wù)器就是用ip或者其他。
register runner的時(shí)候手敲,ip指定gitlab容器的內(nèi)網(wǎng)ip,查看命令 docker inspect docker容器id,類似這樣的,下面提示就是成功注冊(cè)一個(gè)runner
Registering runner... succeeded runner=

這里是安裝gitlab和gitlab-runner的docker-compose.yml

只要在項(xiàng)目中新增.gitlab-ci.yml,再把類似jenkins的shell操作放到文件中就可以了。這里有一個(gè)測試的文件,tags很重要,注冊(cè)runner的時(shí)候指定需要的,再在文件中配置了,就會(huì)按照流程.

上面僅僅只是一個(gè)測試完整流程文件,不涉及docker打包操作,需要docker打包的話runner就需要安裝,安裝模式有幾種,自行查資料.

使用Jenkins和GitLab實(shí)現(xiàn)aspnetcorewebapi項(xiàng)目的CI/CD部署到k8s

下面介紹jenkins的操作

使用Jenkins和GitLab實(shí)現(xiàn)aspnetcorewebapi項(xiàng)目的CI/CD部署到k8s

使用Jenkins和GitLab實(shí)現(xiàn)aspnetcorewebapi項(xiàng)目的CI/CD部署到k8s

使用Jenkins和GitLab實(shí)現(xiàn)aspnetcorewebapi項(xiàng)目的CI/CD部署到k8s

這里提一提,通過git拉取代碼,需要在jenkins的容器內(nèi)部生成.ssh的公鑰私鑰,公鑰添加到gitlab的ssh中,私鑰就放到j(luò)enkins的全局變量中,Credentials就可以選擇你的驗(yàn)證方式了.

下面的選擇會(huì)影響你拉取代碼,第一個(gè)設(shè)置你有可能需要在jenkins容器內(nèi)部拉取一次代碼,最后一個(gè)設(shè)置可以通過http拉。

使用Jenkins和GitLab實(shí)現(xiàn)aspnetcorewebapi項(xiàng)目的CI/CD部署到k8s

使用Jenkins和GitLab實(shí)現(xiàn)aspnetcorewebapi項(xiàng)目的CI/CD部署到k8s

下面繼續(xù):

使用Jenkins和GitLab實(shí)現(xiàn)aspnetcorewebapi項(xiàng)目的CI/CD部署到k8s

使用Jenkins和GitLab實(shí)現(xiàn)aspnetcorewebapi項(xiàng)目的CI/CD部署到k8s

這里我有三個(gè)步驟,編譯,發(fā)布,K8S拉取鏡像

構(gòu)建的日志就略過,這里使用的是harbor倉庫,注需要注意,docker login需要登陸harbor的倉庫,在harbor主機(jī)host通過ip地址映射一個(gè)隨意取名的域名,不要用ip,否則觸發(fā)https安全檢查.

使用Jenkins和GitLab實(shí)現(xiàn)aspnetcorewebapi項(xiàng)目的CI/CD部署到k8s

jenkins的第三步,會(huì)觸發(fā)k8s去pull倉庫鏡像。關(guān)于jenkins和k8s的關(guān)聯(lián)就是把k8s主機(jī)的config文件拷貝到j(luò)enkins的 ./var/jenkins_home/root/.kube/config

當(dāng)K8S拉取鏡像后,服務(wù)正常啟動(dòng).

使用Jenkins和GitLab實(shí)現(xiàn)aspnetcorewebapi項(xiàng)目的CI/CD部署到k8s

配置字典里新建autopubtest的appsettings.Production.json文件,該名稱需要與k8s。yaml的對(duì)應(yīng)起來autopubtest-config

使用Jenkins和GitLab實(shí)現(xiàn)aspnetcorewebapi項(xiàng)目的CI/CD部署到k8s

新建下面的服務(wù)

使用Jenkins和GitLab實(shí)現(xiàn)aspnetcorewebapi項(xiàng)目的CI/CD部署到k8s

使用Jenkins和GitLab實(shí)現(xiàn)aspnetcorewebapi項(xiàng)目的CI/CD部署到k8s

下面就能正常使用接口了

使用Jenkins和GitLab實(shí)現(xiàn)aspnetcorewebapi項(xiàng)目的CI/CD部署到k8s

小編推薦閱讀

好特網(wǎng)發(fā)布此文僅為傳遞信息,不代表好特網(wǎng)認(rèn)同期限觀點(diǎn)或證實(shí)其描述。

項(xiàng)目 1.0.2.24
項(xiàng)目 1.0.2.24
類型:休閑益智  運(yùn)營狀態(tài):正式運(yùn)營  語言: 英文   

游戲攻略

游戲禮包

游戲視頻

游戲下載

游戲活動(dòng)

《項(xiàng)目》(.projekt)是游戲商StampedeGames制作的一款新型簡約益智游戲。.projekt要求你以不同的方式看
K
K
類型:角色扮演  運(yùn)營狀態(tài):封測  語言:中文   

游戲攻略

游戲禮包

游戲視頻

游戲下載

游戲活動(dòng)

《K》是由樂次元開發(fā)的一款日系動(dòng)漫RPG游戲,游戲根據(jù)同名動(dòng)漫改編而來,高水準(zhǔn)的漫畫和音樂是這款游戲的

相關(guān)視頻攻略

更多

掃二維碼進(jìn)入好特網(wǎng)手機(jī)版本!

掃二維碼進(jìn)入好特網(wǎng)微信公眾號(hào)!

本站所有軟件,都由網(wǎng)友上傳,如有侵犯你的版權(quán),請(qǐng)發(fā)郵件[email protected]

湘ICP備2022002427號(hào)-10 湘公網(wǎng)安備:43070202000427號(hào)© 2013~2025 haote.com 好特網(wǎng)