[云原生专题-59]:Kubesphere云治理-操作-分步部署Web业务平台RuoYi Cloud项目 - 手工上云部署实际过程全部操作步骤
作者主頁(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客
本文網址:https://blog.csdn.net/HiWangWenBing/article/details/123004798
目錄
集群規劃:
第一大步:MySQL微服務的部署、配置、初始化
第1步:MySQL微服務的部署
第2步:MySQL微服務庫的數據遷移(可選)
第3步:數據庫的初始化(可選之一)
第二大步:nacos微服務的部署、配置、初始化
第1步:nacos微服務的部署
第2步:nacos服務自身的配置文件的修改
第3步:Nacos測試
第三大步:Redis微服務的部署、配置、初始化
第1步:Redis微服務的部署
第2步:Redis微服務的配置(可選)
第3步:Redis微服務的初始化(無)
第四步:配置nacos中關于ruoyi微服務訪問數據庫所需要的信息
第1步:為ruoyi微服務指定訪問MySQL數據庫的信息
第2步:為Ruoyi微服務指定訪問Redis數據庫的信息
第五大步:部署Rouyi系統后臺微服務:ruoyi-xxx
第1步:修改bootstrap.yml配置文件(可選)
第2步:編譯微服務代碼,并打包成jar包
第3步:制作微服務的docker鏡像
第4步:發布微服務的docker鏡像
第5步:部署微服務的docker鏡像
第6步:測試部署的微服務
第六大步:部署Rouyi系統后臺管理系統UI:ruoyi-ui'
第1步: 編譯前修改配置文件的修改(可選)
第2步:編譯微服務目標代碼并打包
第3步:準備dockerfile和nginx鏡像模板
第4步:制作微服務的docker鏡像
第5步:發布微服務的docker鏡像
第6步:部署微服務的docker鏡像
第7步:測試部署的微服務
最終大匯總
集群規劃:
第一大步:MySQL微服務的部署、配置、初始化
第1步:MySQL微服務的部署
按照有狀態Service的方式部署MySQL:
[云原生專題-50]:Kubesphere云治理-操作-分步部署基于微服務的業務應用 - 數據庫中間件MySQL微服務部署過程_文火冰糖(王文兵)的博客-CSDN博客
備注:
- MySQL數據訪問的用戶名和密碼是通過創建服務是的環境變量傳入的,默認的用戶名是root, 密碼可以通過如下的方式設定為"root"
- MySQL數據庫,必須通過NodePort Service的方式,提供公網遠程訪問。
- 云上MySQL數據庫可以部署多個實例。
- 云上MySQL數據庫的實例可以動態的伸縮、相互負載均衡。
- 云上MySQL數據庫可以相互容災,一個節點奔潰,可以自動遷移到其他節點上。
第2步:MySQL微服務庫的數據遷移(可選)
如果之前在單機版上運行了RuoYi Cloud項目,那么應該已經有了本地的MySQL數據庫,此時可以通過MySQL workbench工具,把本地MySQL數據庫的內容直接遷移到部署在“云”上的MySQL數據庫,輕松、簡單、快速。
??有三個schemas需要從本地數據庫導入到遠程剛剛部署的MySQL數據庫中。
- ry-config:nacos微服務所需要的數據庫,用于管理注冊到其中業務相關的微服務。
- ry-cloud:rouyi應用程序微服務所需要的數據庫,用于存放rouyi管理系統中的配置數。
- ry-seata:ruoyi的分布式事務模塊數據庫
導入成功后,可以通過MySQL workbench遠程連接到遠程數據庫檢查數據庫的內容。
第3步:數據庫的初始化(可選之一)
通過MySQL workbench連接遠程的服務器,分布導入RuoYi-Cloud提供的幾個本地數據庫
- ry-config:RuoYi-Cloud\sql\ry_config_20220114.sql? ? =》 for nacos
- ry-cloud:RuoYi-Cloud\sql\ry_20210908.sql? ? ? ? ? ? ? ? ?=》?RuoYi的后臺管理數據庫
- ry-cloud:RuoYi-Cloud\sql\quartz.sql? ? ? ? ? ? ? ? ? ? ? ? ? ?=》?RuoYi job調度數據庫
- ry-seata:RuoYi-Cloud\sql\ry_seata_20210128.sql? ? ? =》RuoYi 分布式事務模塊
第二大步:nacos微服務的部署、配置、初始化
第1步:nacos微服務的部署
按照有狀態Service的方式部署nacos:
[云原生專題-55]:Kubesphere云治理-操作-分步部署基于微服務的業務應用 - 微服務注冊中間件Nacos的部署_文火冰糖(王文兵)的博客-CSDN博客
備注:
(1)部署多個nacos實例,比如3個pod
(2)通過LSB Service方式實現多個nacos的負載均衡
(3)LSB Service通過集群內部的域名,而不是IP地址,提供給集群內的微服務進行訪問(注冊)
(4)要掛載配置nacos的配置文件:
- cluster.conf
- application.properites
第2步:nacos服務自身的配置文件的修改
(1)cluster.conf配置的修改
# ip:port 200.8.9.16:8848 200.8.9.17:8848 200.8.9.18:8848用每個nacos node實例的域名,替換IP地址,應用該配置文件后,nacos服務會自動重啟。
(2)application.Properties配置文件的修改
該配置文件,定義了nacos如何訪問其所需要的MySQL數據庫。
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC db.user.0=root db.password.0=root- nacos訪問MySQL數據庫微服務的域名,替換本地IP地址:127.0.0.1·
- nacos訪問MySQL數據庫微服務的端口號:3306
- nacos訪問MySQL數據庫微服務的用戶名:root
- nacos訪問MySQL數據庫微服務的用戶名:root
第3步:Nacos測試
http://公網地址:8848/nacos/index.html第三大步:Redis微服務的部署、配置、初始化
redis服務器提供給ruoyi的微服務存儲業務數據
第1步:Redis微服務的部署
[云原生專題-51]:Kubesphere云治理-操作-分步部署基于微服務的業務應用 - 數據庫中間件Redis微服務部署過程_文火冰糖(王文兵)的博客-CSDN博客作者主頁(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客本文網址:https://blog.csdn.net/HiWangWenBing/article/details/122930680目錄前言:第1步:前置條件1.1 在Kubesphere選擇項目空間(名字空間)1.2在dockerhub找到Redis部署的所需要配置參數1.3Redis server部署的規劃1.4 預先在微服務外部創建PVC持久化卷1.5 預先在微服務外部創建..https://blog.csdn.net/HiWangWenBing/article/details/122930680
- 需要掛載配置文件
第2步:Redis微服務的配置(可選)
修改配置文件,設定Redis訪問的密碼
可以不用設置Redis的訪問密碼
第3步:Redis微服務的初始化(無)
無初始化數據需求。
第四步:配置nacos中關于ruoyi微服務訪問數據庫所需要的信息
第1步:為ruoyi微服務指定訪問MySQL數據庫的信息
(1)確定使用到MySQL數據庫的Ruoyi微服務
- ruoyi-job-dev.yml
- ruoyi-system-dev.yml
(2)修改Ruoyi訪問MySQL數據庫訪問所需要的用戶名、密碼
- MySQL數據庫的域名
- MySQL數據庫的端口號
- 用戶名:root
- 密碼:root
由于微服務眾多,很多微服務需要訪問MySQL數據庫,如果在每個微服務上設置訪問MySQL數據庫的用戶名和密碼,效率自然低下,為此,采用了集中式的方式管理微服務訪問MySQL數據庫的用戶名和密碼,nacos是微服務的注冊中心,正好符合集中化管理微服務的職責,因此微服務訪問MySQL數據庫的用戶名和密碼的信息就可以由nacos統一進行管理,當然,nacos自身是不存放數據的,nacos把數據存放在MySQL數據庫倉庫中。
第2步:為Ruoyi微服務指定訪問Redis數據庫的信息
(1)確定使用到Redis數據庫的Ruoyi微服務
- ruoyi-gateway
- ruoyi-auth
- ruoyi-system
- ruoyi-gen
- ruoyi-job
(2)修改對應的yml文件
- redis服務的域名,默認是localhost
- port:6379 (默認)
- 登錄密碼:root (可選設置,默認為空)
第五大步:部署Rouyi系統后臺微服務:ruoyi-xxx
第1步:修改bootstrap.yml配置文件(可選)
指定Nacos域名和端口號。
第2步:編譯微服務代碼,并打包成jar包
采用IntelliJ IDEA集成開發環境的maven工具進行編譯、測試、驗證
?(1)入口:Maven(可以執行軟件發布的流水線操作,不僅僅是build)
(2)在ruoyi/Lifecycle操作,這里對所有的模塊執行指定的操作
(3)選clean、validate、compile、test、pacakge
(4)執行運行
- clean:清除編譯過程中的目標文件
- validate:檢查環境
- compile:對每個模塊進行編譯
- test:單元測試
- pacakge:把java的目標代碼打包成jar包,可以在docker中執行的jar目標文件
?以gateway為例,生成的jar文件在:
F:\MySource\gitee\RuoYi-Cloud\ruoyi-gateway\target\ruoyi-gateway.jar第3步:制作微服務的docker鏡像
(1)docker鏡像制作的服務器選擇
docker鏡像的制作需要有docker的環境,可以在windows下進行,也可在Linux編譯服務器上執行,也可以在部署ruoyi和K8S的Linux主機上(天然自帶docker環境),如果是在遠程的Linux服務器上,需要通過sfpt把制作鏡像所需要的輸入文件,傳送到服務器上。
(2)準備輸入目錄和dockerfile
ruoyi為構建docker鏡像提供了目錄結構和初始的dockerfile,以gateway微服務為例:
RuoYi-Cloud\docker\ruoyi\gateway # 基礎鏡像 =》 采用java8 jre環境,也可以使用待調試信息的java8 jar環境 FROM openjdk:8-jre# author =》作者 MAINTAINER ruoyi# 掛載目錄 =》 創建jar目標文件在docker鏡像中的位置 VOLUME /home/ruoyi# 創建目錄 =》 生成的docker鏡像中,存放jar文件的目錄 RUN mkdir -p /home/ruoyi# 指定路徑 》 指定存放jar文件的目錄 WORKDIR /home/ruoyi# 復制jar文件到路徑 =》 輸入文件的路徑 =》 docker鏡像中jar文件的位置 COPY ./jar/ruoyi-gateway.jar /home/ruoyi/ruoyi-gateway.jar# 啟動網關服務 =》 如何通過docker啟動,通過WORKDIR目錄和文件名找到docker中的jar文件 ENTRYPOINT ["java","-jar","ruoyi-gateway.jar"](3)準備輸入文件:jar
把RuoYi-Cloud\ruoyi-gateway\target\ruoyi-gateway.jar 文件,手工拷貝到
? ? ?RuoYi-Cloud\docker\ruoyi\gateway\jar目錄中
針對其他jar文件,執行相同的操作:
(4)通過sftp工具,把ruoyi目錄上傳到制作docker鏡像的服務器上。
備注:如果直接在windows上打包,這一步則可以省略。
(5)在制作docker機器的服務器上執行:
$ cd ruoyi/ruoyi-gateway$ docker build -t ruoyi-gateway:v1.0 -f Dockerfile .依次,在每個目錄中執行上述命令,生成各自的docker鏡像。
(6)檢查生成的鏡像
$ docker images |grep ruoyi第4步:發布微服務的docker鏡像
可以把鏡像發布到docker hub服務或阿里云鏡像服務器上。
(1)注冊賬號(免費個人空間)
(2)創建倉庫或名字空間, 用于存儲鏡像
?(3)通過docker命令行登錄到鏡像服務器
docker login --username xxxxx register.cn-hangzhou.aliyuncs.com(4)給鏡像打標簽tag
docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/lyf_ruoyi/ruoyi-gateway:[鏡像版本號]依次為每個鏡像打標簽。。。。。
(5)推送鏡像
docker push registry.cn-hangzhou.aliyuncs.com/lyf_ruoyi/ruoyi-gateway:[鏡像版本號]一次發布每個鏡像。。。。。。。
(6)檢查發布的鏡像
在docker hub服務或阿里云鏡像服務器的web頁面檢查發布的鏡像是否上傳成功 。
第5步:部署微服務的docker鏡像
共性:
- 以無狀態Service的方式部署如下的鏡像
- 無外網訪問
- 部署單個服務前,必須確認對應的nacos配置文件的設置是否正確(MySQL和Redis服務器)
- mount配置文件:bootstrap.yml配置文件,指定Nacos域名和端口號
依次部署:
- ruoyi-vistual-monitor
- ruoyi-system
- ruoyi-job
- ruoyi-gateway
- ruoyif-file
- ruoyi-auth
第6步:測試部署的微服務
在nacos管理終端中,查看服務每個服務是否注冊成功。
http://公網地址:8848/nacos/index.html第六大步:部署Rouyi系統后臺管理系統UI:ruoyi-ui'
第1步: 編譯前修改配置文件的修改(可選)
RuoYi-Cloud\ruoyi-ui\vue.configtarget: `http://localhost:8080`, => 修改成網關的域名第2步:編譯微服務目標代碼并打包
ruoyi-ui并不是jar文件,而是各個頁面的cs的配置文件。
該鏡像的基礎是nginx鏡像,只要把這些頁面的配置提供給nginx引擎,頁面就可以launch起來了。
cd RuoYi-Cloud\ruoyi-ui# 開發環境 nmp run build:dev# 生成環境 nmp run build:prod輸出制品包:
RuoYi-Cloud\ruoyi-ui\dist
輸出是一組頁面配置文件,包括首頁index.html
dist目錄以及這些配置文件,即為docker鏡像制作的輸入文件。
第3步:準備dockerfile和nginx鏡像模板
(1)
ruoy已經為我們準備好了nginx鏡像模板,位置在:RuoYi-Cloud\docker\nginx
我們只需要把編譯打包出來dist目錄中的內容,到此目錄中的子目錄即可:
源? ?:RuoYi-Cloud\ruoyi-ui\dist
目的:RuoYi-Cloud\docker\nginx\html\dist\
(2)修改nginx配置文件 (可選,后續可以通過mount配置文件的方式,在docker中修改)
\RuoYi-Cloud\docker\nginx\conf\nginx.conf
server {listen 80;server_name localhost; # 修改成“-”,表明不限制接口proxy_pass http://ruoyi-gateway:8080/; # =》 rouyi-gateway的域名第4步:制作微服務的docker鏡像
$ cd ruoyi/ruoyi-ui$ docker build -t ruoyi-ui:v1.0 -f Dockerfile .第5步:發布微服務的docker鏡像
docker login --username xxxxx register.cn-hangzhou.aliyuncs.comdocker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/lyf_ruoyi/ruoyi-ui:[鏡像版本號]docker push registry.cn-hangzhou.aliyuncs.com/lyf_ruoyi/ruoyi-gateway:[鏡像版本號]第6步:部署微服務的docker鏡像
選擇nodePort向集群外的公網暴露給服務,通過公網訪問ruoyi的后臺管理。
?
第7步:測試部署的微服務
?
- 在打包的時候修改后端的配置文件:bootstrap.yml
- 在打包的時候修改前端的配置文件: RuoYi-Cloud\ruoyi-ui\vue.config
- 在打包的時候修改nginx的配置文件:RuoYi-Cloud\docker\nginx\conf\nginx.conf
最終大匯總
?至此,這個ruoyi服務的手工上云過程就完成了!
作者主頁(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客
本文網址:https://blog.csdn.net/HiWangWenBing/article/details/123004798
總結
以上是生活随笔為你收集整理的[云原生专题-59]:Kubesphere云治理-操作-分步部署Web业务平台RuoYi Cloud项目 - 手工上云部署实际过程全部操作步骤的全部內容,希望文章能夠幫你解決所遇到的問題。