2017-12-06 8 views
0

私はKubernetesジョブを実行し、ジョブが完了したときにジョブのコンテナが実行されるポッドを削除したいという状況があります。 Kubernetes documentation saysポッドを削除するのはユーザーの責任です。Kubernetesジョブが完了した後にPodを削除する最も良い方法は何ですか

しかし、私の目標は、大きなホーキングポッドをスピンアップし、ジョブを実行させ、ジョブ完了時に自動的にポッドを核付けることによって、CPU集約的なジョブを実行することです。私の考えは、収益を生み出している仕事が実行されるときに、高価なリソース集約的なポッドを支払う価値があるということです。仕事が終わると、収入の流れが終わり、私は費用を減らす必要があります。したがって、ポッドを傷つける必要があります。

私はジョブコンテナ内のコードで、プログラムの完了時にサブスクライバがピックアップしたパブリッシャにメッセージを送信することを考えています。加入者は、kubectl delete jobs/myContainerコマンドの実行方法を知っています。

しかし、おそらくもっと良い方法があります。だから、私は尋ねる。

ありがとうございます。

+0

2つのこと:1、この質問は以前に尋ねられました([関連する列のリンク](https://stackoverflow.com/questions/36384873/kubernetes-job-cleanup?rq=1)は便利でしたが、唯一のもの)、2、すべてのPodにServiceAccountがあり、それがきれいに終了したと感じる場合は削除することができます –

+0

ありがとう@MatthewLDaniel。質問をする前に、より良い研究をすることにもっと注意を向けるようになるでしょう。 – reselbob

答えて

1

なぜポッドを削除する必要がありますか?ジョブが正常に終了すると(終了コード0)、ポッドは完了し、CPU /メモリの再使用は行われなくなり、必要に応じてガベージコレクトされます。

+0

ありがとう、Radek。ドキュメンテーションから、ポッドはGCの対象であることは不明です。文書から: _ジョブが完了すると、それ以上ポッドは作成されませんが、ポッドも削除されません。それらは終了しているので、kubectl取得ポッドでは表示されませんが、kubectl get pods -aで表示されます。 "_(https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run -to-completion /#job-termination-and-cleanup 私がミニキュベットの下でローカルに概念証明を走らせたとき、ポッドは依然として存続していました。 – reselbob

関連する問題