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/