08 - 回到现实:你到底该不该用 K8s?
学到这里,你已经懂了 K8s 是什么、有哪些概念、怎么用云上的 K8s。最后这一章最重要,也最”反鸡血”:
懂 K8s ≠ 你现在就该用 K8s。 对大多数中小团队和 AI 项目来说,答案往往是”暂时不用”。
这和 Docker 教程最后一章的结论一脉相承,我们把它彻底讲透。
先泼盆冷水:K8s 是有代价的
K8s 很强,但强的东西都有成本。用它,你要付出:
- 陡峭的学习曲线:概念多、生态杂,团队里得有人真的懂。
- 持续的复杂度:YAML 一大堆、排查问题链路长、出事故不好定位。
- 运维成本:即使用托管 K8s,日常的配置、监控、调优也不是零成本。
- 容易过度设计:明明 2 个服务,非要上一整套 K8s,属于”杀鸡用牛刀”,把简单问题搞复杂。
一句大实话:很多团队上 K8s,不是因为需要,而是因为”别人都在用”。这往往是个坑。
一张决策表:看看你现在处在哪
| 你的情况 | 建议 |
|---|---|
| 就一两个服务,流量不大,一台服务器扛得住 | 别用 K8s。docker run 或 docker compose 就够,或用 Serverless 容器。 |
| 几个服务,想省心部署,偶尔要扩缩 | 优先考虑云的容器服务 / Serverless 容器(如阿里云 ACK Serverless、AWS Fargate、Cloud Run),比完整 K8s 轻很多。 |
| 服务多、跨多机、要精细的自愈/扩缩/灰度发布 | 可以考虑 K8s(且用托管的,别自建)。 |
| 大规模、多团队、复杂微服务、强定制需求 | K8s 基本是标配,此时它的复杂度是值得的。 |
| 团队里没人懂 K8s,也没运维 | 强烈建议先别碰,会被它拖垮。 |
核心判断:你的复杂度,是否真的到了需要 K8s 来管的程度? 没到,就别自找麻烦。
给 AI 应用团队的务实路线(重点记这个)
如果你是做 AI 应用的,绝大多数情况下,这条路线最香:
业务代码(无状态) → 打成 Docker 镜像 → 部署到云容器服务 / Serverless 容器
(用不上就先别碰完整 K8s)
数据(有状态) → 直接买云厂商托管服务
数据库 → 云数据库(RDS)
缓存 → 云 Redis
向量库 → 托管向量数据库
文件/模型 → 对象存储(OSS/S3)
这正是 Docker 教程结尾讲的思路,两边完全一致:
把 AI 业务打成 Docker 镜像去跑,数据库/向量库/存储统统买云托管服务,把宝贵精力留给真正创造价值的业务和模型。
那我学 K8s 是不是白学了?
当然不是。 你学到的东西,价值在于:
- 能听懂、能沟通:团队、面试、技术方案里聊到 K8s、Pod、Service,你都能接得住。
- 能做判断:知道什么时候该上、什么时候不该上,不盲目跟风——这本身就是很值钱的架构判断力。
- 能平滑升级:等你的项目真的长大到需要 K8s 那天,你已经有认知地基,不会两眼一抹黑。
- 理解了声明式思想:这套”声明期望、自动调谐”的思路,在很多现代工具里都有,是通用的思维财富。
整个 Docker → K8s 知识体系收尾
把这两份教程的主线合起来,你的完整认知地图是:
单个容器 → docker run (跑起一个服务)
本地多容器 → docker compose (本地一键起整套环境)
↓ 到了生产,业务与数据要分开
生产:业务(无状态) → 打镜像 → 云容器 / Serverless(多数团队到这就够了)
生产:数据(有状态) → 买云托管服务(数据库/缓存/向量库/存储)
↓ 规模真的很大、很复杂时
超大规模 → 才上 K8s(且用托管的) (少数团队才需要)
最终的核心认知
- Docker 是地基,必须练熟。
- Compose 是本地开发利器。
- 生产讲究分层:无状态业务用容器灵活伸缩,有状态数据交给专业托管。
- K8s 是大规模才需要的重武器:懂它、会判断、别过早陷进去。
记住这一句,胜过记住任何一条
kubectl命令: 技术选型的智慧,不在于用最强的工具,而在于用最合适的工具。K8s 很强,但”合适”往往比”强”更重要。
小结
- K8s 强大但有代价:学习曲线陡、复杂度高、运维有成本。
- 用不用,取决于你的复杂度是否真到了那个程度——多数中小/AI 团队暂时用不上。
- AI 团队务实路线:业务打镜像跑(云容器/Serverless),数据买云托管。
- 学 K8s 不亏:让你能听懂、能判断、能在需要时平滑升级。
- 最重要的是那份判断力:选合适的,而不是选最强的。
上一章 ← 07 - 云上 K8s 的使用流程 | 回到 README 目录 | 附录 → 核心概念速查表