从Borg到Kubernetes

1.Google三代容器管理系统演进

时间线:
2003-2013    Borg (内部系统)
     ↓
2013-2014    Omega (过渡系统)
     ↓
2014-至今    Kubernetes (开源)

Borg (2003-2013)

  • Google内部集群管理系统
  • 管理数千个应用、数十万 jobs
  • 完全封闭,未开源

Omega (2013-2014)

  • Borg 的简化版本
  • 仍为内部使用
  • 为 K8s 奠定基础

Kubernetes (2014-)

  • 2014年6月6日公开宣布开源
  • 基于 Borg 经验,但做了大量改进
  • 2015年捐赠给 CNCF

2.为什么要开源 Kubernetes?

2.1 竞争压力:对抗 AWS

┌──────────────────────────────────────────────────────┐
│                 2013-2014 年的市场环境                │
├──────────────────────────────────────────────────────┤
│  Amazon AWS 已占据主导地位                            │
│  Google Cloud Platform (GCP) 是后来者                 │
│  Docker 2013年开源,容器技术兴起                       │
└──────────────────────────────────────────────────────┘

Brendan Burns (K8s 联合创始人) 在 Google Cloud Blog 分享:

“我们一直认为开源 Kubernetes 是正确的方式。最重要的是,我们能够与许多优秀的工程师合作,他们真正了解部署容器的企业需求。”

2.2 社区反馈:加速迭代

优势 说明
即时反馈 问题或设计缺陷立即被发现
众包智慧 全球开发者贡献代码和修复
生态建设 形成围绕 K8s 的完整生态系统
标准化 避免各家重复造轮子

2.3 商业策略:云服务的差异化

谷歌的商业逻辑:

开源Kubernetes → 降低采用门槛
       ↓
用户习惯K8s → 更倾向于选择GCP
       ↓
GCP获得竞争优势 → 增加云服务收入

关键洞察:

  • K8s 成为”事实标准”后,谷歌可以通过 GKE (Google Kubernetes Engine) 提供托管服务
  • 虽然 K8s 本身免费,但与之配套的云服务可以收费

2.4 避免重蹈覆辙

Borg 时代的问题:

  • 内部系统无法复用
  • 其他公司重复开发类似系统
  • 错失行业标准制定机会

Kubernetes 的策略:

  • 开源 = 定义行业标准
  • 让所有人基于同一套系统
  • Google作为主要贡献者保持影响力

3.Kubernetes vs Borg:核心改进

3.1 设计哲学的改变

维度 Borg Kubernetes
开源 ❌ 内部专用 ✅ 完全开源
复杂度 非常复杂 更简洁、模块化
抽象层次 面向Google内部需求 面向通用场景
生态系统 无 CNCF驱动