48 以容器构建系统(上):隔离与协作

你好,我是周志明。从这节课开始,我们讨论的焦点会从容器本身,过渡到容器编排上。

我们知道,自从Docker提出“以封装应用为中心”的容器发展理念,成功取代了“以封装系统为中心”的LXC以后,一个容器封装一个单进程应用,已经成为了被广泛认可的最佳实践。

然而当单体时代过去之后,分布式系统里对于应用的概念已经不再等同于进程了,此时的应用需要多个进程共同协作,通过集群的形式对外提供服务,那么以虚拟化方法实现这个目标的过程,就被称为容器编排(Container Orchestration)

而到今天,Kubernetes已经成为了容器编排的代名词。不过在课程中,我并不打算过多介绍Kubernetes具体有哪些功能,也不会为你说明它由Pod、Node、Deployment、ReplicaSet等各种类型的资源组成可用的服务、集群管理平面与节点之间是如何工作的、每种资源该如何配置使用,等等,如果你想了解这方面信息,可以去查看Kubernetes官网的文档库或任何一本以Kubernetes为主题的使用手册。

在课程中,我真正希望能帮你搞清楚的问题是“为什么Kubernetes会设计成现在这个样子?”“为什么以容器构建系统应该这样做?”