如何使用mesos/kubernetes/azure来放大和缩小可用的vm?

edqdpe6u  于 2021-06-21  发布在  Mesos
关注(0)|答案(3)|浏览(370)

mesos或kubernetes是否提供了动态分配/取消分配虚拟机的工具?
我需要构建一个工作流引擎,它具有高度可变的负载,并且混合了短期和长期运行的任务。例如,在上午9点,我可能需要运行10000个作业,其中500个作业需要运行4小时,其余的则需要5分钟。早上10点,我只需要做600个短工。
如果我在azure(我的首选云环境)上运行,mesos或kubernetes能否动态地放大或缩小集群中可用的vm以满足需求?它能智能地这样做吗?这样长时间运行的工作就不会被打断?

gmol1639

gmol16391#

因为我个人不使用azure,所以我无法向您提供“生产”方面的见解,但据我所知,azure支持通过平均cpu使用率或消息队列大小自动伸缩。如果您想遵循“手动”方式,请参阅文档以了解azure的可行性。
对于mesos的情况,我认为如果达到一定的限制,可以利用cpu使用模式自动启动新的mesos从属/代理。据我所知,纯mesos本身无法启动其他vm,这意味着自动伸缩必须通过云提供商的接口来完成。
如果您想使用dcos,azure上有一个用于dcos的eap,它需要注册。据我所知,dcos应该能够与云提供商的接口交互,这意味着它应该能够自动伸缩。

h7wcgrx3

h7wcgrx32#

我不知道azure中有dcos/mesos的自动定标器。不过,这里有一个github存储库,用于在acs kubernetes集群中生成自动定标器。https://github.com/wbuchwalter/kubernetes-acs-autoscaler
至于代码是如何工作的。它是一个使用az cli构建的工具,使用az acs scale命令告诉acs服务向上和向下扩展节点。查看代码时,它希望使用kubectl从节点中排出所有连接,然后从pod中取出,但目前似乎没有这样做。

iqih9akk

iqih9akk3#

kubernetes还没有真正的自动伸缩功能,但是您可以通过监视特定的api(每秒的请求数)并让它调用特定的azure伸缩api来“手动”进行伸缩。

相关问题