0

私は実際にCPUとメモリを少し食べるPythonスクリプトを持っています。したがって、スクリプトを実行する最も効率的な方法は、Docker Containerでコンテナ化することです。スクリプトは永遠に実行されることはありません。むしろ、環境変数から依存関係情報を取得し、それが動作であるか終了します。スクリプトが終了すると、デフォルトでDockerはメモリからコンテナを削除します。コンテナエンジンで短時間でコンテナ化されたPythonスクリプトをロードして実行するには

これは良いことです。私は、スクリプトが実行されている間、コンピューティングリソースのためだけに払っています。

私の問題は次のとおりです。実行できるスクリプトの種類はたくさんあります。実行するスクリプトタイプの名前を指定すると、指定されたコンテナをGoogle Container Engineで実行して、呼び出しが事前定義されたCPU、ディスク、およびメモリの割り当てを使用するように設定されたマネージャを作成します可能な限り速くスクリプトを実行するための環境です。

その後、スクリプトが終了すると、コンテナを環境から削除して、リソースを払っていないようにします。言い換えれば、コンテナエンジンで自動化された方法で、ローカルマシンから手動でコマンドラインで行うことができるようにしたいと考えています。

私は、コンテナエンジンを自動化された方法でサポートする方法を学ぼうとしています。 Kubernetesを使用することは、一定の可用性を保証することを本当に望んでいない点で、ちょっと残酷かもしれません。むしろ、私はちょうどコンテナを実行して死にたい。何らかの理由でスクリプトが失敗するか、成功する前に終了した場合、archtectureは不成功の試みを検出するように設計されています。

答えて

0

Kubernetesコントローラを使用して、「完了まで実行する」ジョブオブジェクトを作成することができます。

このようなジョブオブジェクトを使用して、1つのポッドを実行できます。

ジョブ(この場合はスクリプト)が完了すると、ポッドは終了し、リソースを使用しなくなります。ジョブが削除されない限り、ポッドは削除されませんが、終了した状態のままになります。必要に応じて正しく設定されていれば、これ以上のポッドは作成されません。

ジョブオブジェクトは、この機能が必要な場合は何らかの理由でジョブが失敗した場合に新しいポッドを開始するように設定することもできます。

この詳細については、pageを参照してください。

また、請求を最小限に抑えるために、ジョブを実行していないときにクラスタ内のノード数をゼロに減らしてから、ジョブが必要なときに必要な数に減らすこともできます実行される。これは、必要に応じてAPI呼び出しを使用してプログラムで実行できます。これにより、実行中のノードに対してのみ料金が請求されるため、請求ができるだけ低く保たれます。

+0

ありがとう、Neil!あなたの提案をお試しください。 – reselbob

+0

あなたはそれを動作させることができましたか? – neilH

関連する問題