Rancher、Docker、K8s、Jenkins、ArgoCD:五个工具,一条流水线
云原生后端的技术栈很长但真正串起从代码到上线这条主线的就五个工具Docker、Jenkins、K8s、ArgoCD、Rancher。每个工具解决一个特定问题环环相扣。这篇文章不讲怎么安装只讲清楚两件事每个工具是什么、解决什么问题以及它们怎么串成一条完整的交付流水线。一、五个工具各自是什么先逐个搞清楚定位再看怎么协作。Docker解决环境一致性一句话把应用和它的所有依赖打包成一个不可变的镜像到哪里都能跑。没有 Docker 之前在我机器上能跑是后端开发最常见的甩锅。开发用 Java 11测试环境 Java 8生产环境某个依赖库版本不同——环境不一致导致的 bug 极难排查。Docker 的解法是把代码、运行时、依赖库、配置文件全部打到一个镜像里。镜像是一个不可变的制品开发、测试、生产用的是同一个镜像环境差异从源头消除。产出物一个带版本号的 Docker 镜像如user-service:v1.2.3。Jenkins解决自动化构建一句话代码 push 之后自动触发编译、测试、打包、推镜像全程不需要人干预。Docker 解决了怎么打包但谁来打包还是问题。总不能每次合代码都手动跑mvn package、docker build、docker push。Jenkins 就是那个自动化的流水线引擎。Jenkins 的核心是 Pipeline——一段声明式脚本定义了从代码拉取到镜像推送的完整步骤pipeline{agent any stages{stage(编译){steps{shmvn clean package -DskipTests}}stage(测试){steps{shmvn test}}stage(打镜像){steps{shdocker build -t user-service:v1.2.3 .}}stage(推镜像){steps{shdocker push registry.example.com/user-service:v1.2.3}}}}代码合并到主分支 → Jenkins 自动触发 → 编译 → 测试 → 打镜像 → 推到镜像仓库。CI持续集成到这一步结束。产出物一个已推送到镜像仓库的 Docker 镜像。K8s解决容器编排和调度一句话管理一堆机器上的容器负责自动部署、弹性伸缩、故障自愈、滚动更新。镜像推到仓库了但在哪些机器上跑几个副本、挂了怎么办、流量怎么分过去这些问题 Docker 自己解决不了。K8s 就是那个调度中枢。K8s 里的几个核心概念Pod最小调度单位里面跑一个或多个容器。Deployment定义要跑几个副本、用什么镜像、怎么更新。Service给一组 Pod 提供固定的访问入口IP 和域名Pod 挂了重建换 IPService 不变。Ingress把集群内的 Service 暴露给公网支持域名路由和 HTTPS。ConfigMap/Secret配置和敏感信息管理跟镜像解耦。一份 K8s 部署文件大概长这样apiVersion:apps/v1kind:Deploymentmetadata:name:user-servicespec:replicas:3# 跑 3 个副本selector:matchLabels:app:user-servicetemplate:metadata:labels:app:user-servicespec:containers:-name:user-serviceimage:registry.example.com/user-service:v1.2.3ports:-containerPort:8080K8s 拿着这份 YAML在集群里拉起 3 个 Pod自动负载均衡某个 Pod 挂了会自动重启。产出物一个在集群中稳定运行的应用实例。ArgoCD解决持续部署的配置漂移一句话监听 Git 仓库里的 K8s YAML 变化自动同步到集群保证集群状态和 Git 声明永远一致。CD持续部署有两种模式Push 模式Pull 模式代表Jenkins 做 CDArgoCD方式主动kubectl apply推到集群监听 Git 变化自动拉取并同步配置漂移有人手动改集群Jenkins 不知道集群与 Git 不一致时自动修正回来Push 模式的问题有人在集群里手动改了配置比如改了副本数Jenkins 下次部署会覆盖掉但中间这段时间集群状态和 Git 是不一致的——这叫配置漂移。ArgoCD 用 Pull 模式 GitOps 解决这个问题所有 K8s YAML 存在 Git 仓库里。ArgoCD 持续监听这个仓库。有人改了 Git 里的 YAMLArgoCD 自动同步到集群。有人手动改了集群ArgoCD 发现不一致会强制同步回 Git 的声明。Git 仓库成为唯一真实来源Single Source of Truth。不在集群里敲命令在 Git 里改文件。产出物集群状态与 Git 声明始终一致的持续部署机制。Rancher解决多集群管理一句话统一纳管多个 K8s 集群提供可视化界面、项目隔离、应用商店。一个团队可能有多个 K8s 集群开发集群、测试集群、生产集群甚至多云多地域。每个集群都要kubectl连上去管理切来切去很烦。Rancher 把这些集群统一纳管到一个界面里多集群管理一个页面看到所有集群的状态。可视化操作不用敲kubectl点按钮就能部署、扩缩容、看日志。项目隔离按项目/团队划分权限和资源。应用商店一键安装常用组件监控、日志等。Rancher 不是 K8s 的替代品是 K8s 的管理平台。底下跑的还是 K8sRancher 是上面那层管理面板。产出物一个统一的多集群管理入口。二、五个工具怎么串成一条流水线概念清楚了下面看它们怎么协作。以一个 Spring Boot 服务的完整交付流程为例。完整流程图开发写代码 ↓ Git push 到 GitLab/GitHub ↓ Jenkins 自动触发 CI 流水线 ├→ mvn clean package 编译 ├→ mvn test 单元测试 ├→ docker build 打镜像 └→ docker push 推到 Harbor/ACR ↓ 开发者修改 K8s YAML 仓库 把镜像版本号改成 v1.2.3 ↓ ArgoCD 监听到 Git 仓库变化 ├→ 拉取最新 YAML └→ kubectl apply 到 K8s 集群自动同步 ↓ K8s 拉起新版本 Pod ├→ 滚动更新逐个替换旧 Pod ├→ Service 流量自动切换 └─ 故障自愈Pod 挂了自动重启 ↓ Rancher 界面查看部署状态 ├→ 看 Pod 日志 ├→ 看资源使用率 └→ 排障、扩缩容逐环节拆解环节 1开发提交代码开发者写完 Spring Boot 代码本地用 Docker Compose 跑起 MySQL Redis 依赖自测通过后推到 Git 仓库的功能分支发起 MR/PR。代码审查通过后合并到主分支。环节 2Jenkins 做 CIJenkins 监听到主分支有新代码自动触发流水线编译 Java 代码 → 跑单元测试 →docker build打镜像 →docker push推到镜像仓库。到这一步CI 结束。产出物是registry.example.com/user-service:v1.2.3这个镜像。关键点Jenkins 只负责把代码变成镜像不负责部署。很多团队让 Jenkins 直接kubectl apply做 CD这其实混了职责。现代实践是 Jenkins 只管 CI。环节 3改 Git 里的 K8s YAML有一个独立的 Git 仓库存放 K8s 部署文件YAML。CI 完成后开发者或自动化脚本修改这个仓库里的镜像版本号# 从image:registry.example.com/user-service:v1.2.2# 改成image:registry.example.com/user-service:v1.2.3提交这个改动到 Git。环节 4ArgoCD 做 CDArgoCD 持续监听 YAML 仓库。发现 Git 里的镜像版本号变了自动拉取最新 YAML通过kubectl apply同步到 K8s 集群。如果有运维手动在集群里改了配置ArgoCD 会发现集群状态和 Git 不一致强制同步回 Git 的声明。Git 是唯一真实来源。环节 5K8s 执行部署K8s 收到新的 Deployment 声明开始滚动更新逐个创建新版本 Pod就绪后替换旧 Pod旧 Pod 优雅下线。Service 的流量自动切换到新 Pod。如果新版本有问题比如启动失败K8s 的健康检查会阻止新 Pod 接入流量旧版本继续服务给排查争取时间。环节 6Rancher 监控和排障部署完成后开发或运维通过 Rancher 界面查看新版本 Pod 是否全部 RunningPod 日志有没有异常CPU/内存使用率是否正常需要扩容时直接在 Rancher 界面改副本数不用敲kubectl不用切集群上下文一个界面搞定。三、职责边界谁干什么五个工具的职责很容易混淆尤其 Jenkins 和 ArgoCD、K8s 和 Rancher。画个线工具职责不干什么Docker打包应用为镜像不管部署、不管调度JenkinsCI编译→测试→打镜像→推仓库不直接部署到 K8s交给 ArgoCDArgoCDCD监听 Git→同步到 K8s不管编译、不管打镜像K8s容器调度部署、伸缩、自愈不管多集群统一界面交给 RancherRancher多集群管理可视化、纳管不替代 K8s底下还是 K8s最容易踩的坑是让 Jenkins 同时做 CI 和 CD。Jenkins 做 CDPush 模式的问题是没有配置漂移修正能力回滚也不优雅。让 Jenkins 和 ArgoCD 各干各的职责清晰问题好排查。四、一个实际场景串一遍假设要上线用户服务 v2.0增加了新功能手机号登录。开发本地写代码用 Docker Compose 跑依赖自测通过。提交代码推到 Git 功能分支发起 MR审查通过合并到主分支。CIJenkins 自动触发——编译 Java、跑测试、docker build打镜像user-service:v2.0.0、推到 Harbor。改 YAML修改部署仓库的 Deployment YAML镜像版本改成v2.0.0提交到 Git。CDArgoCD 监听到 YAML 变化自动同步到 K8s 测试集群。先在测试集群验证。K8s 部署滚动更新3 个新 Pod 逐个替换旧 PodService 流量自动切换。Rancher 查看在 Rancher 界面看测试集群的 Pod 状态和日志验证没问题。推生产把同一个 YAML 的目标集群改成生产集群ArgoCD 自动同步到生产 K8s。同样的滚动更新流程。监控通过 Rancher 界面看生产集群的 CPU、内存、Pod 状态确认服务稳定。整个过程代码到镜像是 Jenkins 的事镜像到集群是 ArgoCD 的事集群内调度是 K8s 的事多集群看是 Rancher 的事。Docker 贯穿始终提供不可变制品。五、为什么是这五个这五个工具不是随便选的它们刚好覆盖了交付流水线的五个关键环节打包Docker代码怎么变成可部署的制品。构建Jenkins怎么自动化地把代码变成镜像。调度K8s镜像怎么在集群里跑起来、跑得稳。部署ArgoCD怎么把镜像安全、可追溯地推到集群。管理Rancher多个集群怎么统一看、统一管。少一个就有缺口没有 Docker环境一致性没法保证没有 Jenkins手动打包效率低没有 K8s容器调度靠手动没有 ArgoCD部署配置容易漂移没有 Rancher多集群管理靠切命令行。

