51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

kubesphere部署 微服务之 docker 镜像制作流程

kubesphere部署 微服务之jar包 dockerfile

https://www.kubesphere.io/zh/learn/level_4/lesson_21/video/

进入到 目录:

cd /app/ruoyi/ruoyi-images/ruoyi-auth
docker build -t ruoyi-auth:v1.0 -f Dockerfile . 

cd ../ruoyi-file
docker build -t ruoyi-file:v1.0 -f Dockerfile . 

cd ../ruoyi-gateway
docker build -t ruoyi-gateway:v1.0 -f Dockerfile . 

cd ../ruoyi-job
docker build -t ruoyi-job:v1.0 -f Dockerfile . 

cd ../ruoyi-system

docker build -t ruoyi-system:v1.0 -f Dockerfile . 


cd ../ruoyi-visual-monitor/

docker build -t ruoyi-visual-monitor:v1.0 -f Dockerfile . 

● 开通阿里云"容器镜像服务(个人版)"
○ 创建一个名称空间(ruoyitest123)。(存储镜像)
○ 推送镜像到阿里云镜像仓库

docker login --username=chaor*****@gmail.com registry.cn-hangzhou.aliyuncs.com
docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/baimeidashu/test:[镜像版本号]
docker push registry.cn-hangzhou.aliyuncs.com/baimeidashu/test:[镜像版本号]

docker images | grep ruoyi

docker tag 170bacbcaae8 registry.cn-hangzhou.aliyuncs.com/baimeidashu/ruoyi-visual-monitor:v1.0

docker push registry.cn-hangzhou.aliyuncs.com/baimeidashu/ruoyi-visual-monitor:v1.0

或者来个简单的2步骤:

docker build -t registry.cn-hangzhou.aliyuncs.com/baimeidashu/service-cmn:v1 .
docker  push registry.cn-hangzhou.aliyuncs.com/baimeidashu/service-cmn:v1 

https://www.kubesphere.io/zh/learn/level_4/lesson_22/video/

用 kubesphere 部署 微服务

自上而下的部署, 先部署 ruoyi-visual-monitor

都是无状态的服务:

先创建服务:

registry.cn-hangzhou.aliyuncs.com/baimeidashu/ruoyi-visual-monitor:v1.0

内存限制, 最大不超过2G

同步主机时区

然后直接下一步 不用选择, 直到创建

接下里设置网络, 我们不允许外网访问, 整个项目中唯一需要外网访问的事 UI

● 应用一启动会获取到 "应用名-激活的环境标识.yml"
● 每次部署应用的时候,需要提前修改nacos线上配置,确认好每个中间件的连接地址是否正确

查看 容器日志:发现报错

大概意思就是连接 nacos 出错。

server-addr : 这样配置一个地址和 分开配置是一样的。

下面我们改一下dockerfile 文件

ENV PARAMS="--server.port=8080 --spring.profiles.active=prod --spring.cloud.nacos.discovery.server-addr=xiaoka-nacos.xiaoka:8848 --spring.cloud.nacos.config.server-addr=xiaoka-nacos.xiaoka:8848--spring.cloud.nacos.config.namespace=prod --spring.cloud.nacos.config.file-extension=yml"

把Docerfile 全部给各项目 覆盖一下,重新构建:

docker build -t  registry.cn-hangzhou.aliyuncs.com/baimeidashu/ruoyi-visual-monitor:v2 .

docker push registry.cn-hangzhou.aliyuncs.com/baimeidashu/ruoyi-visual-monitor:v2

所有都推到阿里云上后:

可是重新部署:
ruoyi-visual-monitor 先删除


其余的跟上边一样,都是无状态服务。
然后查看日志:
是有报错的, 具体的我们先把 nacos 改成单节点模式
怎么改呢?

先停止 nacos, 就是把副本降到0

单节点启动 只需要修改一个环境变量,
去nacos 文档中,的部署手册:



