1

各ワーカーは複数のタスクを実行します。たくさんの仕事がある場合は、複数の労働者が必要になります。リソースを節約するために、供給(空き容量)と需要(保留中のタスク)に従って、労働者を弾性的に拡大縮小したいと考えています。殺人作業を伴わないスケール・コンコース・ワーカー

スケールアウトは簡単です:ノードを追加して、TSAに登録して作業を開始します。

スケールインが難しい:作業者のインスタンスを強制終了する前にタスクが終了するのを待つ必要があります。それ以外の場合は、別のワーカーで再起動する必要があります。小さな仕事では大丈夫ですが、長いものでは受け入れられないかもしれません。

AWSの可能な解決策の1つは、Autoscaling Lifecycle Hooksを使用して、それ以上のタスクを受け入れずにすべてのタスクが完了した後に戻ってくるように同期させることです。しかし、Concourse Worker APIにはそのような操作はありません。

コンコースワーカーの安全なスケーリングを実装する方法はありますか?

答えが「心配しないでください、ボッシュはそれを世話します」私は、おそらくそれを使用しないように、そのメカニックが何であるかを知りたいと思います。

答えて

1

あなたは(コンコーススケジューラとWebインターフェイスである)ATCを実行するホスト上で、コマンドラインからconcourseバイナリを使用する必要があります:あなたがフック可能性のような

concourse --help 
Usage: 
    concourse [OPTIONS] <command> 

Application Options: 
    -v, --version Print the version of Concourse and exit [$CONCOURSE_VERSION] 

Help Options: 
    -h, --help  Show this help message 

Available commands: 
    land-worker Safely drain a worker's assignments for temporary downtime. 
    retire-worker Safely remove a worker from the cluster permanently. 
    web   Run the web UI and build scheduler. 
    worker   Run and register a worker. 

だから、見えます自動スケーリングライフサイクルサービスland-worker、その後retire-workerを呼び出して何か(retire-workerが十分であるかどうかわからない)、あなたが把握一度あなたがスピンダウンしたい労働者...

あなたが戻って同じ労働者を回すときに、あなたが持つかもしれません労働者の名前に注意するために、私は思い出すようです時にはATCが混乱するような場合は、その名前をそのまま使用するか変更するかにかかわらず、それを試してみる必要があります。

関連する問題