Jenkins 是云原生交付链路上最常被低估的一环——它不只是一个“点一下构建”的按钮,而是把代码、镜像、配置与发布串成可重复流程的调度中枢。本页从极客运维的日常运维视角出发,围绕流水线结构、构建节点管理、凭据与权限、构建产物治理与故障排查几个层面,整理一套在真实服务器上长期稳定运行的 Jenkins 实践思路,而不是重复安装向导。
用 Jenkinsfile 把构建、测试、镜像打包与部署步骤固化进仓库,避免界面配置漂移。声明式 Pipeline 的 stage 划分要对应可回滚的交付节点,而不是把所有命令塞进一个 shell 块。
Controller 只负责调度,实际构建交给 Agent。为不同语言与工具链准备标签化节点,限制并发与工作目录清理策略,避免一次构建把磁盘或内存拖垮整台机器。
SSH 密钥、镜像仓库账号、Kubeconfig 统一走 Jenkins Credentials,禁止明文写进脚本。结合 Role-based 授权把“能改流水线”和“能触发构建”的角色分开。
| 阶段 | 目标 | 常见坑 |
|---|---|---|
| Checkout | 拉取代码与子模块 | 凭据失效导致构建随机失败 |
| Build & Test | 编译与单元测试 | 工作区残留缓存污染结果 |
| Image | 构建并推送镜像 | 标签策略混乱无法回滚 |
| Deploy | 发布到测试/生产环境 | 缺少审批与回滚步骤 |
先看队列等待还是执行耗时,再检查 Agent 负载、磁盘 IO 与依赖下载源,必要时为流水线加缓存目录。
先备份 JENKINS_HOME 与插件清单,在测试实例验证插件兼容性,再按插件→主程序的顺序升级。