相关新闻

Java实习生面试:从八股文背诵到技术思维与工程能力的展现

Java实习生面试:从八股文背诵到技术思维与工程能力的展现

1. 从“面试鸭”到“面试官”:一次Java实习面试的深度复盘与拆解最近在带新人,也参与了几场实习生面试,发现很多同学对“面试”这件事的理解还停留在“背八股文”的阶段。一上来就是“HashMap的底层原理”、“Spring Bean的生命周期”&#x…

2026/8/7 2:01:14 阅读更多 →
Vivado启动自动化:Tcl脚本实现FPGA开发环境一键配置

Vivado启动自动化:Tcl脚本实现FPGA开发环境一键配置

1. 项目概述:为什么需要让 Vivado 启动时自动执行脚本?如果你和我一样,常年泡在 FPGA 开发里,每天和 Vivado 打交道的时间可能比和家人还多,那你一定遇到过这些烦人的重复劳动:每次打开 Vivado,…

2026/8/7 2:01:14 阅读更多 →
Frida实战:从原理到代码,彻底破解移动应用SSL Pinning证书绑定

Frida实战:从原理到代码,彻底破解移动应用SSL Pinning证书绑定

1. 项目概述:为什么SSL Pinning是移动安全分析的“拦路虎”?在移动应用安全测试和逆向工程领域,SSL Pinning(证书绑定)是一个我们几乎每天都会遇到的“老朋友”,也是一个让人又爱又恨的技术。爱它&#xff…

