2016-12-29 4 views
1

ドッカースウォームAPIクライアントは、サービスの次のメタ情報を持っていますドッカーサービスupdatedAtタイムスタンプ

Meta.UpdatedAt 

は、これが最後のユーザーが開始update(例えば変更サービス構成)のタイムスタンプであるか、それはのタイムスタンプですどんなでもDocker Swarmが実行するサービスの変更はありますか?

例えば、私のswarmサービスが5つのタスクをクラスタ全体に分散させていて、何らかの理由でDockerが1つのノードから別のノードに1つのタスクを移動する(サービス構成が変更されないように)。このフィールドを更新しますか?

答えて

1

短答:いいえこれはできません。

meta.UpdatedAtは、updateというtouchMetaメソッドによって変更されています。サービスの場合、これを処理するメソッドはdocker service update cliコマンドにリンクされている​​です。つまり、meta.UpdatedAtは、docker service updateを使用した場合にのみ更新されます。

あなたのローカルマシンまたはクラスタ上でこのシナリオを、以下のことで、すぐにテストすることができます。

$ docker service create --name redis --replicas 5 redis 

$ docker service inspect --format='{{.Meta.UpdatedAt}}' redis 
2017-01-07 15:16:14.910287822 +0000 UTC 

$ docker rm -f <some-redis-task-id> 

# Swarm should re-schedule the forced removed task onto another node 

$ docker service inspect --format='{{.Meta.UpdatedAt}}' redis 
2017-01-07 15:16:14.910287822 +0000 UTC 

meta.UpdatedAtフィールドは変更しないままにしておきます。

docker service update redis --replicas 10と今すぐ新しいタイムスタンプが表示されます。

+0

ありがとう、これはすばらしい答えです! – igr

関連する問題