如何理解Kubernetes是容器编排器?其实它是一个云操作系统

201 阅读1分钟

大家一直称 Kubernetes 为“容器编排器”。如果您还不了解 Kubernetes,这个术语会让人感到困惑。刚开始时我不明白编排是什么,也不明白为什么容器需要它。 下面我们将Kubernetes和操作系统对比一下,看看它是不是一个Cloud Native 的操作系统

操作系统特征

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

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

Kubernetes特征

先看下面这张图

image.png

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

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

以下是更多相似之处:

image.png

总结

Linux /Windows 为单独的机器执行任务。Kubernetes 为整个数据中心(集群)执行任务,有没有觉得Kubernetes就是Native Cloud OS?