然后把我们的微服务重新部署一下:
查看日志, 不报错了,

这样我们的第一个微服务就部署好了。
接下来,部署其他的微服务:

registry.cn-hangzhou.aliyuncs.com/baimeidashu/ruoyi-visual-monitor:v3

registry.cn-hangzhou.aliyuncs.com/baimeidashu/ruoyi-system:v3

registry.cn-hangzhou.aliyuncs.com/baimeidashu/ruoyi-job:v3
registry.cn-hangzhou.aliyuncs.com/baimeidashu/ruoyi-gateway:v3


registry.cn-hangzhou.aliyuncs.com/baimeidashu/ruoyi-file:v3
registry.cn-hangzhou.aliyuncs.com/baimeidashu/ruoyi-auth:v3
ruoyi-auth


ruoyi-system


部署一个服务就检测一个: 把相关的 数据库地址改一下:




ruoyi-gateway 部署:
发现有问题:



一定要改 prod 下的文件, 不然改半天 也不起作用:

ruoyi-file 部署:
没有遇到什么问题, 配置文件的地址也不用修改
ruoyi-auth 部署:
修改 nacos中的配置
部署服务
如果 前端的 ruoyi-auth 压力比较大,可以多开3个副本,内置的负载均衡已经做好了, 我们可以看到 nacos 中的实例也变为3个。

补充: 健康检查
如果 集群重启, 有时候mysql 启动的比 nacos 慢, 但是nacos 会依赖mysql , 等到 mysql 重启后, nacos 又不会重新连。 导致各种微服务都不正常。
那么在k8s 中怎么做到 顺序启动呢?
有一种解决方案:
比如我们 在K8s 启动nacos pod的时候, 在什么情况下才算真正的启动成功。 如果nacos 没有启动成功,就让nacos 重新启动。
健康检查机制,



没隔10秒 检查一次
ruoyi-ui 部署
打包,然后放到nginx 上, 其实就是做一个nginx 镜像。
1- 打包:
开发:

# 克隆项目
git clone https://gitee.com/y_project/RuoYi-Vue

# 进入项目目录
cd ruoyi-ui

# 安装依赖
npm install

# 建议不要直接使用 cnpm 安装依赖,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题
npm install --registry=https://registry.npm.taobao.org

# 启动服务
npm run dev

浏览器访问 http://localhost:80

发布:

# 构建测试环境
npm run build:stage

# 构建生产环境
npm run build:prod

1-修改 网关地址:

ruoyi-gateway.xiaoka

 npm run build:prod   # 构建生产环境包




然后

locaohost 是nginx 只处理本机的请求,
如果是在docker环境下, 在一台机器上, 我监听的80 ,都是整个机器。
如果是在K8S 下, nginx 可能是多个pod ,不知道跑到哪台机器, 如果给pod 发送 localhost 请求, 这些请求只能识别本pod的。 没办法处理,
所以
server_name _ ;
代表浏览器无论请求什么地址, 来到nginx,只要你访问我的 80端口。 就会全部处理。
上传 服务器

docker build -t registry.cn-hangzhou.aliyuncs.com/baimeidashu/ruoyi-ui:v1 -f dockerfile .

docker push registry.cn-hangzhou.aliyuncs.com/baimeidashu/ruoyi-ui:v1

开始在k8s 上构建:

在项目里 创建 服务, 最后选择 外网 访问nodeport


验证:

curl 192.168.1.208:32050


admin, admin123

http://123.571.1:32050/login



新增用户测试一下:



去线上的数据库看看:

到此为止, 整个若依系统 都 跑通了。

https://www.kubesphere.io/zh/learn/level_4/lesson_23/video/

https://www.kubesphere.io/zh/learn/level_4/lesson_24/video/

https://www.kubesphere.io/zh/learn/level_4/lesson_25/video/

ruoyi 上云部署

赞(6)
未经允许不得转载:工具盒子 » kubesphere部署 微服务之 docker 镜像制作流程