发布于 2015-09-22 15:40:03 | 328 次阅读 | 评论: 0 | 来源: 网络整理
任何优秀的项目都离不开优秀的架构设计。本小节将介绍 Kubernetes 在架构方面的设计考虑。
如果让我们自己从头设计一套容器管理平台,有如下几个方面是很容易想到的:
下面这张图完整展示了 Kubernetes 的运行原理。
可见,Kubernetes 首先是一套分布式系统,由多个节点组成,节点分为两类:一类是属于管理平面的主节点/控制节点(Master Node);一类是属于运行平面的工作节点(Worker Node)。
显然,复杂的工作肯定都交给控制节点去做了,工作节点负责提供稳定的操作接口和能力抽象即可。
从这张图上,我们没有能发现 Kubernetes 中对于控制平面的分布式实现,但是由于数据后端自身就是一套分布式的数据库(Etcd),因此可以很容易扩展到分布式实现。
主节点上需要提供如下的管理服务:
这里 Etcd 即作为数据后端,又作为消息中间件。
通过 Etcd 来存储所有的主节点上的状态信息,很容易实现主节点的分布式扩展。
组件可以自动的去侦测 Etcd 中的数值变化来获得通知,并且获得更新后的数据来执行相应的操作。