本文主要總結(jié)CI/CD的流程,不會詳細(xì)介紹每個(gè)知識點(diǎn)。
啥是集成?啥是部署?
集成,就是把應(yīng)用程序、相關(guān)環(huán)境、配置全局打包放在一個(gè)容器中的操作。部署就不解釋了。
CI/CD
如果是自己手動部署的話,流程應(yīng)該是這樣的:
- 在本地打包成jar包
- 將jar包上傳至服務(wù)器
- 在服務(wù)器上其他環(huán)境,比如jdk環(huán)境
- 在服務(wù)器上啟動該服務(wù)
- 如果有代碼更新,就先更新代碼,然后重復(fù)上述步驟
現(xiàn)在有了CI/CD(持續(xù)集成/持續(xù)部署)之后,這個(gè)操作流程就變成自動化的了。下圖是一個(gè)k8s+jenkins實(shí)現(xiàn)CI/CD的示意圖:
Docker&K8S
一文帶你認(rèn)識「Docker」與「k8s」 - 掘金
在K8S中,有很多個(gè)pod,每個(gè)pod對應(yīng)一個(gè)namespace(命名空間)。
每個(gè)pod中,有很多個(gè)container容器,每個(gè)container對應(yīng)一個(gè)應(yīng)用程序。
如果寫成樹結(jié)構(gòu),就是這樣的:
K8S
pod1(namespace1)
container11(應(yīng)用程序)
container12(應(yīng)用程序)
...
pod2(namespace2)
container21(應(yīng)用程序)
container22(應(yīng)用程序)
...
...
Nginx-ingress
現(xiàn)在應(yīng)用程序在每個(gè)容器中運(yùn)行起來了。那用戶如何通過k8s訪問到內(nèi)部的應(yīng)用呢?用Nginx-ingress。
Kubernetes(k8s)Ingress原理 - 大數(shù)據(jù)老司機(jī) - 博客園
實(shí)現(xiàn)上來說,就是加一個(gè).yaml配置文件,用于將請求映射到k8s中某個(gè)運(yùn)行的容器。然后應(yīng)用 yaml 到 k8s kubectl apply -f <yaml文件名>,至此,就可以通過配置的域名進(jìn)行訪問了。文章來源:http://www.zghlxwxcb.cn/news/detail-836123.html
總結(jié)
如果自己要進(jìn)行CI/CD,步驟應(yīng)該是這樣的:文章來源地址http://www.zghlxwxcb.cn/news/detail-836123.html
- 寫好代碼,push到代碼托管平臺
- 代碼托管平臺封裝Docker鏡像(CI)
- K8S拉取Docker鏡像,并運(yùn)行(CD)
- 用戶訪問服務(wù),Nginx根據(jù)用戶的請求將請求轉(zhuǎn)發(fā)到K8S中對應(yīng)的運(yùn)行的應(yīng)用(Nginx-Ingress)
到了這里,關(guān)于【云原生】持續(xù)集成&持續(xù)部署的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!