【云原生下离在线混部实践系列】深入浅出 Google Borg

本文探讨 Google Borg,云原生和离在线混部领域的先驱,以及 Kubernetes 的灵感来源。Borg 采用资源管理系统,包括 Job 和 Task,通过 Priority 和 Quota 实现资源分配。调度策略如 Filter 和 Score 影响系统效率,Borg 通过 Cell Sharing 和 Large cells 提升利用率。此外,文章讨论了资源隔离和动态资源回收,以优化资源使用。Google Borg 的经验对现代云原生环境具有启示意义,腾讯已基于 Kubernetes 开发出类似的离在线混合部署系统。
摘要由CSDN通过智能技术生成

Google Borg 是资源调度管理和离在线混部领域的鼻祖,同时也是 Kubernetes 的起源与参照,已成为从业人员首要学习的典范。本文尝试管中窥豹,简单从《Large-scale cluster management at Google with Borg》一文中剖析 Google Borg 的设计理念和功能特点,用以抛砖引玉。

Google Borg 是什么?

Google Borg 是 Google 内部自研的一套资源管理系统,用于集群资源管控、分配和调度等。在 Borg 中,资源的单位是 Job 和 Task。Job 包含一组 Task。Task 是 Borg 管理和调度的最小单元,它对应一组 Linux 进程。熟悉 Kubernetes 的读者,可以将 Job 和 Task 大致对应为 Kubernetes 的 Service 和 Pod。

在架构上,Borg 和 Kubernetes 类似,由 BorgMaster、Scheduler 和 Borglet 组成。

Borg Allocs

Borg Alloc 代表一组可用于运行 Task 的资源,如 CPU、内存、IO 和磁盘空间。它实际上是集群对物理资源的抽象。Alloc set 类似 Job,是一堆 Alloc 的集合。当一个 Alloc set 被创建时,一个或多个 Job 就可以运行在上面了。

Priority 和 Quota

每个 Job 都可以设置 Priority。**Priority 可用于标识 Job 的重要程度,并影响一些资源分配、调度和 Preemption 策略。**比如在生产中,我们会将作业分为 Routine Job 和 Batch Job。Routine Job 为生产级的例行作业,优先级最高,它占用对应实际物理资源的 Alloc set。Batch Job 代表一些临时作业,优先级最低。当资源紧张时,集群会优先 Preempt Batch Job,将资源提供给 Routine Job 使用。这时 Preempted Batch Job 会回到调度队列等待重新调度。

Quota 代表资源配额,它约束 Job 的可用资源,比如 CPU、内存或磁盘。Quota 一般在调度之前进行检查。Job 若不满足,会立即在提交时被拒绝。生产中,我们一般依据实际物理资源配置 Routine Job Quota。这种方式可以确保 Routine Job 在 Quota 内一定有可用的资源。为了充分提升集群资源使用率,我们会将 Batch Job Quota 设置为无限,让它尽量去占用 Routine Job 的闲置资源,从而实现超卖。这方面内容后面会在再

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值