[云原生专题-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步:测试部署的微服务

最终大汇总


集群规划:

[云原生专题-59]:Kubesphere云治理-操作-分步部署Web业务平台RuoYi Cloud项目 - 手工上云部署实际过程全部操作步骤

[云原生专题-59]:Kubesphere云治理-操作-分步部署Web业务平台RuoYi Cloud项目 - 手工上云部署实际过程全部操作步骤

第一大步:MySQL微服务的部署、配置、初始化

第1步:MySQL微服务的部署

按照有状态Service的方式部署MySQL:

[云原生专题-50]:Kubesphere云治理-操作-分步部署基于微服务的业务应用 - 数据库中间件MySQL微服务部署过程_文火冰糖(王文兵)的博客-CSDN博客

备注:

  • MySQL数据访问的用户名和密码是通过创建服务是的环境变量传入的,默认的用户名是root, 密码可以通过如下的方式设定为"root"

[云原生专题-59]:Kubesphere云治理-操作-分步部署Web业务平台RuoYi Cloud项目 - 手工上云部署实际过程全部操作步骤

  • MySQL数据库,必须通过NodePort Service的方式,提供公网远程访问。
  • 云上MySQL数据库可以部署多个实例。
  • 云上MySQL数据库的实例可以动态的伸缩、相互负载均衡。
  • 云上MySQL数据库可以相互容灾,一个节点奔溃,可以自动迁移到其他节点上。

第2步:MySQL微服务库的数据迁移(可选)

如果之前在单机版上运行了RuoYi Cloud项目,那么应该已经有了本地的MySQL数据库,此时可以通过MySQL workbench工具,把本地MySQL数据库的内容直接迁移到部署在“云”上的MySQL数据库,轻松、简单、快速。

[云原生专题-59]:Kubesphere云治理-操作-分步部署Web业务平台RuoYi Cloud项目 - 手工上云部署实际过程全部操作步骤

  有三个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 预先在微服务外部创建..[云原生专题-59]:Kubesphere云治理-操作-分步部署Web业务平台RuoYi Cloud项目 - 手工上云部署实际过程全部操作步骤https://blog.csdn.net/HiWangWenBing/article/details/122930680

  • 需要挂载配置文件

第2步:Redis微服务的配置(可选)

修改配置文件,设定Redis访问的密码

可以不用设置Redis的访问密码

第3步:Redis微服务的初始化(无)

无初始化数据需求。

第四步:配置nacos中关于ruoyi微服务访问数据库所需要的信息

第1步:为ruoyi微服务指定访问MySQL数据库的信息

(1)确定使用到MySQL数据库的Ruoyi微服务

[云原生专题-59]:Kubesphere云治理-操作-分步部署Web业务平台RuoYi Cloud项目 - 手工上云部署实际过程全部操作步骤

  • 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微服务

[云原生专题-59]:Kubesphere云治理-操作-分步部署Web业务平台RuoYi Cloud项目 - 手工上云部署实际过程全部操作步骤

  • 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工具进行编译、测试、验证

[云原生专题-59]:Kubesphere云治理-操作-分步部署Web业务平台RuoYi Cloud项目 - 手工上云部署实际过程全部操作步骤

 (1)入口:Maven(可以执行软件发布的流水线操作,不仅仅是build)

(2)在ruoyi/Lifecycle操作,这里对所有的模块执行指定的操作

(3)选clean、validate、compile、test、pacakge

(4)执行运行

  • clean:清除编译过程中的目标文件
  • validate:检查环境
  • compile:对每个模块进行编译
  • test:单元测试
  • pacakge:把java的目标代码打包成jar包,可以在docker中执行的jar目标文件

[云原生专题-59]:Kubesphere云治理-操作-分步部署Web业务平台RuoYi Cloud项目 - 手工上云部署实际过程全部操作步骤

 以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

[云原生专题-59]:Kubesphere云治理-操作-分步部署Web业务平台RuoYi Cloud项目 - 手工上云部署实际过程全部操作步骤

# 基础镜像 =》 采用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文件,执行相同的操作:

[云原生专题-59]:Kubesphere云治理-操作-分步部署Web业务平台RuoYi Cloud项目 - 手工上云部署实际过程全部操作步骤

(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

[云原生专题-59]:Kubesphere云治理-操作-分步部署Web业务平台RuoYi Cloud项目 - 手工上云部署实际过程全部操作步骤

第4步:发布微服务的docker镜像

可以把镜像发布到docker hub服务或阿里云镜像服务器上。

(1)注册账号(免费个人空间)

(2)创建仓库或名字空间, 用于存储镜像

[云原生专题-59]:Kubesphere云治理-操作-分步部署Web业务平台RuoYi Cloud项目 - 手工上云部署实际过程全部操作步骤

 (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页面检查发布的镜像是否上传成功 。

[云原生专题-59]:Kubesphere云治理-操作-分步部署Web业务平台RuoYi Cloud项目 - 手工上云部署实际过程全部操作步骤

第5步:部署微服务的docker镜像

共性:

  • 以无状态Service的方式部署如下的镜像
  • 无外网访问
  • 部署单个服务前,必须确认对应的nacos配置文件的设置是否正确(MySQL和Redis服务器)
  • mount配置文件:bootstrap.yml配置文件,指定Nacos域名和端口号

[云原生专题-59]:Kubesphere云治理-操作-分步部署Web业务平台RuoYi Cloud项目 - 手工上云部署实际过程全部操作步骤

[云原生专题-59]:Kubesphere云治理-操作-分步部署Web业务平台RuoYi Cloud项目 - 手工上云部署实际过程全部操作步骤

依次部署:

  • ruoyi-vistual-monitor
  • ruoyi-system
  • ruoyi-job
  • ruoyi-gateway
  • ruoyif-file
  • ruoyi-auth

第6步:测试部署的微服务

在nacos管理终端中,查看服务每个服务是否注册成功。

http://公网地址:8848/nacos/index.html

[云原生专题-59]:Kubesphere云治理-操作-分步部署Web业务平台RuoYi Cloud项目 - 手工上云部署实际过程全部操作步骤

第六大步:部署Rouyi系统后台管理系统UI:ruoyi-ui'

第1步: 编译前修改配置文件的修改(可选)

[云原生专题-59]:Kubesphere云治理-操作-分步部署Web业务平台RuoYi Cloud项目 - 手工上云部署实际过程全部操作步骤

RuoYi-Cloud\ruoyi-ui\vue.config


target: `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

[云原生专题-59]:Kubesphere云治理-操作-分步部署Web业务平台RuoYi Cloud项目 - 手工上云部署实际过程全部操作步骤

输出是一组页面配置文件,包括首页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.com

docker 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的后台管理。

[云原生专题-59]:Kubesphere云治理-操作-分步部署Web业务平台RuoYi Cloud项目 - 手工上云部署实际过程全部操作步骤

 [云原生专题-59]:Kubesphere云治理-操作-分步部署Web业务平台RuoYi Cloud项目 - 手工上云部署实际过程全部操作步骤

第7步:测试部署的微服务

[云原生专题-59]:Kubesphere云治理-操作-分步部署Web业务平台RuoYi Cloud项目 - 手工上云部署实际过程全部操作步骤

 [云原生专题-59]:Kubesphere云治理-操作-分步部署Web业务平台RuoYi Cloud项目 - 手工上云部署实际过程全部操作步骤

  • 在打包的时候修改后端的配置文件:bootstrap.yml
  • 在打包的时候修改前端的配置文件: RuoYi-Cloud\ruoyi-ui\vue.config
  • 在打包的时候修改nginx的配置文件:RuoYi-Cloud\docker\nginx\conf\nginx.conf

最终大汇总

[云原生专题-59]:Kubesphere云治理-操作-分步部署Web业务平台RuoYi Cloud项目 - 手工上云部署实际过程全部操作步骤

 至此,这个ruoyi服务的手工上云过程就完成了!


作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客

本文网址:https://blog.csdn.net/HiWangWenBing/article/details/123004798

上一篇:iOS之SQLite使用详解


下一篇:code标签和pre标签