2017-07-16 8 views
0

コンテナの完成時に競争するジョブを持つことは可能ですか?コンテナ1個が完成したときに完了するクーベルネズの仕事

はexempleのために、私は2つのコンテナで1つのポッドのジョブを実行したい:

  • を結ぶ一部のJavaアプリケーションコンテナは
  • のJavaアプリのコンテナの実行をElasticsearchする

    • Elasticsearchコンテナと完全ですが、明らかにElasticsearchコンテナは無期限に動作し続けます。
      その結果、ジョブは完了しません。解決策は何ですか?

      乾杯

    答えて

    0

    これはおそらくそれを行うための最も簡単な方法はありませんが、ジョブを削除するKubernetes APIを使用することができます。

    https://kubernetes.io/docs/api-reference/v1.7/#delete-41

    私はあなたの仕事をどのように開始しているのか、このソリューションがあなたのシナリオでどれほど現実的であるかはわかりません。

    +0

    私はそれを最後にやった – Joan

    0

    あなたの使用事例は不明です。私の理解はElasticsearchがデータを照会するために常に実行しているはずです。

    2つの異なるポッドを実行できますか。 1つはElasticsearch用、もう1つはJavaアプリケーション用です。あなたの仕事からjavaアプリケーションを呼び出してください。

    +0

    ESは常に実行する必要はありませんが、リソースの腰になるでしょう。私はちょうど同じポッド上で実行し、実際に仕事をしている最初のコンテナのためのツールとして2番目のコンテナを使用したい。ジョブが完了したときの要件を設定する方法が欠けていると感じています。 – Joan

    0

    livenessProbeの機能をご覧ください。これは、デプロイメントで定義された機能で、コンテナの実行中にx秒ごとに実行され、正しく実行されていることを確認します。活性プローブが失敗すると、Kubernetesはコンテナを終了させます。 Hereは、活力と準備のプローブに関するKubernetesの公式文書です。

    ここでの戦略は、Elasticsearchコンテナのlivenessプローブを使用して、Javaアプリが接続していることを確認することです。 javaアプリケーションが完了するとすぐに、接続は存在しなくなり、ライブスキャンが失敗し、kubernetesはElasticsearchコンテナを終了します。

    しかし、私はkubectlは、ライブネスプローブの障害によって終了した場合、コンテナを再起動しようとしていると思います。あなたはそれを無効にすることを検討したいかもしれません。

    関連する問題