配置 K8S 集群
K8S Pipeline 在集群中创建构建 Job,将镜像推送到 Harbor,再按应用部署配置生成并应用 Kubernetes 资源。注册集群只是第一步;至少还要完成 Harbor Config 和 Deployment Template。
1. 注册集群
进入 Cluster Management → Registered Clusters,点击标题旁的 +:
- 填写 Cluster Name 和稳定的 Cluster Code。
- Cluster Type 选择 K8S。
- Environment 选择 DEV、TEST、STAGING 或 PROD。
- 粘贴 kubeconfig,点击 Test Connection。
- 测试成功后选择 Default Namespace 和 Allowed Namespaces。
- 保存集群。
images/spark-pipeline-k8s-register-01.webp应用创建环境时只能选择 Allowed Namespaces。修改 kubeconfig 后必须重新 Test Connection,未验证的新内容不能直接保存。
2. 配置 Harbor
进入该集群的 Harbor Config:
| 字段 | 说明 |
|---|---|
| Registry Address | host[:port],不填写协议和仓库路径 |
| Harbor Secret | 选择 Harbor 类型 Secret |
| Git Clone Image | 拉取 Git 源码的镜像,可留空继承系统默认值 |
| Kaniko Image | 构建并推送容器镜像的执行镜像 |
| Java Builder Image | Java 源码构建镜像 |
| Node.js Builder Image | Node.js 管理构建镜像 |
| Python Builder Image | Python 构建环境镜像 |
保存后点击 Test Connection。只有登录和 Registry 访问正常,Pipeline 才能稳定推送制品。
images/spark-pipeline-k8s-harbor-02.webp3. 按技术栈配置构建缓存
Java:Maven Config
在 Maven Config 中可配置:
- Host Maven
.m2Directory,例如/home/nfs/storage/m2 - 可选的
settings.xml
Pipeline 会把宿主机 .m2 目录挂载到构建容器的 /root/.m2。上传 settings.xml 后,它会覆盖同路径配置。共享目录应由集群管理员准备并保证构建节点可访问。
Node.js:NPM Config
在 NPM Config 中可配置:
.npmrc,用于私有 Registry、scope 和认证- NPM Cache Host Path,用于 NPM、Yarn、PNPM 缓存
不要把 Token 写进 App 的 Build Command;统一放入受控的 .npmrc 配置。
images/spark-pipeline-k8s-build-cache-03.webpPython Dockerfile 构建通常不需要额外的集群包管理配置。依赖源、Conda channel 或系统库应在仓库 Dockerfile 中明确声明,使构建可重复。
4. 创建 Deployment Template
进入 Deployment Templates 创建模板:
- 填写模板名称和代码。
- 可限制 App Language 为 Java、Node.js 或 Python;留空表示通用。
- 配置模板内容和说明。
- 保存后,在 App 的 K8S Deployment Configuration 中选择该模板。
模板属于集群。App 侧不能粘贴一份私有 YAML 代替模板,而是用模板加上 App 的工作负载、网络、健康检查、资源、变量和卷配置生成最终清单。
images/spark-pipeline-k8s-template-04.webp5. 可选运行能力
按应用需求配置:
- Runtime Variables:集群级变量,App 可在部署环境中覆盖允许的值。
- Storage Classes / PVC Configs:应用需要持久化卷时使用。
- Domain Certificates / DNS:需要 HTTPS 和自动 DNS 同步时使用。
- Management Nodes:证书维护、巡检或 SSH 运维使用,不是普通 Pipeline 构建的必需项。
6. 完成检查
开始配置 App 前确认:
- Cluster 状态可连接,目标 namespace 在 Allowed Namespaces 中。
- Harbor Config 已保存并测试成功。
- 至少有一个与 App Language 兼容的 Deployment Template。
- Java 私服需要的 Maven settings、Node.js 私服需要的
.npmrc已配置。 - 构建镜像可以从集群拉取,Harbor 账号可以推送目标 repository。
下一步进入创建 App 与关联 Repository。