一、Kubernetes 到底是什么¶
Kubernetes,简称 K8s,原意是“舵手”,本质上是一套开源的容器编排系统,用来解决容器在生产环境中的自动化部署、弹性扩缩、高可用和负载均衡问题。
和单纯运行容器不同,Kubernetes 进一步把网络、存储、安全、健康检查、服务发现、配置管理和监控能力整合到统一的平台里,因此它常被理解为一套面向云原生应用的基础操作系统。
从技术血统上看,Kubernetes 的前身是 Google 内部的 Borg 系统。它吸收了谷歌多年大规模生产调度经验,并在 2014 年开源,随后捐赠给 CNCF,逐步成长为云原生领域最核心的事实标准。
二、从里程碑看 K8s 如何成为行业标准¶
如果把 Kubernetes 的发展历程串起来看,会更容易理解它为什么能成为今天的主流平台:
- 2014 年,Google 正式开源 Kubernetes。
- 2014 年到 2015 年间,Microsoft、Red Hat、IBM、CoreOS、Docker、VMWare、Intel 等厂商陆续加入社区。
- 2015 年,Kubernetes v1.0 正式发布,标志着项目进入可落地阶段。
- 2016 年,CRD 和 Operator 模式出现,平台扩展能力显著增强。
- 2017 年,Kubernetes 在容器编排领域进一步确立主流地位,集群规模能力也快速提升。
- 2018 年,Kubernetes 从 CNCF 毕业,云原生生态由此进入加速爆发期。
这条时间线背后的关键不是版本号,而是生态共识:Kubernetes 不只是一个开源项目,而是一整套行业通用的平台接口。
三、有了 Docker,为什么还要 Kubernetes¶
很多人刚接触 K8s 时都会有一个问题:既然已经有 Docker,为什么还需要 Kubernetes?
答案很简单:Docker 解决的是“容器如何打包和运行”,而 Kubernetes 解决的是“这些容器如何在生产环境中稳定、持续、规模化地运行”。
单独依赖 Docker 时,生产场景里的很多问题仍然需要额外解决:
- 缺乏完整的应用生命周期管理能力。
- 缺乏服务发现和负载均衡。
- 缺乏统一的配置管理与存储管理。
- 扩容、部署、回滚和更新流程仍然不够灵活。
- 宿主机故障后,容器无法自动恢复。
- 程序级健康检查能力不足。
- 端口分配和流量管理比较复杂。
也就是说,Docker 更适合“把应用装进标准容器”,而 Kubernetes 更适合“让一组容器长期稳定地提供服务”。
四、什么时候必须从 Docker 走向 K8s¶
一旦业务进入下面这些阶段,Kubernetes 的价值就会开始明显体现出来:
- 服务数量变多,单机脚本和手工管理已经跟不上。
- 需要开发、测试、预发、生产等多环境统一交付。
- 需要高可用、故障自愈和自动扩缩容。
- 需要让应用发布、回滚和资源治理标准化。
- 需要统一管理配置、日志、网络和持久化存储。
因此,Kubernetes 不是 Docker 的“替代品”,而是容器技术走向生产级平台之后的自然演进结果。