Kubernetes的调度程序如何工作?

Halacs

Kubernetes的调度程序如何工作?我的意思是Kubernetes的调度程序看起来很简单?

我最初的想法是,此调度程序只是一个简单的准入控制系统,而不是真正的调度程序。正确吗?

我找到了一个简短的描述,但是并不能提供很多信息:

kubernetes调度程序是一种策略丰富,可感知拓扑,特定于工作负载的功能,会严重影响可用性,性能和容量。调度程序需要考虑单个和集体的资源需求,服务质量需求,硬件/软件/策略约束,亲和力和反亲和力规范,数据位置,工作间干扰,截止日期等。特定于工作负载的要求将在必要时通过API公开。

戴维

您引用的段落描述了我们希望的未来位置(未来的定义是以月为单位,而不是以年为单位)。我们还没有,但是调度程序确实已经具有许多有用的功能,足以进行简单的部署。在其余的答复中,我将解释调度程序今天的工作方式。

调度程序不仅仅是一个准入控制器。对于创建的每个吊舱,它会找到该吊舱的“最佳”机器,如果没有合适的机器,则该吊舱会一直处于非计划状态,直到一台机器变得合适为止。

调度程序是可配置的。它有两种类型的策略,FitPredicate(请参阅master/pkg/scheduler/predicates.go)和PriorityFunction(请参见master/pkg/scheduler/priorities.go)。我会描述它们。

合适的谓词是必需的规则,例如,节点上的标签必须与Pod上的标签选择器兼容(此规则在PodSelectorMatches()实现predicates.go),以及机器上已在运行的容器的请求资源总和加上您正在考虑在机器上调度的新容器的请求资源,不得超过该机器的容量(此规则在PodFitsResources()实现predicates.go;请注意,“请求的资源”定义为pod.Spec.Containers [n]。资源。限制,并且如果您要求零资源,那么您总是适合的)。如果特定(新Pod,计算机)对不满足任何要求的规则,则不会在该计算机上调度新Pod。如果在检查完所有机器之后,调度程序决定无法将新的Pod调度到任何计算机上,则该Pod保持“挂起”状态,直到其中一台计算机可以满足为止。

在针对适合谓词检查了所有机器之后,调度程序可能会发现多台机器“适合”了容器。但是,当然,只能将吊舱调度到一台机器上。这就是优先级功能进入的地方。基本上,调度程序对满足所有适合谓词的机器进行排名,然后选择最佳的机器。例如,它更喜欢已经运行的pod消耗最少资源的机器(在LeastRequestedPriority()实现priorities.go)。此策略将豆荚(和容器)摊开,而不是将批次打包到一台机器上,而将其他机器留空。

当我说调度程序是可配置的时,我的意思是您可以在编译时确定希望Kubernetes应用的谓词和优先级函数。目前,它将应用您在predicates.go和中看到的所有内容priorities.go

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

此宏调度程序如何工作?

来自分类Dev

调度程序的工作

来自分类Dev

调度员如何工作?

来自分类Dev

Mesos调度-这是如何工作的?

来自分类Dev

工作超过25天的节点的调度程序。

来自分类Dev

调度程序队列和中断的工作

来自分类Dev

调度程序命令在Laravel的午夜不工作

来自分类Dev

工作超过25天的节点的调度程序。

来自分类Dev

全日历调度程序停止工作

来自分类Dev

如何在Laravel Forge中杀死僵尸/幻影调度程序工作?

来自分类Dev

如何在Laravel Forge中杀死僵尸/幻影调度程序工作?

来自分类Dev

SpringBoot Undertow:如何调度到工作线程

来自分类Dev

多级反馈队列调度是如何工作的?

来自分类Dev

如何使用不同的自动调度程序调度管道?

来自分类Dev

kubernetes调度程序是否支持反关联性?

来自分类Dev

如何为剑道调度程序添加假期?

来自分类Dev

如何启用公平调度程序?

来自分类Dev

我如何-长轮询和调度程序?

来自分类Dev

如何使用createAsyncThunk帮助程序调度AsyncThunk

来自分类Dev

如何更改Task.Run的调度程序?

来自分类Dev

如何修改Pegasus WMS的调度程序

来自分类Dev

如何保持石英.net的调度程序存活?

来自分类Dev

如何启用和使用BFQ调度程序?

来自分类Dev

如何选择mq-deadline调度程序?

来自分类Dev

如何启用公平调度程序?

来自分类Dev

如何获得石英调度程序结束事件

来自分类Dev

如何流式传输调度程序的响应?

来自分类Dev

Apache Mesos工作流程-事件驱动的调度程序

来自分类Dev

dagster主进程的工作目录与调度程序进程是否不同?