如何阻止 mesos 向框架提供资源?

How to stop mesos from offering resources to a framework?

我有一个用例,我有 20-30 个框架在具有 200 多个节点的 mesos 集群上运行。很多时候,mesos 向根本不需要任何报价的框架提供资源。在这样做的同时,它为实际需要它们的框架提供的资源很少。

我知道框架可以调用 requestResources 函数来请求资源。但是,我找不到框架可以用来告诉 mesos 停止向它发送任何报价的函数。有办法吗?因为我的框架每 100 毫秒不断收到报价,这太快了!

当您拒绝 Offer 时,您可以设置一个可选的 Filter,其长度 refuse_seconds 比默认的 5s 长。这意味着在您拒绝来自某个节点的提议后,Mesos 将不会在 refuse_seconds.

内将这些资源提供回您的框架。

或者,如果您的框架暂时不需要来自任何节点的任何报价,它可以调用 driver.stop(true),调度程序将从 Mesos 中注销,但其任务将保留 运行 FrameworkInfo.failover_timeout。一旦框架有工作要做,它可以再次 start/run 驱动程序以再次开始获取报价。

(仅供参考,requestResources 实际上还没有做任何事情。)