- 成熟的技术前身
- 优秀的框架架构
- 良好的核心设计
Borg系统一直以来都被誉为Google内部最强大的“秘密武器” , 是Google整个基础设施的核心依赖 。 很多应用框架已经运行在Borg上多年 , 其中包括了内部的MapReduce、GFS、BigTable、Megastore等 , 上层应用程序更是有这些耳熟能详的产品:Gmail、Google Docs、Google Search等 。
其架构图如下所示:
架构分析:
- 集群分为Master节点与Worker节点 。
- Master节点由多台机器构成 , 一主多备 。
- BorgMaster由主进程和scheduler进程组成 , 主进程处理clientRpc请求 , scheduler负责调度tasks 。
- Borglet是Worker节点上的代理进程 , 用于启停tasks 。
对于成熟高效的Borg系统 , 继承者Kubernetes从中获得了宝贵的经验:
- Pods 。 Pod是Kubernetes中调度的单位 。 它是一个或多个容器在其中运行的资源封装 。 保证属于同一 Pod的容器可以一起调度到同一台计算机上 , 并且可以通过本地卷共享状态 。 Borg有一个类似的抽象 , 称为alloc(“资源分配”的缩写) 。
- Service 。 Kubernetes使用服务抽象支持命名和负载均衡:带名字的服务 , 会映射到由标签选择器定义的一组动态Pod集 。 集群中的任何容器都可以使用服务名访问服务 。
- Labels 。 通过使用标签组织Pod , Kubernetes比Borg支持更灵活的集合 , 标签是用户附加到Pod(实际上是系统中的任何对象)的任意键值对 。
- Ip-per-Pod 。 Borg容器只能共享主机网络 , 必须将端口作为调度的资源 。 在Kubernetes中IP是以Pod为单位分配的 , 一个Pod内部的所有容器共享一个网络堆栈 。
- 整体架构
整个系统由控制面(Master)与数据面(Worker Node)组成 。 Master核心组件:
- API Server 。 集群控制的唯一入口 , 它是各个组件通信的中心枢纽 。
- controller-mananger 。 负责编排 , 用于调节系统状态 。 内置了多种控制器(DeploymentController、- ServiceController、NodeController、HPAController等)是Kubernetes维护业务和集群状态的最核心组件 。
- scheduler 。 集群的调度器 , 它负责在Kubernetes集群中为Pod资源对象找到合适节点并使其在该节点上运行 。
- etcd 。 用于存储Kubernetes集群的数据与状态信息 。
- 罗永浩|为何小商贩大多喜欢用微信支付,却很少使用支付宝?什么原因?
- 罗永浩|罗永浩称拿火烤钟薛高精神有问题:直击钟薛高卖得贵
- 罗永浩|罗永浩官宣新创业公司名字,看来锤子真的被放弃了!
- 罗永浩|罗永浩称不会再有“真还传2” 所有让写担保的都不签了
- 罗永浩|罗永浩称拿火烤钟薛高精神有问题:劝网友先看检测报告再黑
- “快来”为你解读视联网发展阶段之婴儿篇“快来直播”带你了解视联网发展阶段视联网的发展趋势...|“快来”为你解读视联网发展阶段之婴儿篇
- 罗永浩|罗永浩直播间拍蚊子为自己正名:让投资人放心
- 罗永浩|又一位互联网大佬宣布移居海外!!
- 锤子科技|和锤子科技说再见!罗永浩:新公司已经成立!
- 罗永浩|罗永浩谈钟薛高卖得贵:品质碾压哈根达斯 还没它贵!