- 成熟的技术前身
- 优秀的框架架构
- 良好的核心设计
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集群的数据与状态信息 。
- 罗永浩|MIUI 14“剃刀计划”砍向应用臃肿:微信文件重复存储问题终于解决
- Java|24位博主,带你了解自媒体的真相
- 华为|不同职业的人怎么选华为PC?带你对号入座
- tiktok|新东方、罗永浩纷纷入局,TikTok海外发展势头走高,值得注意哪些趋势?
- 骨传导耳机|骨传导耳机伤耳朵吗?带你一分钟了解骨传导耳机
- 华硕|双12大促来了!带你种草全新华为“书房三宝”
- 罗永浩|现阶段物联网还无法建构在不同系统之间
- 短视频|【海归求职网CareerGlobal】13年500强企业工作经验资深行业顾问带你深入了解产品经理岗位!
- 燃气热水器|双增压零冷水,这冬天云米AI燃气热水器Super带你酣畅淋漓地洗澡
- 苹果|Apple Music新功能来袭 带你了解卡拉OK伴唱
