作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_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步:测试部署的微服务
最终大汇总
按照有状态Service的方式部署MySQL:
[云原生专题-50]:Kubesphere云治理-操作-分步部署基于微服务的业务应用 - 数据库中间件MySQL微服务部署过程_文火冰糖(王文兵)的博客-CSDN博客
备注:
如果之前在单机版上运行了RuoYi Cloud项目,那么应该已经有了本地的MySQL数据库,此时可以通过MySQL workbench工具,把本地MySQL数据库的内容直接迁移到部署在“云”上的MySQL数据库,轻松、简单、快速。
有三个schemas需要从本地数据库导入到远程刚刚部署的MySQL数据库中。
导入成功后,可以通过MySQL workbench远程连接到远程数据库检查数据库的内容。
通过MySQL workbench连接远程的服务器,分布导入RuoYi-Cloud提供的几个本地数据库
按照有状态Service的方式部署nacos:
[云原生专题-55]:Kubesphere云治理-操作-分步部署基于微服务的业务应用 - 微服务注册中间件Nacos的部署_文火冰糖(王文兵)的博客-CSDN博客
备注:
(1)部署多个nacos实例,比如3个pod
(2)通过LSB Service方式实现多个nacos的负载均衡
(3)LSB Service通过集群内部的域名,而不是IP地址,提供给集群内的微服务进行访问(注册)
(4)要挂载配置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
http://公网地址:8848/nacos/index.html
redis服务器提供给ruoyi的微服务存储业务数据
[云原生专题-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
修改配置文件,设定Redis访问的密码
可以不用设置Redis的访问密码
无初始化数据需求。
(1)确定使用到MySQL数据库的Ruoyi微服务
(2)修改Ruoyi访问MySQL数据库访问所需要的用户名、密码
由于微服务众多,很多微服务需要访问MySQL数据库,如果在每个微服务上设置访问MySQL数据库的用户名和密码,效率自然低下,为此,采用了集中式的方式管理微服务访问MySQL数据库的用户名和密码,nacos是微服务的注册中心,正好符合集中化管理微服务的职责,因此微服务访问MySQL数据库的用户名和密码的信息就可以由nacos统一进行管理,当然,nacos自身是不存放数据的,nacos把数据存放在MySQL数据库仓库中。
(1)确定使用到Redis数据库的Ruoyi微服务
(2)修改对应的yml文件
指定Nacos域名和端口号。
采用IntelliJ IDEA集成开发环境的maven工具进行编译、测试、验证
(1)入口:Maven(可以执行软件发布的流水线操作,不仅仅是build)
(2)在ruoyi/Lifecycle操作,这里对所有的模块执行指定的操作
(3)选clean、validate、compile、test、pacakge
(4)执行运行
以gateway为例,生成的jar文件在:
F:\MySource\gitee\RuoYi-Cloud\ruoyi-gateway\target\ruoyi-gateway.jar
(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
可以把镜像发布到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页面检查发布的镜像是否上传成功 。
共性:
依次部署:
在nacos管理终端中,查看服务每个服务是否注册成功。
http://公网地址:8848/nacos/index.html
RuoYi-Cloud\ruoyi-ui\vue.config
target: `http://localhost:8080`, => 修改成网关的域名
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镜像制作的输入文件。
(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的域名
$ cd ruoyi/ruoyi-ui
$ docker build -t ruoyi-ui:v1.0 -f Dockerfile .
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:[镜像版本号]
选择nodePort向集群外的公网暴露给服务,通过公网访问ruoyi的后台管理。
至此,这个ruoyi服务的手工上云过程就完成了!
作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客
本文网址:https://blog.csdn.net/HiWangWenBing/article/details/123004798