2017-07-16 137 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嘗試重新啓動容器,如果它被活性探測失敗終止。您可能想要查看禁用該功能或​​其他功能。