k8s部署微服務項目實戰--react前端+springboot/python后端-第一節 項目概述


  本系列博文旨在通過實戰一個我所在部門內部正在孵化的項目的第一階段demo來幫助大家熟悉並初步掌握前后端分離項目的開發以及在k8s上的部署流程,其中涉及到前端react項目的開發流程、后端項目(分別用springboot和python開發)的開發流程、常用的中間件(mariadb集群、redis集群、kafka集群)在k8s中的搭建和使用、前后端項目在k8中的部署和運行、項目后續優化方向,以及最后會使用kubesphere中的devops來實現前后端項目的CI/CD。

  項目的第一版代碼將會在測試結束后上傳到github中,屆時會及時將代碼鏈接更新到本節中,敬請期待。

  下面是各節介紹,熱切歡迎大家的批評和意見:  

  第一節  項目概述
  第二節  前端react項目搭建
  第三節  前端react項目部署到k8s環境中
  第四節  前端項目部署總結以及引入ingress解決兩個問題
  第五節  k8s環境下中間件搭建-mariadb集群
  第六節  k8s環境下中間件搭建-redis集群以及使用
  第七節  k8s環境下中間件搭建-kafka集群以及使用
  第八節  后端項目搭建-springboot開發的部分服務
  第九節  后端項目搭建-python開發的部分服務
  第十節  后端項目部署到k8s環境中
  第十一節 后端項目部署總結以及問題解決
  第十二節 項目運行以及后續優化(helm打包, Istio應用嘗試)
  第十三節 使用kubesphere的devops將項目自動化

  簡單介紹一下我們這個項目-smartocr,就是針對terminal上的測試用例的自動化工具,大體的流程就是用戶使用我們的GUI界面先行創建測試用例或者測試用例集合,每個測試用例需要詳細填寫需要執行的每一條命令以及該命令的期望結果(結果可以是key words或者是運行的結果圖片),后續系統就會根據用戶的需要隨時運行這些測試用例並將結果與期望結果進行比對,將運行結果以圖片或者文字的形式告知用戶。其中涉及到OCR以及某些優化算法,因為與博文無關,因此不做過多介紹,下面是整個系統的框架圖:

  

 

 涉及到的業務層面的微服務有:

WebGUI-FE service: 主要提供了GUI界面供客戶進行測試用例以及lab的增刪查改,測試用例的運行以及實時結果查看。

WebGUI-BE service: 主要處理GUI界面傳來的請求,並且負責與數據訪問層的微服務(DBAccess service)以及測試用例執行層的微服務(Executor service)進行消息的通信,同時需要向redis和kafka中創建key並添加信息。

DBAccess service: 所有的需要訪問mariaDB集群的微服務都將請求發送到該微服務。DBAccess微服務負責直接訪問DB。

Executor service:    負責接收來自WebGUI-BE微服務的請求繼而開始測試用例的具體執行,同時需要向redis和kafka中對應的key中添加執行信息。

Recognition service:  OCR的識別模塊單獨拆出來作為Recognition service, 它負責識別圖片並且返回識別結果,同時向redis和kafka中對應的key中添加識別信息。

涉及到的中間件層面的微服務有:

MariaDB service: MariaDB集群,存儲測試用例以及其他信息。

Redis service: Redis集群,當前使用的是3+3的集群配置,負責存儲測試用例的關鍵信息,方便前端取用。

Kafka service: Kafka集群,需要先期搭建zookeeper。負責存儲測試用例運行的log信息。

Promethues service/Elk service: 當前系統中並未配置,先不予討論,后續配置后再更新博文。

下面這張圖羅列了核心微服務之間的交互流程:

 

 

另外,再介紹一下前后端涉及到的技術和框架以及k8s的環境,前端使用的是react, react router和whatwgfetch,后端大部分使用的是springboot(版本是2.5.4),其中微服務之間的消息通信使用了okhttp3,mysql的版本是5.7。筆者當前的kubernetes版本是1.19,集群環境是3台DL380 G6, 1 master node + 2 worker node,后續的所有部署包括nfs和kubesphere的安裝都是在這套k8s集群中。

 

本節的最后,筆者要特別感謝下面鏈接的作者,后續要介紹的中間件的搭建很大程度上借鑒了這些作者的步驟,再次表示衷心的感謝:

(4條消息) 在K8s上部署Redis 集群_朱溪江的博客-CSDN博客_k8s redis集群

在k8s中部署redis cluster實戰 - 簡書 (jianshu.com)

 

 


免責聲明!

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



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