如何在容器引擎中加载临时的、"run and die"容器化的 Python 脚本



我有一个python脚本,可以真正吃一些CPU和内存。因此,我认为运行脚本的最有效方法是将其在Docker容器中进行容器化。该脚本并不意味着永远运行。相反,它从环境变量中获取依赖性信息,进行行为然后终止。脚本结束后,默认情况下,Docker将从内存中删除容器。

这很好。我只是在运行脚本时仅用于计算资源。

我的问题是:我可以运行多种不同类型的脚本。我想做的是创建一个经理,该管理器给定要运行的脚本类型的名称,以确定的容器以在Google Container Engine中运行,例如调用被配置为使用预定义的CPU,磁盘和内存分配旨在尽可能快地运行脚本的环境。

然后,一旦脚本完成,我希望将容器从环境中删除,以便我不再为资源付费。换句话说,我希望能够在容器引擎中以自动化的方式进行操作。

我正在尝试学习如何以自动化方式获得容器引擎以支持我的需求。在我看来,使用kubernetes可能有点过分杀伤力,因为我真的不想保证持续的可用性。相反,我只希望容器奔跑和死亡。如果出于某种原因,脚本在成功之前失败或终止,则拱门旨在检测不成功的尝试。

您可以使用kubernetes控制器创建一个'运行到完成'的作业对象。

这样的作业对象可用于运行一个吊舱。

一旦工作(在本例中为您的脚本)完成后,POD就会终止,因此将不再使用任何资源。将不会删除POD(除非删除了作业),但仍将处于终止状态。如果需要并正确配置,将不再创建更多的POD。

如果您需要此功能,则作业对象也可以配置为启动新的POD。

有关此信息的更多详细信息,请参阅此页面。

还只是为了添加,要使您的计费降至最低,当您不运行工作时,您可以将群集中的节点数量降低到零,然后在作业需要时将其增加到所需的数字被执行。如果需要,可以通过使用API调用来编程完成。这应确保您的计费尽可能低,只有在节点运行时才会为节点收费。

最新更新