引言

按计算资源调度基本上是各大编排引擎的标配,Rancher在v1.2版本后也推出了这个功能。但部分朋友认为当前的实现还并不是那么智能,所以不知道如何按计算资源调度。故本文教大家如何按计算资源调度。

实现机制

Rancher的实现比较简单,其主要是通过Infra services中的scheduler服务来实现,整体的逻辑架构如下:

图片描述

scheduler会订阅Rancher Events,主要是scheduler相关事件,当有调度需求时候,scheduler就会收到消息, 通过计算将合适的调度目标返回给cattle。比如说现在支持memory和cpu为基准, 那么scheduler会不断根据metadata的数据变化来计算资源的使用量,最后可根据资源剩余量为调度目标排序, 这样就可以完成按计算资源调度的目标。

之前有说,Rancher的实现并不智能,这在于在计算资源使用量的时候,Rancher并不是通过一套复杂数据采集机制来计算, 而是通过用户在创建service的时候标注reservation的方式,这个地方很多朋友并没有注意到:

图片描述

除此之外,在每个节点的资源总量上也是可配置的,我们完全可以进行一个整体预留的设置,比如:

图片描述

总结

这个实现看似简单,其实这是提供了一个很好的扩展能力。如果我们有自己的监控采集体系,完全可以在scheduler的时候调用我们自身监控接口来计算资源,这样就能达到我们所认可的“智能”了。


Rancher
1.2k 声望2.5k 粉丝

Rancher是一个开源的企业级Kubernetes管理平台,实现了Kubernetes集群在混合云+本地数据中心的集中部署与管理。Rancher一向因操作体验的直观、极简备受用户青睐,被Forrester评为“2020年多云容器开发平台领导厂商...