Kubernetes 已经是一个云操作系统

我们不要再称 Kubernetes 为“容器编排器”了。如果您还不了解 Kubernetes,这个术语会让人感到困惑。当我开始时,我不明白编排是什么,也不明白为什么容器需要它。

我们不如将 Kubernetes 称为“云操作系统”。

Kubernetes 真的是一个操作系统吗?

以下是传统操作系统 (OS) 所做的事情:

  • 资源管理
  • 调度
  • 安全
  • 硬件抽象
  • 用户
  • 多任务处理
  • 网络
  • 终端服务

Linux /Windows 为单独的机器执行此操作。Kubernetes 为整个数据中心(集群)执行此操作。

Kubernetes 处理哪些类似操作系统的职责?我举三个例子:

  • 调度:在 Linux 上,进程被调度到 CPU。在 Kubernetes 上,Pod 被调度到节点。不同的操作,但都实现相同的目的:在同一“硬件”上运行的应用程序之间共享资源。(Kubernetes 意义上的“硬件”是指整个集群。)
  • 硬件抽象:使用 Linux,应用程序可以写入文件,而无需关心硬盘制造商。借助 Kubernetes,Pod 可以在 AWS、GCP 和 Azure 上以相同的方式写入 PersistentVolume。底层存储(例如EBS)不同,但应用程序不需要关心。
  • 操作系统定义可执行格式。对于 Linux,这是 ELF 文件,在 Windows PE 文件上,在 Kubernetes 上,它是 Docker 容器/Pod。

以下是更多相似之处:

结束语

这个比喻是不是让 Kubernetes 更容易理解了呢?我们可以永远放弃“容器编排器”这个术语吗?

推荐

A Big Picture of Kubernetes

Kubernetes入门培训(内含PPT)