[云原生专题-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项目 - 手工上云部署实际过程全部操作步骤相关推荐
- [云原生专题-16]:容器 - 在Windows主机上搭建Docker环境
作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/detai ...
- [云原生专题-64]:云原生技术助力5G RAN步入”云”霄 - 对云原生的理解
作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/detai ...
- 前沿分享|阿里云数据库解决方案架构师 王宏宇:云原生数据仓库AnalyticDB在零售行业的深度应用和业务价值
简介:本篇内容为2021云栖大会-云原生数据仓库AnalyticDB技术与实践峰会分论坛中,阿里云数据库解决方案架构师 王宏宇关于"云原生数据仓库AnalyticDB在零售行业的深度应用和业 ...
- 条条大路通云端,华为云应用平台ROMA破解传统政企上云困境
条条大路通云端,华为云应用平台ROMA破解传统政企上云困境 宁川 云科技时代 今天 (华为云CTO张宇昕在2020华为云TechWave技术峰会上发布应用平台ROMA等重磅产品) 到2020年,集成工 ...
- Alibaba Cloud Toolkit一键上云神器
在中小公司中,有一个痛点,项目开发完毕需要部署到服务器上,传统的做法比较麻烦,而且修改完代码后又要重新打包上传,做这些重复性的工作需要消耗大量的时间,而部署自动化的CI工具,则成本具大,需要很高的服务 ...
- 百度智能云天工边云融合物联网平台,助力设备高效上云
设备上云已成为加速各领域企业生产方式变革的重要路径,在工业和信息化部正式印发的<"十四五"信息化和工业化深度融合发展规划>中,也明确提出要"聚焦高耗能设备.通 ...
- [云原生专题-60]:Kubesphere云治理-DevOps-自动化开发与自动化上云部署流程概述
作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/detai ...
- [云原生专题-61]:Kubesphere云治理-安装(3)-可插拔组件的安装
作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/detai ...
- 云原生时代到来 KubeSphere要让容器应用零门槛落地
如今,Kubernetes.DevOps.微服务.应用管理等已经给客户带来了太多认知上的负担,而KubeSphere要做的就是简化.简化.简化. 云计算技术应用的深入,云原生正在成为云计算2.0的发展 ...
- 6.19 成都站云原生 Meetup,KubeSphere 和 APISIX 等你来!
以容器技术和容器编排为基础的云原生应用,被越来越多的企业用户接受和使用,并且在生产环境中使用容器技术的比例逐年增加.KubeSphere 作为一款面向应用的开源容器混合云,经过 3 年的发展和 10 ...
最新文章
- 中国将对人工智能、云计算等行业独角兽IPO即报即审
- css 填坑常用代码分享
- 写出C语言中5种数据类型的名称及其关键字,求C语言中的32个关键字及其意思?...
- CodeForces:643(VK cup)
- 如何把Java的double类型变量保留两位小数
- Java面向对象和类
- orcad中的PSpice仿真加入厂商模型
- SpringBoot解决驼峰命名 ---返回Json实体类属性大小写问题
- Aggressive cows--二分法思想
- 用友U8安装客户端时提示已经安装过智能客户端
- WEEK5 周记 作业——差分数组_TT的魔法猫
- 【opencv4.3.0教程】12之图像的加add、减subtract、乘multiply、除divide
- 解决Chrome无法访问此网站或无法显示此网页问题
- rd,pe,ae,fae,marketing,sales都是干嘛的?
- photoshop cc2017全套视频课程 从基础到实战案例PS海报-王诚-专题视频课程
- PostgreSQL学习篇9.3 浮点数类型
- Windows、Mac系统常用的SSH工具软件整理汇总
- linux中ifconfig无法显示ip地址
- 【大数据架构】基于大数据的消费信贷平台
- golang 运行命令行进行图片格式转换(jpg转png)