作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_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项目 - 手工上云部署实际过程全部操作步骤相关推荐

  1. [云原生专题-16]:容器 - 在Windows主机上搭建Docker环境

    作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/detai ...

  2. [云原生专题-64]:云原生技术助力5G RAN步入”云”霄 - 对云原生的理解

    作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/detai ...

  3. 前沿分享|阿里云数据库解决方案架构师 王宏宇:云原生数据仓库AnalyticDB在零售行业的深度应用和业务价值

    简介:本篇内容为2021云栖大会-云原生数据仓库AnalyticDB技术与实践峰会分论坛中,阿里云数据库解决方案架构师 王宏宇关于"云原生数据仓库AnalyticDB在零售行业的深度应用和业 ...

  4. 条条大路通云端,华为云应用平台ROMA破解传统政企上云困境

    条条大路通云端,华为云应用平台ROMA破解传统政企上云困境 宁川 云科技时代 今天 (华为云CTO张宇昕在2020华为云TechWave技术峰会上发布应用平台ROMA等重磅产品) 到2020年,集成工 ...

  5. Alibaba Cloud Toolkit一键上云神器

    在中小公司中,有一个痛点,项目开发完毕需要部署到服务器上,传统的做法比较麻烦,而且修改完代码后又要重新打包上传,做这些重复性的工作需要消耗大量的时间,而部署自动化的CI工具,则成本具大,需要很高的服务 ...

  6. 百度智能云天工边云融合物联网平台,助力设备高效上云

    设备上云已成为加速各领域企业生产方式变革的重要路径,在工业和信息化部正式印发的<"十四五"信息化和工业化深度融合发展规划>中,也明确提出要"聚焦高耗能设备.通 ...

  7. [云原生专题-60]:Kubesphere云治理-DevOps-自动化开发与自动化上云部署流程概述

    作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/detai ...

  8. [云原生专题-61]:Kubesphere云治理-安装(3)-可插拔组件的安装

    作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/detai ...

  9. 云原生时代到来 KubeSphere要让容器应用零门槛落地

    如今,Kubernetes.DevOps.微服务.应用管理等已经给客户带来了太多认知上的负担,而KubeSphere要做的就是简化.简化.简化. 云计算技术应用的深入,云原生正在成为云计算2.0的发展 ...

  10. 6.19 成都站云原生 Meetup,KubeSphere 和 APISIX 等你来!

    以容器技术和容器编排为基础的云原生应用,被越来越多的企业用户接受和使用,并且在生产环境中使用容器技术的比例逐年增加.KubeSphere 作为一款面向应用的开源容器混合云,经过 3 年的发展和 10 ...

最新文章

  1. 中国将对人工智能、云计算等行业独角兽IPO即报即审
  2. css 填坑常用代码分享
  3. 写出C语言中5种数据类型的名称及其关键字,求C语言中的32个关键字及其意思?...
  4. CodeForces:643(VK cup)
  5. 如何把Java的double类型变量保留两位小数
  6. Java面向对象和类
  7. orcad中的PSpice仿真加入厂商模型
  8. SpringBoot解决驼峰命名 ---返回Json实体类属性大小写问题
  9. Aggressive cows--二分法思想
  10. 用友U8安装客户端时提示已经安装过智能客户端
  11. WEEK5 周记 作业——差分数组_TT的魔法猫
  12. 【opencv4.3.0教程】12之图像的加add、减subtract、乘multiply、除divide
  13. 解决Chrome无法访问此网站或无法显示此网页问题
  14. rd,pe,ae,fae,marketing,sales都是干嘛的?
  15. photoshop cc2017全套视频课程 从基础到实战案例PS海报-王诚-专题视频课程
  16. PostgreSQL学习篇9.3 浮点数类型
  17. Windows、Mac系统常用的SSH工具软件整理汇总
  18. linux中ifconfig无法显示ip地址
  19. 【大数据架构】基于大数据的消费信贷平台
  20. golang 运行命令行进行图片格式转换(jpg转png)

热门文章

  1. 小程序下找地点、查路线、搜地铁,用这3个插件就够了!
  2. unity3d 任务系统设计 mmo
  3. 随着无人机将承担更多的作战任务,“AI辅助空战”或将应运而生
  4. 分享一个带语音root的CM311-1a线刷包
  5. 智邦国际CRM系统实现企业信息化管理成功实施
  6. 图卷积神经网络代码讲解,卷积神经网络python实例
  7. 随机预言模型和标准模型 -2014-03-24 15:35
  8. ubuntu20.04桌面美化
  9. 峰值帧+时序信息 跨数据集微表情识别
  10. 机器人工作空间解析分析