k8s業務上線流程


搭建好k8s集群之后,需要在集群內部運行一些業務程序,並可以訪問,這樣的集群才有意義。之前只是自己學習如何搭建集群,如何創建資源對象,更多的是在學習和練習層面,並沒有實際用處,對k8s實際業務上線流程也不是很了解,所以最近學習了下k8s集群的部署流程,簡單整理記錄如下。

1.傳統部署

整體流程為:

開發人員將寫好的代碼提交到代碼倉庫(如Gitlab),運維人員通過CI/CD工具(如Jenkins)將代碼拉取下來,並執行相應的命令或腳本進行構建,對於多節點集群來說,還需要使用自動化工具(如Ansible)將代碼分發到各個節點,並啟動程序,另外還需要配置負載均衡器實現請求轉發和負載均衡。

2.k8s部署

 

整體流程為:

開發人員將寫好的代碼提交到代碼倉庫(如Gitlab),運維人員通過CI/CD工具(如Jenkins)將代碼拉取下來,然后使用新版本代碼構建新版本鏡像並上傳到鏡像倉庫。如果是新上線的業務,需要基於新鏡像創建pod等,如果是系統升級,則直接修改已有pod的鏡像版本即可,k8s會自動完成滾動升級。當然還需要創建相應的service和ingress以使我們的業務程序可供外部訪問。

3.項目遷移到k8s流程

整體流程為:

首先構建新版本鏡像,然后基於新鏡像啟動相應pod,並使用volume對數據進行持久化存儲,然后創建service將應用暴露出去,使用ingress對外發布應用,最后為集群添加日志和監控等系統。

4.Jenkins接入k8s流程

整體流程為:

1.項目開發:開發寫好代碼並提交到Gitlab倉庫中;

2.編寫dockerfile:一般研發同事會寫好,如果研發不會寫,運維也可以幫忙寫,通用是這樣的,由運維構建一個只有lnmp的鏡像,研發在寫dockerfile時from指定lnmp的鏡像,並添加相應的代碼文件和啟動命令即可,然后把dockerfile文件上傳到Gitlab倉庫;

3.配置Jenkins:運維人員搭建並配置Jenkins,添加相應的執行命令或執行腳本,包括代碼拉取,鏡像構建,程序啟動等;

4.構建:開發人員只需要在Jenkins頁面上點一下立即構建,就會執行相應命令或腳本來拉取代碼,構建鏡像,啟動程序;

5.鏡像上傳:構建完docker鏡像后可以將鏡像上傳到私有倉庫中;

6.創建pod:一般會在Jenkins遠程通過kubectl -s apiserver地址去調用k8s管理命令去創建pod,kube-apiserver會在相應node節點從私有倉庫獲取鏡像並運行容器;

7.暴露應用:如果是全新部署直接使用run命令部署即可,然后用expose開放端口,過濾出svc的端口發個郵件提示上線成功;

8.發布應用:對於實際業務來說,一般需要創建ingress來對外發布應用,並實現七層負載均衡;

即:開發寫代碼---將代碼上傳至gitlab---通過Jenkins從gitlab上獲取代碼並構建鏡像---將鏡像上傳至私有倉庫---調用kube-apiserver創建pod---暴露並發布應用---上線。

說明:如果使已有項目升級,只需要修改相應pod的鏡像版本即可,k8s會自動完成滾動升級,不會影響業務系統正常運行。

5.分布式服務架構


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM