2017-07-16 136 views
0

当容器完成时是否可以有一个可竞争的Job?当一个容器完成时完成Kubernetes Jobs

对于为例,我想与2个容器中运行一个吊舱的工作:

  • Elasticsearch容器
  • 一些Java应用程序容器连接至Elasticsearch

的Java应用程序容器运行,并完整,但显然Elasticsearch容器将继续无限期地运行。
因此,工作永远不会完成。解决办法是什么?

干杯

回答

0

不确定您的用例。我的理解是Elasticsearch应该一直在运行查询数据。

看到你可以运行两个不同的豆荚。一个用于Elasticsearch,另一个用于您的Java应用程序。从你的工作中调用Java应用程序。

+0

ES不必一直运行,这将是一个资源的腰。我只想在同一个窗格上运行两个容器,并将第二个容器用作实际执行此工作的第一个容器的工具。我觉得它缺少配置工作完成时需求的方法。 – Joan

0

你应该看看livenessProbe的能力。这是部署中定义的功能,在容器运行时每x秒运行一次,以确保它正常运行。当活性探测失败时,Kubernetes将终止容器。 Here是官方Kubernetes有关活性和准备就绪探针的文档。

这里的策略是使用Elasticsearch容器上的活性探测器来检查Java应用程序是否与它有连接。只要java应用程序完成,连接将不再存在,导致活性探测失败,并且kubernetes将终止Elasticsearch容器。

尽管如此,我认为kubectl尝试重新启动容器,如果它被活性探测失败终止。您可能想要查看禁用该功能或​​其他功能。