简介:这份云原生技术学习路线图面向开发者、运维人员与技术架构师,旨在帮助读者理清从基础容器、集群编排、微服务架构,到服务网格、无服务器计算、开发运维一体化等方向的完整知识脉络。内容按初阶、中阶、高阶三个阶段展开,从容器与集群基础开始,逐步深入到服务网格、无服务器平台、边缘计算等进阶领域,同时涵盖微服务与配置中心、监控告警、持续集成与持续部署、日志采集、集群联邦等核心模块,并针对镜像体积优化、冷启动时间缩短、资源占用率降低等实践问题给出关注要点。整份路线图由多位阿里云技术专家参与编写,既有全景式知识梳理,也提供了循序渐进的学习路径,适合初学者据此搭建学习框架,也适合有经验的工程师用于查漏补缺。资源包内共一个文件,为PDF格式,大小约1.29MB。目前已有1071人学习浏览,对于希望系统掌握云原生技术栈的读者来说,是一份很好的参考。
1. 云原生技术学习路线图:先绕开生态迷雾,再谈从哪一步学起
云原生技术学习这件事,最大的门槛不是难,是散。Kubernetes、Service Mesh、Serverless、DevOps、可观测性、边缘计算、多集群治理,任何一个方向都能把人淹没,新手最容易卡在“我该先学哪个”上。CSDN 的这份《云原生技术学习路线图》做的正是这件事:把云原生生态里几十个高频技术按初阶、中阶、高阶三层排成一张主图,每一层标清楚技术名、工具和演进关系。适合两类人:一是准备系统入行云原生、但需要一个全局坐标的开发者;二是已经用过 Kubernetes、想补全中间件、微服务治理和 Serverless 盲区的从业者。它不是一本教你敲命令的手册,而是一张防止你学偏的地图,先帮你建立骨架,再往里填肉。
2. 初阶路线:先把 Kubernetes 编排、存储与中间件串成一条线
2.1 为什么初阶核心是 Kubernetes,而不是某个容器工具
很多人以为云原生入门等于学 Docker,实际上去年到今年我自己带过几个新人,发现结论正好反过来:容器运行时只是地基,真正决定你能不能干活的是编排层。路线图初阶部分把 Kubernetes 放在中心位置,四周是 kubeasz、Minikube、Kuboard、Kubelens,再往外是 etcd、Redis、Nacos、MinIO、Harbor 这些中间件,意图非常明显——先用 Kubernetes 把“部署、调度、暴露、存储”这条主链路跑通,再谈周边组件。
初阶阶段要理解三层关系:第一层是容器运行时,负责把镜像跑起来,属于“单机能力”;第二层是 Kubernetes,负责把容器调度到合适节点并维持期望状态,属于“集群能力”;第三层是接口标准,也就是 CRI(容器运行时接口)、CNI(容器网络接口)、CSI(容器存储接口),它们决定 K8s 怎么“插”不同的运行时、网络和存储实现。这三层我建议按“用→拆→装”的顺序学:先用现成工具起集群,再拆开看组件,最后手动装一遍。
本地练习我一般这样起环境:
# 本地起一个单节点集群,driver=none 表示直接用本机容器运行时 minikube start \ --driver=none \ --container-runtime=containerd \ --cni=calico第一句命令指定了容器运行时用 containerd 而不是 Docker,因为新版 Kubernetes 里 Docker 的运行时路径已经过时,直接上 containerd 避免后面踩“镜像拉取但 Pod 起不来”的坑。第二句把 CNI 指定为 Calico,这样能顺带练一遍网络策略,比默认的 flannel 多一层安全能力。Minikube 适合在笔记本上做验证,但注意它默认把 Master 和 Worker 合并成一个节点,调度、亲和性、多节点存储这些场景练不到,后面第 5 章我会单独说这个坑。
2.2 初阶要抓的四个模块:接口、模板、中间件与运维入口
路线图初阶区域信息量不小,但归纳下来就是四块。第一块是接口标准,把 CNI、CRI、CSI 搞清楚,它们决定了 K8s 的扩展边界;第二块是部署表达,也就是 YAML、Helm、KUDO、OAM 这一组技术,解决“部署描述怎么写、怎么复用”;第三块是中间件,etcd 存集群数据,Redis 做缓存,Nacos 管配置和注册,MinIO 提供对象存储,Harbor 存镜像;第四块是运维入口,Kuboard、Kubelens 这类可视化管理工具,给团队里不习惯命令行的同学提供一条退路。
| 模块 | 代表技术 | 学习顺序 | 最少掌握到什么程度 |
|---|---|---|---|
| 接口标准 | CRI / CNI / CSI | 先理解概念,不必先深入 | 能说清每个接口“插”的是什么 |
| 部署表达 | YAML / Helm / KUDO | 紧跟 K8s 之后 | 能写 Deployment + Service,能改 Helm values |
| 中间件 | etcd / Redis / Nacos / MinIO / Harbor | 按需引入 | 至少把 etcd 和 Harbor 串进部署流程 |
| 运维入口 | Kuboard / Kubelens / kubeasz | 穿插使用 | 能完成一次集群部署和应用发布 |
这里最容易翻车的是把四个模块平铺着学,每个都浅尝辄止。正确的做法是把 YAML 和 Helm 作为主线,因为后面学 Istio、KubeVela、Operator 时,都是在 YAML 表达模型上做扩展;中间件则按链路需求引入,比如你要做一个带配置中心的示例应用,才去碰 Nacos,而不是先把 Nacos 的所有功能看一遍。
2.3 初阶验收:跑通一条“配置中心 + 服务 + 对象存储”的链路
学初阶有没有学明白,不要看会了多少概念,看能不能独立跑通一条真实链路。我给自己定的标准是:启动一个集群,部署一个业务服务,服务从配置中心读取参数,业务数据写入对象存储,镜像和配置分别从 Harbor 和 Nacos 拉取。这条链路覆盖了部署、配置、存储和镜像分发四个场景。下面是一段最小验证命令:
# 创建命名空间,隔离练习环境 kubectl create ns lab # 部署一个测试服务,镜像拉取策略设为 IfNotPresent,避免每次重复拉取 kubectl run web --image=nginx:1.27 --port=80 -n lab # 暴露为 NodePort,验证外部能访问 kubectl expose pod web --type=NodePort --port=80 --name=web-svc -n lab第一句是隔离环境,防止练习时操作污染到默认命名空间。第二句的IfNotPresent是镜像拉取策略的常见取值,本地已有镜像时跳过拉取,省时间也减少网络失败的可能。第三句把 Pod 直接暴露成 NodePort,虽然生产环境不会这么干,但在初阶验证阶段最直观。跑通这段后,再用 Helm 把 Nacos 或 MinIO 装进集群,把配置和存储替换成真实组件,初阶就算毕业了。
3. 中阶路线:Service Mesh 与 Serverless,是同一问题的两种解法
3.1 微服务框架选型:Spring Cloud、Dubbo 与 Tars 的分界线
进入中阶后,路线图把 Service Mesh、Serverless、DevOps、微服务中间件放在同一层,这里的技术没办法全学,必须按团队语言栈和业务形态选。先说微服务框架。Spring Cloud 适合 Java 技术栈、业务逻辑复杂、需要快速集成大量治理能力的团队;Dubbo 更适合对性能敏感、以接口调用为主的场景,它的 SPI 扩展机制在框架层面留了很多自定义口子;Tars 是多语言支持较完整的方案,C++、Go、Node.js 都能接入,但也因为设计偏平台化,小团队直接用有学习成本。
配置中心的选择和框架不是强绑定关系。Nacos 在 Java 生态里最顺手,它同时覆盖了注册中心和配置中心两个职责;etcd 更偏基础组件,Kubernetes 用它存数据,你自己用的话要额外封装;选型时还有个常被忽略的点是团队已有的运维习惯——如果团队已经会用 Consul,没必要为了“云原生”强行换 Nacos。
| 框架 | 语言栈 | 典型场景 | 选型注意点 |
|---|---|---|---|
| Spring Cloud | Java | 业务系统、网关、配置 | 组件多,版本兼容要盯紧 |
| Dubbo | Java | 高性能 RPC、内部调用 | 治理能力强,但和 Spring Cloud 体系重叠 |
| Tars | 多语言 | 异构系统、多语言服务 | 平台化重,小团队慎入 |
3.2 Service Mesh:流量管理从框架里拆出来之后,什么时候才值得上
Service Mesh 解决的核心问题是:把服务发现、负载均衡、熔断、限流从应用 SDK 里拆出来,下沉到 Sidecar 进程。路线图里 Istio、Linkerd、Conduit 并排出现,三者的定位有清晰差别。Istio 功能最全,流量管理、可观测性、安全策略都覆盖,代价是控制面复杂、资源占用高,适合大规模微服务和需要细粒度策略的团队。Linkerd 走轻量路线,部署简单、资源消耗小,功能集中在链路可靠性上,适合中小规模集群。Conduit 本身就是 Linkerd 团队做的数据面简化实验,后来并入 Linkerd 2.x,现在单独学它意义不大。
什么时候不该上 Mesh?我有一个很直接的判断标准:如果你的服务不到 20 个,团队也没有被“跨语言治理”或“SDK 升级困难”这两类问题困扰,就不要用。这个阶段引入 Istio,等于在业务之上多养一个复杂系统,排查链路多一层,收益却体现不出来。我见过不少团队把 Mesh 当摆设装上,最后只用了它的监控面板——这是最典型的中阶资源浪费。
3.3 可观测性与 CI/CD:中阶练习必须形成闭环
中阶阶段要形成“改代码→构建→发布→观测”的闭环,只学部署不学观测会有一个很严重的后果:服务崩了你不知道先看哪里。监控这块,Prometheus + Grafana + Alertmanager 是事实标准,Prometheus 负责采集和告警规则,Grafana 做展示,Alertmanager 处理告警路由和静默。链路追踪用 SkyWalking、Zipkin 或 Jaeger,配合 OpenTracing 标准做埋点;日志侧 ELK/EFK 与 Loki 的主线差异在于是否索引全文——ELK 检索能力强但资源开销高,Loki 只索引标签,成本低也更适合日志量大、查询模式固定的场景。
CI/CD 部分推荐按团队协作方式选:Jenkins 适合已有大量插件资产、且团队习惯传统 Jenkinsfile 的现状;Tekton 的优点是云原生、每个步骤都是 CRD,和 Kubernetes 结合最紧密;Argo 强在应用发布和回滚编排,尤其适合 GitOps 流程;Drone 更轻,适合中小型项目快速落地。练习时不要求全,我建议认真跑通一条完整链路:用 Tekton 或 Jenkins 完成镜像构建,Argo CD 做持续部署,Prometheus 接告警,Loki 收日志。链路一通,中阶的大部分技术你都有实际体验了。
4. 高阶路线:从声明式到平台工程,先分清三个主攻方向
4.1 从 YAML 到 KubeVela:声明式部署的演进逻辑
高阶部分的第一个主题,是怎么用声明式方式管理越来越复杂的交付。普通 YAML 可以描述几百个资源,但当应用规模变大、环境变多时,YAML 就是一场灾难。于是有了两派解法:一派出现在配置生成阶段,Jsonnet 解决“YAML 模板化和变量复用”,CUE 更进一步,既能生成配置又能做约束校验,HCL 则被 Terraform 体系带火,多用于基础设施即代码;另一派出现在部署编排阶段,OpenKruise 增强 Kubernetes 原生工作负载,补齐分批发布、原地升级这些能力,KubeVela 基于 OAM 模型,把“部署一组关联资源”抽象成“交付一个应用”。
学习这一层的顺序我建议“先用 CUE 或 Jsonnet 做一个小工具,把一套多环境 K8s 配置参数化”,再上手 OpenKruise 看它加挂了哪些能力,最后才看 KubeVela。很多人一上来就学 KubeVela,结果发现理解不了它的 Application 模型为什么要把多个资源包在一起——因为没有先体会过“多个 YAML 拆着管理有多痛”。我自己建议的练习节奏是:先写 50 个以上的 YAML,再谈抽象。
4.2 三个方向的自测:平台交付、可观测性与边缘运行时
高阶路线图里有一大批分支技术,按体系可以归成三条线。第一条是平台与多云交付:Terraform、Crossplane、Open Service Broker、Anthos、KubeSphere、OpenShift 都在这条线上,核心目标是“把基础设施、集群、应用当代码交付”,适合要建内部平台团队的场景。第二条是可观测性与质量工程:SkyWalking、Grafana、Sonobuoy、混沌工程工具 Litmus 在内,核心工作是完善监控、链路、审计和故障演练体系,适合稳定性压力大的业务。第三条是边缘与多集群:KubeEdge、OpenYurt、Kubernetes Federation、Akri 这些技术解决“网络不稳、节点分散、算力有限”场景下如何统一管理,适合物联网、分布式站点业务。
| 方向 | 代表技术 | 核心指标 | 适配业务特征 |
|---|---|---|---|
| 平台与交付 | Terraform / Crossplane / KubeVela | 交付效率和标准化程度 | 交付环境多、资源种类杂 |
| 可观测性 | SkyWalking / Grafana / Litmus | MTTR 和告警准确率 | 线上故障多、排查链路长 |
| 边缘与多集群 | KubeEdge / OpenYurt / Federation | 离线自治和管理规模 | 节点分布广、网络不稳定 |
怎么选方向,我一般用三个问题自测:你的业务是“交付频次高”还是“运行稳定性压力大”?如果是前者,走平台与交付方向;如果是后者,走可观测性方向;如果业务有大量离线或弱网节点,比如门店、车端、基站设备,再考虑边缘方向。选方向跟选技术栈一样,要看未来三年你的业务会把人往哪边逼。
4.3 高阶练习的“一个月验证法”
高阶技术不能靠看文档学会,我给自己的方法是“一个月验证法”:月初选一个方向,用四个星期分别完成评估、小范围落地、输出文档、复盘去留。第一周查清楚这个技术解决的问题是否真实存在,如果业务里根本没有多集群需求,那 Federation 再流行也和你无关;第二周在测试环境做最小化落地,比如用 Crossplane 声明一个云数据库实例;第三周把实践过程整理成内部文档,包括参数取舍和失败记录;第四周决定继续投入还是放弃。
这套方法帮我避免了一个大坑:追新技术时容易陷入“学会它”的成就感,但没想过“用它解决什么问题”。高阶部分的技术大多需要场景喂养,没有真实业务驱动时,学到一定深度就上不去了。与其广泛涉猎十个方向,不如用一个完整验证周期把一个方向做透——这也是我后来带团队时反复强调的:先有痛,后学药,不要反过来。
5. 避坑指南:按图索骥最容易翻车的四个选择
5.1 把生态地图当成课程表,照着全量学
现象:拿到路线图后兴奋地从头开始,把图上每个名词都打开官方文档看一遍,一周后发现第一个技术还没学会,已经又攒了二十个未完成的标签页。原因:路线图是生态地图,不是按周安排的课程表,它的作用是告诉你“哪些技术存在、彼此什么关系”,不是让你按顺序逐个学。解决:先定一个出口,比如“我要能独立部署一个带监控和日志的微服务应用”,然后倒推需要哪些节点,只学路径上的技术;路线图上其余内容当作字典,遇到再查。
5.2 在文档里学 Kubernetes,看得多敲得少
现象:能说出来 Deployment、Service、Ingress 的区别,一上手却不知道kubectl describe该在什么时机用,Pod 起不来只能删了重来。原因:Kubernetes 的核心行为靠“观察”才能理解,比如探针失败后的重启策略、滚动更新卡住时的 Pending 原因,这些现象只能在真实集群里看到。解决:至少完整跑一遍“构建镜像→部署→更新镜像→触发回滚→扩容→排查 CrashLoopBackOff”六个动作,每次都强制看一眼kubectl get events输出,把事件和时间线对应起来。血泪经验是:看十遍文档,不如亲自把一个错误复现出来再解决掉。
5.3 初阶没站稳,就急着上 Service Mesh 和 Serverless
现象:只会在 Minikube 上部署一个静态网站,就开始往环境里加 Istio、Knative、OpenFaaS。原因:Service Mesh 和 Serverless 都是“减负类”技术,前提是集群本身稳定、链路清晰;如果基础编排都不熟,引入后出了问题根本分不清是 Sidecar 注入的问题还是业务本身的问题。解决:给自己设一个硬门槛——等你能在三节点集群上手工完成一次带配置中心、日志、监控的发布,再碰中阶技术;学 Istio 前,先能在集群里用原生 Service 完成一次流量切换。
5.4 用单节点环境练完,就以为掌握了集群调度
现象:在 Minikube 上跑通了一整套流程,去面试或真实环境时发现节点亲和性、污点容忍、Pod 漂移这些概念没用过,面对多节点调度问题毫无头绪。原因:单节点环境里没有“调度”这个概念,Pod 永远落在同一个节点,存储、网络、编排的所有异常都被掩盖了。解决:至少用 kubeasz 或类似工具做一次三节点二进制部署,手动经历一次节点宕机、工作负载迁移和数据恢复;这一趟走完,你对控制面高可用、etcd 备份的理解会超过绝大多数只刷文档的人。Minikube 适合验证语法,不适合验证架构,这一点要心里有数。
6. 把路线图变成一张可执行的进度表:我的工具与方法
6.1 用自己的四象限,而不是路线图的初/中/高
路线图的三阶分层适合建认知框架,但它不解决“我什么时候学什么”的问题。我做了一张自己的进度表,把图上所有技术按“已用在生产 / 正在实验 / 储备观察 / 明确不用”四个状态归类,每季度更新一次。状态划分不等同于初、中、高阶:有些初阶技术比如 Helm,我会长期标为“已用在生产”;有些高阶技术比如 Anthos,如果业务根本没有多云诉求,就直接归到“明确不用”,一点也不遗憾。
6.2 按季度给自己开一张验收单
| 季度 | 必须跑通的链路 | 必须产出的东西 | 过关标准 |
|---|---|---|---|
| 第一阶段 | Kubernetes 三节点部署 | 集群安装记录 | 能从零重建集群且不依赖图形界面 |
| 第二阶段 | 微服务 + 配置中心 + 日志监控 | 一份排障手册 | 故障发生时能在 30 分钟内定位根因 |
| 第三阶段 | CI/CD + 告警闭环 | 一条流水线定义 | 一次提交能自动完成构建、发布和验证 |
每个季度结束,我都把完成的实际产出勾掉,不勾“学过的技术”,只勾“跑通的链路”。这样做有一个好处:进度表上留下的都是可验证的结果,而不是自我感觉良好的收藏列表。有一年我试图把路线图里所有中阶名词都过一遍,到年底发现每个都停留在“看过概念”的程度;从那以后我改成每个季度只完成一条真实链路,至少让一个技术真正落进日常操作里,路线图也从“收藏品”变成了“工作台”。希望这套方法帮到你,少走我走过的弯路。
本文还有配套的精品资源,点击获取