在前面的章节里,我们已经可以在单机上熟练地使用 Docker 构建和运行容器。然而当容器化应用走向生产环境、需要跨越多台主机部署时,容器如何调度、服务之间如何发现与通信、节点出现故障后如何自动恢复,单靠 Docker 本身就难以应对了,这就需要一个专门的容器编排系统。Kubernetes 正是当前这一领域最主流的选择。
Kubernetes 是 Google 团队发起并维护的基于 Docker 的开源容器集群管理系统,它不仅支持常见的云平台,而且支持内部数据中心。
建于 Docker 之上的 Kubernetes 可以构建一个容器的调度服务,其目的是让用户透过 Kubernetes 集群来进行云端容器集群的管理,而无需用户进行复杂的设置工作。系统会自动选取合适的工作节点来执行具体的容器集群调度处理工作。
其核心概念是 Container Pod(容器组)。一个 Pod 由一组工作于同一物理工作节点的容器构成,这些容器拥有相同的网络命名空间、IP 以及存储配额,也可以根据实际情况对每一个 Pod 进行端口映射。此外,Kubernetes 工作节点会由主系统进行管理,节点包含了能够运行 Docker 容器所用到的服务。
本系列接下来将分节介绍 Kubernetes,包括 Kubernetes 简介、基本概念以及架构设计等内容。