把 Jenkins Master 部署到 K8s,Agent 用动态 Pod 按需启停——构建完即销毁,零资源浪费。本文从架构决策、Helm 部署、动态 Agent 配置到共享库接入,覆盖生产落地全流程。
一、为什么把 Jenkins 搬到 K8s
| 痛点(传统 VM 部署) | K8s 部署后 |
|---|---|
| Agent 常驻,闲时浪费资源 | 动态 Pod,构建完自动销毁 |
| Agent 环境不一致(手动安装依赖) | 容器镜像保证环境一致 |
| 扩容慢(新增 Agent 需运维介入) | Pod 秒级启动,自动伸缩 |
| Master 单点,迁移困难 | StatefulSet + PVC,天然高可用 |
| 多版本运行时冲突(JDK 8/11/17) | 不同 Job 用不同镜像,互不干扰 |