2017-04-21 7 views
0

Docker Taskは、特定のサービスの実行中のタスク番号とタスク数を知ることはできますか?スウォームのドッカータスクは、インスタンス番号またはインスタンス数を知ることができますか?

など。私は、ジョブキューのさまざまな範囲で動作するサービスを持っていたいと思います。いずれか1つのサービスインスタンス(すなわちタスク)が動作するジョブの範囲は、タスクの総数および現在のタスクの数に依存する。したがって、20番目のタスクの5番目のタスクであれば、1つのジョブの範囲で動作しますが、20番目のタスクの場合は12番目のタスクであれば、別の範囲で動作します。

DOCKER_SERVICE_TASK_NUMBERという環境変数があるといいですね。

ありがとうございます!

答えて

0

これは数回要請されたので、あなただけではありませんが、ドッカーのスターンモードの現在の機能ではありません。これを実装することは、swarmサービスに対する他の更新とともにサービスのスケーリングをサポートする必要があるため、自明ではありません。サービスが停止し、ドッカーがタスク2/5をクリーンアップする場合は、最も使用頻度の高いノードにあるため、開始カウントが現在のカウントよりも少なく、現在の番号付けスキームに穴があるという奇妙な状況に置かれます。

この要件がある場合は、consulやetcdなどの外部サービス検出ツールが便利です。また、コンテナ内で利用できるtasks.$service_name DNSエントリを利用して独自のソリューションを実装することもできます。これにより、ラウンドロビンロードバランサを持っているのと同じように、このサービスを提供する他のすべてのコンテナのIPが得られます。

関連する問題