K8S从Borg演进而来,了解Borg系统的架构是很有借鉴意义的,可以对比后续K8S中的组件来了解Google做了哪些优化。
不过值得一提的是Borg系统在Google内部运行了10多年之后,才于2015的一篇Large-scale cluster management at Google with Borg论文中介绍了一些细节。

每个Cell代表着一个集群,而每个集群主要由三个部件组成,分别是scheduler、BorgMaster以及Borglet。
scheduler负责提交任务给BorgMaster,由BorgMaster来进行任务的分发和Borglet的管理;BorgMaster与Borglet是中心与节点的关系。BorgMaster在收到scheduler的任务时,会将任务记录在Paxos Store中,然后由调度器从中读取任务然后进行分发。由于Borg是个高可靠的系统,所以BorgMaster将会有多个副本,每次从中选举出一个leader,其他的作为备份。Borglet是运行在节点机器上的Borg代理,负责本地机器的管理。
需要注意的是每个Borglet在与BorgMaster进行通信的时候,比如上报自己信息时并不会直接发送给BorgMaster,而是会经过link shard,link shard中只存储Borglet增量的改变信息,防止在BorgMaster的压力过大。
BorgMaster的副本个数应是大于1的奇数,一方面是为了高可靠,一方面是奇数方面选举时投票。
需要深入了解的知识
Paxos分布式存储是什么;