跳到主要内容

示例:Spark Console(Java)

本例演示一个 Java 17、Maven、Spring Boot 应用通过 K8S Pipeline 构建和发布。示例值来自 Spark Console 当前配置,不包含任何 Secret 明文;域名、集群、资源和仓库权限应替换为你的环境。

1. 目标结果​

spark-all Git repository
→ mvn -DskipTests package
→ spark-console/target/spark-console.jar
→ spark-console/deploy/Dockerfile
→ hiforce/spark-console:<generated-tag>
→ K8S namespace prod

应用监听 6060,Dockerfile 使用 Java 17 基础镜像启动 /app/spark-console.jar。

2. 平台准备​

  1. 创建可以读取 spark-all 的 Git Secret。
  2. 注册 K8S Cluster,并允许 prod namespace。
  3. 配置 Harbor Address、Harbor Secret、Git Clone Image、Kaniko Image 和 Java Builder Image。
  4. 在 Maven Config 中准备共享 .m2;私服需要认证时上传 settings.xml。
  5. 创建 Java 兼容的 Deployment Template。
Spark Console 的集群构建准备展示 K8S Cluster、Harbor、Java Builder、Maven .m2/settings.xml 和 Java Deployment Template。images/spark-pipeline-example-java-platform-01.webp
截图待补充

3. App 与 Repository​

创建 App:

App Name: Spark Console
App Code: spark-console
Capabilities: Repository, Pipeline

Repository:

Language: Java
Repository Type: Git
Repository URL: https://gitlab.hiforce.ai/spark-force/spark-all.git
Baseline Branch: master
Git Secret: <选择可读取该仓库的 Git Secret>

4. Production 环境​

创建环境:

Environment Code: prod
Environment Name: Production
Environment Type: PROD
Default Environment: On
Cluster Type: K8S
Namespace: prod

关键 Deployment Configuration:

配置示例值
Container Namespark-console
Dockerfile Pathspark-console/deploy/Dockerfile
Image Repositoryhiforce/spark-console
Replicas1
Container / Service Port6060 / 6060
Domainspark.hiforce.ai(示例)
Startup / Liveness / Readiness/health/startup、/health/liveness、/health/readiness
CPU Request / Limit1000m / 4000m
Memory Request / Limit1024Mi / 2048Mi
Config Pathspark-console/src/main/resources/application-eu.properties
Config Branchmaster
Log Path/root/log/spark-console

Dockerfile 在仓库子目录,但 Build Context 保持 .,因为它需要读取仓库根目录下构建出的模块产物。

Spark Console K8S 部署配置展示 Dockerfile、Image Repository、6060 端口、健康检查、资源和 application-eu.properties。images/spark-pipeline-example-java-deployment-02.webp
截图待补充

5. Pipeline​

Build Settings:

Build Context Path: .
Build Command: mvn -DskipTests package

阶段:

1. Build Image
2. Test Gate
3. Deploy to K8S

Release Channel 关联 master 或本次要发布的 release branch。点击 Start Build 后,先确认 Maven 日志中 spark-console.jar 已生成,再检查 Kaniko 推送的镜像地址。

6. Gate 验证​

Approve 前至少检查:

  • Maven 构建成功且没有跳过必须执行的生成步骤。
  • 镜像包含最新的 Console 静态资源和后端 JAR。
  • 配置文件不包含错误环境的数据库、IDAAS 或外部服务地址。
  • /health/startup、/health/liveness、/health/readiness 与当前应用真实端点一致。

点击 Deploy 后,在 Release Details 核对 Deployment、Service、Ingress/Domain 和最终镜像;再访问 Console 登录页和一条认证业务接口完成冒烟验证。

7. 常见调整​

  • 只构建必要模块时,可以将 Build Command 改为经过验证的 Maven reactor 命令,但必须确保 Dockerfile 引用的所有产物存在。
  • 如果 Maven 下载慢,先优化 Cluster Maven Config,不要在每个 App 中复制私服密码。
  • 如果 Dockerfile 移到其他目录,同时更新 Deployment Configuration;Build Settings 中不再单独维护 Dockerfile Path。