RuoYi-Cloud/deployment/README.md

50 lines
3.2 KiB
Markdown
Raw Normal View History

2023-04-06 00:00:28 +08:00
# Kubernates 部署Ruoyi-Cloud项目
本部署所用到的k8s配置均为简易版仅作为初步入门学习使用有不合理的地方还请见谅。
### 后期考虑功能:
* HPA自动扩缩容
* MySQL主从、Redis集群、服务集群
* Prometheus + Grafana 监控告警, ELK日志收集
## 容器分布
~~~
namespace
├── redis
│ └── redis // StatefulSet
├── kube-ruoyi
│ └── ruoyi-mysql // Deployment
│ └── ruoyi-nacos
│ └── ruoyi-nginx
│ └── ruoyi-sentinel
│ └── ruoyi-gateway
│ └── ruoyi-auth
│ └── ruoyi-system
│ └── ruoyi-gen
│ └── ruoyi-job
│ └── ruoyi-file
│ └── ruoyi-monitor
│ └── elasticsearch
│ └── skywalking
│ └── skywalking-ui
├── minio
└── minio
~~~
## 部署顺序及要点
1. Redis
2. MySQL手动Dockerfile打包镜像初始化准备好的数据脚本。使用了Secret加密密码等配置。
3. Nacos, 配置好MODE=standalone使用configMap设置数据库。
4. Sentinel
5. Gateway本服务需要用Dockerfile打包镜像否则会报错。其他RuoYi服务可以直接使用spring-boot的image命令一键打包生成镜像[每个服务都有使用额外的SpringBoot配置文件bootstrap-k8s.yml加入到服务中同时在原配置文件中把active换成${SPRING_PROFILES_ACTIVE:dev}后再打包以读取deployment的env变量。启动服务前记得提前在nacos中克隆新增服务配置以把dev改成k8sdeployment中启动的环境是SPRING_PROFILES_ACTIVE=k8s修改好Redis地址redis.redis、MySQL地址(ruoyi-mysql)、Sentinel地址(ruoyi-sentinel)]
6. Nginx部署之前先打包好前端静态文件使用本地磁盘方式挂载到容器 (注我使用的是Window的DockerDesktop启动的K8s挂载磁盘路径必须带/run/desktop/mnt/host)修改好nginx配置ruoyi-gateway就可以启动启动后输入localhost:30080就可以访问前端项目
7. Auth
8. System配置好后就可以登录了
9. Gen
10. Job
11. File改成minio服务之后需要修改静态文件中读取文件的端口地址
12. Monitor需要修改前端静态文件中的Monitor端口地址
13. Minio挂载本地文件。修改ruoyi-file服务中@Primary注释改到MinioServer上以使用Minio服务记得修改nacos配置
14. Elasticsearch部署文件一并放入到了skywalking文件夹中
15. skywalking需要在Java服务中使用agent进行跟踪自制agent镜像然后使用initContainers方式挂载到同一个容器模板放到了agent-in-server文件
16. skywalking-ui