5.7 KiB
5.7 KiB
RMDC-K8S 部署方案
构建
-
前提条件
- 已经存在k8s集群
- 已经存在harbor仓库 harbor.wdd.io:8033
- 构建主机 192.168.35.80 已经存在go环境 node环境 docker环境
-
需要实现的内容,在windwos实现powershell脚本,实现如下的功能
- 将本地的代码通过rsync推送至192.168.35.80的工作目录
- 在192.168.35.80实现代码的编译工作
- 前端使用node构建
- 后端使用go构建
- 构建产物放置于项目目录 rmdc-k8s-deploy/build目录下
- 在192.168.35.80实现dockerfile构建,以下为不同的模块
- 构建的dockerfile放置于项目目录 rmdc-k8s-deploy/dockerfile目录下
- 构建RMDC-Frontend前端代码
- 基础镜像为 harbor.wdd.io:8033/rmdc/nginx:1.27.0
- 镜像命名为 harbor.wdd.io:8033/rmdc/rmdc-frontend:${日期}
- 前端代码构建需要有生产环境构建的配置
- 前端代码的API调用的HOST 需要根据实际访问的域名进行配置
- 基础后端镜像构建
- 基础镜像为 harbor.wdd.io:8033/rmdc/alpine:3.23.0
- 指定docker的环境变量,时区等信息
- 安装常用的基础工具 ping curl telnet netcat nmap mtr traceroute
- 镜像命名为 harbor.wdd.io:8033/rmdc/rmdc-backend-base:1.0
- 构建RMDC-Backend后端代码
- 基础镜像为 harbor.wdd.io:8033/rmdc/rmdc-backend-base:1.0
- 镜像命名为 harbor.wdd.io:8033/rmdc/rmdc-backend:${日期}
- 构建RMDC-watchdog镜像
- 基础镜像使用 harbor.wdd.io:8033/rmdc/rmdc-watchdog-base:1.0
- 参考Dockerfile.backend-base, 安装必要的工具
- 镜像命名为 harbor.wdd.io:8033/rmdc/rmdc-watchdog:${日期}
- 基础镜像使用 harbor.wdd.io:8033/rmdc/rmdc-watchdog-base:1.0
- 构建RMDC-watchdog-node镜像
- 基础镜像使用 harbor.wdd.io:8033/rmdc/rmdc-watchdog-base:1.0
- 镜像命名为 harbor.wdd.io:8033/rmdc/rmdc-watchdog-node:${日期}
- 在192.168.35.80实现harbor推送,将构建好的镜像推送至harbor仓库
- 此脚本能够通过参数,指定需要构建的模块
- 前端
- 后端
- RMDC-watchdog
- RMDC-watchdog-node
- RMDC-watchdog-agent
K8S-YAML文件
- RMDC组件需要实现的内容
- 部署文件需要放置于项目目录 rmdc-k8s-deploy/rmdc-app目录下
- 命名空间为 cmii-rmdc
- 为RMDC-frontend实现Deployment和Service如果此模块构建,则需要更新该yaml中的Tag如果此模块构建,则需要更新该yaml 2. 镜像为 harbor.wdd.io:8033/rmdc/rmdc-frontend:${日期} 3. 副本数量为1 4. 端口暴露及Service端口
- 为RMDC-backend实现Deployment和Service
- 如果此模块构建,则需要更新该yaml中的Tag
- 镜像为 harbor.wdd.io:8033/rmdc/rmdc-backend:${日期}
- 副本数量为1
- 端口暴露及Service端口
- 如果此模块构建,则需要更新该yaml
- 实现Ingress部分
- Ingress的域名均采用 rmdc.titanium-bullhorses.io
- 最好在一个Ingress文件中实现
- 前端Ingress
- API接口的Ingress
- RMDC-watchdog组件需要实现的内容
- 部署文件需要放置于项目目录 rmdc-k8s-deploy/rmdc-watchdog目录下
- 命名空间为 cmii-rmdc
- 为RMDC-watchdog实现Deployment和Service
- 如果此模块构建,则需要更新该yaml中的Tag
- 镜像为 harbor.wdd.io:8033/rmdc/rmdc-watchdog:${日期}
- 副本数量为1
- 端口暴露及Service端口
- RMDC-watchdog-node组件需要实现的内容
- 如果此模块构建,则需要更新该yaml中的Tag
- 镜像为 harbor.wdd.io:8033/rmdc/rmdc-watchdog-node:${日期}
- 副本数量为1
- 端口暴露及Service端口
RMDC-watchdog-agent部分
部署文件需要放置于项目目录 rmdc-k8s-deploy/rmdc-uav目录下
uav后端JAVA的基础镜像
- 提供基于openjdk11 17 21的版本
- 需要能够正确的显示中文日志及字符
- 安装尽可能丰富的基础工具类
- 需要指定JVM的时区为Asia/Shanghai
- 需要设置java的PATH环境变量
- 需要设置JAVA_HOME环境变量
- 端口暴露为 EXPOSE 8080
- 参考为 Dockerfile-base-java17
- 基础镜像需要尽可能的小
- 需要修改使用国内的镜像源
- 最好基于 harbor.wdd.io:8033/rmdc/alpine:3.23.0
不嵌入RMDC-watchdog-agent的时候,
- 使用传统的start_up.sh 即为ENTRYPOINT ["./start_up.sh"]
- 需要构建 镜像名为 harbor.wdd.io:8033/rmdc/openjdk17-base-tools:1.0
- 需要同时 进行Tag为harbor.cdcyy.com.cn/cmii/openjdk17-base-tools:3.0 并且推送该镜像
当嵌入RMDC-watchdog-agent时候
- 需要go进行build 得到RMDC-watchdog-agent的压缩包
- 需要记录构建出来二级制文件,命名规则为 rmdc-watchdog-agent-${日期}
- 构建RMDC-watchdog-agent镜像
- 需要内嵌rmdc-watchdog-agent版本信息的环境变量 RMDC_WATCHDOG_AGENT_VERSION=${日期}
- OpenJDK-17版本
- 基础镜像使用 harbor.wdd.io:8033/rmdc/openjdk17-base-tools:1.0
- 镜像命名为 harbor.wdd.io:8033/rmdc/rmdc-watchdog-agent-jdk17:1.0
- OpenJDK-11版本
- 基础镜像使用 harbor.wdd.io:8033/rmdc/openjdk11-base-tools:1.0
- 镜像命名为 harbor.wdd.io:8033/rmdc/rmdc-watchdog-agent-jdk11:1.0
- 内嵌RMDC-watchdog-agent的时候, uav后端程序需要使用ENTRYPOINT ["/cmii/cmii-watchdog-agent", "-business-program-type", "java", "-business-program-path", "/cmii/jarfile.jar"]进行启动