2026/8/7 2:01:14 阅读更多 →

最新新闻

3大核心技术突破:深入解析XCOM 2模组管理器的革命性设计

3大核心技术突破:深入解析XCOM 2模组管理器的革命性设计

3大核心技术突破:深入解析XCOM 2模组管理器的革命性设计 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors…

2026/8/7 2:39:35 阅读更多 →
深度解析x3daudio1_7.dll缺失:从DirectX原理到《辐射4》音频故障修复

深度解析x3daudio1_7.dll缺失:从DirectX原理到《辐射4》音频故障修复

1. 项目概述:当《辐射4》遭遇“x3daudio”拦路虎如果你是一位《辐射4》的玩家,在废土世界探索正酣,或是刚准备踏入这片传奇的末日之地,却冷不丁被一个弹窗拦在了游戏之外,那种感觉绝对糟透了。我最近就帮好几位朋友处理…

2026/8/7 2:39:35 阅读更多 →
UE5集成AI实战:大语言模型驱动NPC动态对话与智能决策

UE5集成AI实战:大语言模型驱动NPC动态对话与智能决策

1. 项目概述:当UE5遇见AI,游戏开发的范式革命 最近几年,游戏圈里最让人兴奋的两件事,一个是像《黑神话:悟空》这样的国产3A大作横空出世,另一个就是AI技术以肉眼可见的速度渗透到创作的每一个环节。作为一名…

