我已经构建了一个使用celery异步运行任务的应用程序。我让芹菜在2个Kubernetes pod上工作,这个pod托管在Amazon AWS m4.large实例上。
我还设置了水平pod自动缩放功能,以便在CPU利用率超过80%时pod会扩展。我在AWS中有一个自动缩放组,当实例CPU利用率达到80%以上时,它也可以扩展。
大约一个小时,集群扩展到5个实例,所有实例都以~100%的CPU利用率运行,但是所有其他芹菜盒的运行速度都是~2%,只有一个运行在~100%。队列中仍有许多任务,但似乎只有一个我的pod正在充分运行。
这里发生了什么以及如何均匀分配任务,以便所有5个pod以相似的CPU利用率运行,直到完成所有任务?
运行kubectl top pods时。我的一个pod运行1900毫伏,其他运行1毫伏。