首页 > 解决方案 > Kubernetes 在同一个 Pod 中运行多个 python 脚本

问题描述

我有 4-5 个 Python 脚本,它们是 Kafka 的消费者/生产者,需要一直运行到最后。

我可以为每个脚本创建容器,但我将拥有 4-5 个容器,如果出现任何故障,Kubernetes 将对其进行管理。

但是我想在单个 Pod 中运行所有这些,如果任何脚本失败,则应该只启动该脚本,而不是整个 pod,这反过来将启动在完美运行的脚本中发生的所有当前事务。

我们有办法实现它吗?或者最好的解决方案是什么 - 在每个容器中单独运行或在单个容器中运行它们。

如果将来有更多脚本出现,那么我该怎么做才能实现所需的行为。

1 个 pod 中的 movig 脚本中的原因- 1 个脚本 ~ 1 个容器 ~ 400 MB。现在 5 个脚本 ~ 5 个容器 ~ 2 GB。

标签: pythondockerkubernetes

解决方案


这不是建议的模式!建议每个容器一个进程!

在同一个容器中运行所有脚本将或多或少地使用相同数量的 RAM(~2GB),容器的开销非常少。

您可以使用诸如 s6 https://github.com/just-containers/s6-overlay之类的初始化进程运行所有 5 个脚本,并且 s6 将只负责启动已停止的脚本


推荐阅读