2026/8/7 2:39:35 阅读更多 →
AI视频生成实战:基于豆包与即梦Seedance2的电商换装视频自动化工作流搭建

AI视频生成实战:基于豆包与即梦Seedance2的电商换装视频自动化工作流搭建

大家好,我是专注于AI应用与自动化工作流开发的博主。最近在电商视频制作领域,一个名为“豆包即梦Seedance2”的组合方案正在悄然流行,它号称能5分钟一键生成沙发换装、服装展示等带货视频,效率极高。很多朋友在尝试搭建这套工作流…

2026/8/7 2:39:35 阅读更多 →
UnityLockstep:确定性锁步框架原理与实战开发指南

UnityLockstep:确定性锁步框架原理与实战开发指南

1. 项目概述与核心价值如果你正在开发一款多人在线游戏,尤其是像RTS、MOBA或者格斗游戏这类对操作同步要求极高的类型,那么你一定被网络延迟、丢包和不同步问题折磨过。玩家A看到自己击中了目标,玩家B却显示自己成功闪避,这种“所…

2026/8/7 2:39:34 阅读更多 →
PyDracula架构深度解析:现代Python GUI框架的技术实现与设计哲学

PyDracula架构深度解析:现代Python GUI框架的技术实现与设计哲学

PyDracula架构深度解析:现代Python GUI框架的技术实现与设计哲学 【免费下载链接】Modern_GUI_PyDracula_PySide6_or_PyQt6 项目地址: https://gitcode.com/gh_mirrors/mo/Modern_GUI_PyDracula_PySide6_or_PyQt6 项目价值定位:解决Python桌面应…

2026/8/7 2:38:34 阅读更多 →

日新闻

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南 【免费下载链接】scrcpy Display and control your Android device 项目地址: https://gitcode.com/GitHub_Trending/sc/scrcpy 想要将Android手机屏幕完美投射到电脑上,享受大屏操作的自…

2026/8/7 0:00:19 阅读更多 →
如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南

如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南

如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南 【免费下载链接】tom-select Tom Select is a lightweight (~16kb gzipped) hybrid of a textbox and select box. Forked from selectize.js to provide a framework agnostic autocomplete widget wi…

2026/8/7 0:00:19 阅读更多 →
5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件

5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件

5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件 【免费下载链接】nsz NSZ - Homebrew compatible NSP/XCI compressor/decompressor 项目地址: https://gitcode.com/gh_mirrors/ns/nsz 你是否在为Nintendo Switch游戏文件占用大量存储…

2026/8/7 0:00:19 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/6 22:02:27 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/6 22:02:27 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/6 22:02:27 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/5 23:28:39 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/6 22:02:28 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/5 23:46:51 阅读更多 →