Spark Pipeline 总体介绍
Spark Pipeline 把 Git 仓库中的应用构建成可发布制品,并部署到 Kubernetes(K8S)或 Docker 主机。它不是一个孤立的“流水线编辑器”:一次成功发布依赖 Secret、集群运行时、应用代码仓库和应用环境已经按顺序配置完成。
阅读本手册后,你可以:
- 为私有 Git 仓库、镜像仓库和运行时连接准备 Secret
- 注册 K8S 或 Docker 集群,并完成对应的构建与部署配置
- 创建 App,关联 Java、Python 或 Node.js 仓库
- 为 DEV、TEST、STAGING、PROD 建立相互独立的部署环境
- 配置 Build、Test Gate、Deploy 阶段并查看发布记录、日志与制品
- 复现 Spark Console、Pulse Force Server、front-era 三种技术栈示例
images/spark-pipeline-overview-01.webp1. 配置对象之间的关系
Secret
├─ Git Secret ───────────────→ App Repository
├─ Kubeconfig ───────────────→ K8S Cluster
├─ Harbor Secret ────────────→ K8S Harbor Config
└─ SSH Private Key ──────────→ Docker Host / Bastion Host
Cluster + App Repository
↓
App Deployment Environment
↓
Deployment Configuration
↓
Release Branch → Build Image → Test Gate → Deploy
配置归属很重要:
| 对象 | 作用域 | 说明 |
|---|---|---|
| Secret | Tenant 或 App | 保存 Git、Harbor、Kubeconfig、SSH 等敏感材料 |
| Cluster | Tenant | 提供 K8S API 或 Docker 主机运行能力 |
| Repository | App | 定义语言、Git URL、基线分支和 Git Secret |
| Deployment Environment | App | 把一个环境绑定到一个集群和 namespace/host group |
| Deployment Configuration | App + Environment | 定义容器、端口、资源、健康检查和技术栈构建参数 |
| Pipeline | App + Environment | 定义阶段顺序、发布分支、运行与发布历史 |
同一个 App 可以有多个环境。每个环境有独立的部署配置、Pipeline、发布分支和运行历史;在 DEV 中构建成功不会自动发布到 PROD。
2. 推荐配置顺序
首次接入应用时按以下顺序操作:
- 在 System Settings → Secret Management 创建所需 Secret。
- 在 Cluster Management 注册 K8S 或 Docker 集群。
- 完成集群级构建与运行时配置。
- 在 Applications 创建 App,选择 Existing Application,或确保能力中包含 Repository 和 Pipeline。
- 打开 App 的 Repository,设置语言、Git URL、基线分支和 Git Secret。
- 打开 Deployment,创建环境并绑定集群与运行目标。
- 进入该环境的部署配置,保存容器、网络、健康检查和构建参数。
- 打开 Pipeline,保存阶段,添加发布分支,然后启动构建。
- 构建完成后通过 Test Gate,并在 Deploy 阶段确认部署。
- 在 Release History 中核对制品、部署快照、事件和日志。
提示
先完成集群与部署配置,再配置 Pipeline。Pipeline 会在保存和运行前检查部署目标;缺少 Harbor、Docker Host Group 或部署配置时,继续编辑阶段并不能绕过这些前置条件。
3. 当前支持矩阵
| 语言 | K8S | Docker | 典型构建方式 |
|---|---|---|---|
| Java | 支持 | 支持 | Maven 源码构建 + Dockerfile 镜像构建 |
| Python | 支持 | 支持 | 使用仓库 Dockerfile 构建镜像 |
| Node.js | 支持 | 支持 | Dockerfile,或 K8S 中由 Spark 管理 NPM/Yarn/PNPM 构建 |
K8S Node.js 还提供 Static Artifact 发布模式。该模式生成静态产物,不生成可供 K8S Deploy 阶段使用的容器镜像,因此不能与 DEPLOY_K8S 放在同一条当前发布链路中。要通过 Pipeline 部署前端容器,请选择 Container Image。
4. 本手册目录
平台准备
应用与环境
构建与发布
完整示例
最后可使用问题排查逐层判断错误发生在 Git、构建、镜像仓库还是部署目标。