主題: aspnetcorewebapi項目,提交到gitlab,通過jenkins(gitlab的ci/cd)編譯、發(fā)布、推送到k8s。 關于gitlab、jenkins、k8s安裝,都是使用docker啟動服務。 首先新建一個項目,為了方便瀏覽就把swaggerr非開發(fā)環(huán)境不展示去掉 下面就是需
aspnetcorewebapi項目,提交到gitlab,通過jenkins(gitlab的ci/cd)編譯、發(fā)布、推送到k8s。
關于gitlab、jenkins、k8s安裝,都是使用docker啟動服務。
首先新建一個項目,為了方便瀏覽就把swaggerr非開發(fā)環(huán)境不展示去掉
下面就是需要準備Dockerfile和k8s.yaml文件,這里不應該用net5,過時了。
這里需要注意的是configMap的name是我們需要再K8S里面建的appsettings.環(huán)境.json文件
一切準備就緒,本地需要有docker環(huán)境,就能驗證dockerfile是否有報錯,我本地是dockerdesktop。
下面就先把代碼提交到gitlab,我是用develop自建分支,而且我用的是http
這里gitlab
v17.1.1
有一個問題就是默認會把容器的id當成請求的ip地址,通過git 的git或者http拉取代碼這里都會有問題,進入gitlab的容器內部找到 /etc/gitlab/gitlab.rb找到external_url注釋掉的一行,改下你實際的地址和端口就行.
這里稍微提一下gitlab的ci/cd,本篇主要是jenkins。
gitlab安裝完默認密碼存放在 /etc/gitlab/initial_root_password ,默認用戶root
networks:指定唯一,在服務器中新建一個networks,方便一個網(wǎng)段通信,如果是分開的服務器就是用ip或者其他。
register runner的時候手敲,ip指定gitlab容器的內網(wǎng)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的操作
這里提一提,通過git拉取代碼,需要在jenkins的容器內部生成.ssh的公鑰私鑰,公鑰添加到gitlab的ssh中,私鑰就放到jenkins的全局變量中,Credentials就可以選擇你的驗證方式了.
下面的選擇會影響你拉取代碼,第一個設置你有可能需要在jenkins容器內部拉取一次代碼,最后一個設置可以通過http拉。
下面繼續(xù):
這里我有三個步驟,編譯,發(fā)布,K8S拉取鏡像
構建的日志就略過,這里使用的是harbor倉庫,注需要注意,docker login需要登陸harbor的倉庫,在harbor主機host通過ip地址映射一個隨意取名的域名,不要用ip,否則觸發(fā)https安全檢查.
jenkins的第三步,會觸發(fā)k8s去pull倉庫鏡像。關于jenkins和k8s的關聯(lián)就是把k8s主機的config文件拷貝到jenkins的 ./var/jenkins_home/root/.kube/config
當K8S拉取鏡像后,服務正常啟動.
配置字典里新建autopubtest的appsettings.Production.json文件,該名稱需要與k8s。yaml的對應起來autopubtest-config
新建下面的服務
下面就能正常使用接口了
小編推薦閱讀
本站所有軟件,都由網(wǎng)友上傳,如有侵犯你的版權,請發(fā)郵件[email protected]
湘ICP備2022002427號-10 湘公網(wǎng)安備:43070202000427號© 2013~2025 haote.com 好特網(wǎng)