Files
ProjectAGiPrompt/8-CMII-RMDC/19-deploy/1-rmdc-deploy.md
2026-01-21 16:15:49 +08:00

5.7 KiB
Raw Blame History

RMDC-K8S 部署方案

构建

  1. 前提条件

    1. 已经存在k8s集群
    2. 已经存在harbor仓库 harbor.wdd.io:8033
    3. 构建主机 192.168.35.80 已经存在go环境 node环境 docker环境
  2. 需要实现的内容,在windwos实现powershell脚本,实现如下的功能

    1. 将本地的代码通过rsync推送至192.168.35.80的工作目录
    2. 在192.168.35.80实现代码的编译工作
      1. 前端使用node构建
      2. 后端使用go构建
      3. 构建产物放置于项目目录 rmdc-k8s-deploy/build目录下
    3. 在192.168.35.80实现dockerfile构建以下为不同的模块
      1. 构建的dockerfile放置于项目目录 rmdc-k8s-deploy/dockerfile目录下
      2. 构建RMDC-Frontend前端代码
        1. 基础镜像为 harbor.wdd.io:8033/rmdc/nginx:1.27.0
        2. 镜像命名为 harbor.wdd.io:8033/rmdc/rmdc-frontend:${日期}
        3. 前端代码构建需要有生产环境构建的配置
        4. 前端代码的API调用的HOST 需要根据实际访问的域名进行配置
      3. 基础后端镜像构建
        1. 基础镜像为 harbor.wdd.io:8033/rmdc/alpine:3.23.0
        2. 指定docker的环境变量,时区等信息
        3. 安装常用的基础工具 ping curl telnet netcat nmap mtr traceroute
        4. 镜像命名为 harbor.wdd.io:8033/rmdc/rmdc-backend-base:1.0
      4. 构建RMDC-Backend后端代码
        1. 基础镜像为 harbor.wdd.io:8033/rmdc/rmdc-backend-base:1.0
        2. 镜像命名为 harbor.wdd.io:8033/rmdc/rmdc-backend:${日期}
      5. 构建RMDC-watchdog镜像
        1. 基础镜像使用 harbor.wdd.io:8033/rmdc/rmdc-watchdog-base:1.0
          1. 参考Dockerfile.backend-base, 安装必要的工具
        2. 镜像命名为 harbor.wdd.io:8033/rmdc/rmdc-watchdog:${日期}
      6. 构建RMDC-watchdog-node镜像
        1. 基础镜像使用 harbor.wdd.io:8033/rmdc/rmdc-watchdog-base:1.0
        2. 镜像命名为 harbor.wdd.io:8033/rmdc/rmdc-watchdog-node:${日期}
    4. 在192.168.35.80实现harbor推送,将构建好的镜像推送至harbor仓库
    5. 此脚本能够通过参数,指定需要构建的模块
      1. 前端
      2. 后端
      3. RMDC-watchdog
      4. RMDC-watchdog-node
      5. RMDC-watchdog-agent

K8S-YAML文件

  1. RMDC组件需要实现的内容
    1. 部署文件需要放置于项目目录 rmdc-k8s-deploy/rmdc-app目录下
    2. 命名空间为 cmii-rmdc
    3. 为RMDC-frontend实现Deployment和Service如果此模块构建,则需要更新该yaml中的Tag如果此模块构建,则需要更新该yaml 2. 镜像为 harbor.wdd.io:8033/rmdc/rmdc-frontend:${日期} 3. 副本数量为1 4. 端口暴露及Service端口
    4. 为RMDC-backend实现Deployment和Service
      1. 如果此模块构建,则需要更新该yaml中的Tag
      2. 镜像为 harbor.wdd.io:8033/rmdc/rmdc-backend:${日期}
      3. 副本数量为1
      4. 端口暴露及Service端口
      5. 如果此模块构建,则需要更新该yaml
    5. 实现Ingress部分
      1. Ingress的域名均采用 rmdc.titanium-bullhorses.io
      2. 最好在一个Ingress文件中实现
      3. 前端Ingress
      4. API接口的Ingress
  2. RMDC-watchdog组件需要实现的内容
    1. 部署文件需要放置于项目目录 rmdc-k8s-deploy/rmdc-watchdog目录下
    2. 命名空间为 cmii-rmdc
    3. 为RMDC-watchdog实现Deployment和Service
      1. 如果此模块构建,则需要更新该yaml中的Tag
      2. 镜像为 harbor.wdd.io:8033/rmdc/rmdc-watchdog:${日期}
      3. 副本数量为1
      4. 端口暴露及Service端口
    4. RMDC-watchdog-node组件需要实现的内容
      1. 如果此模块构建,则需要更新该yaml中的Tag
      2. 镜像为 harbor.wdd.io:8033/rmdc/rmdc-watchdog-node:${日期}
      3. 副本数量为1
      4. 端口暴露及Service端口

RMDC-watchdog-agent部分

部署文件需要放置于项目目录 rmdc-k8s-deploy/rmdc-uav目录下

uav后端JAVA的基础镜像

  1. 提供基于openjdk11 17 21的版本
  2. 需要能够正确的显示中文日志及字符
  3. 安装尽可能丰富的基础工具类
  4. 需要指定JVM的时区为Asia/Shanghai
  5. 需要设置java的PATH环境变量
  6. 需要设置JAVA_HOME环境变量
  7. 端口暴露为 EXPOSE 8080
  8. 参考为 Dockerfile-base-java17
  9. 基础镜像需要尽可能的小
  10. 需要修改使用国内的镜像源
  11. 最好基于 harbor.wdd.io:8033/rmdc/alpine:3.23.0

不嵌入RMDC-watchdog-agent的时候,

  1. 使用传统的start_up.sh 即为ENTRYPOINT ["./start_up.sh"]
  2. 需要构建 镜像名为 harbor.wdd.io:8033/rmdc/openjdk17-base-tools:1.0
  3. 需要同时 进行Tag为harbor.cdcyy.com.cn/cmii/openjdk17-base-tools:3.0 并且推送该镜像

当嵌入RMDC-watchdog-agent时候

  1. 需要go进行build 得到RMDC-watchdog-agent的压缩包
    1. 需要记录构建出来二级制文件,命名规则为 rmdc-watchdog-agent-${日期}
  2. 构建RMDC-watchdog-agent镜像
    1. 需要内嵌rmdc-watchdog-agent版本信息的环境变量 RMDC_WATCHDOG_AGENT_VERSION=${日期}
    2. OpenJDK-17版本
      1. 基础镜像使用 harbor.wdd.io:8033/rmdc/openjdk17-base-tools:1.0
      2. 镜像命名为 harbor.wdd.io:8033/rmdc/rmdc-watchdog-agent-jdk17:1.0
    3. OpenJDK-11版本
      1. 基础镜像使用 harbor.wdd.io:8033/rmdc/openjdk11-base-tools:1.0
      2. 镜像命名为 harbor.wdd.io:8033/rmdc/rmdc-watchdog-agent-jdk11:1.0
  3. 内嵌RMDC-watchdog-agent的时候, uav后端程序需要使用ENTRYPOINT ["/cmii/cmii-watchdog-agent", "-business-program-type", "java", "-business-program-path", "/cmii/jarfile.jar"]进行启动