Docker服务更新时间戳
Docker Swarm API客户端具有以下服务的元信息:
Meta.UpdatedAt
这是最后一次用户启动update
的时间戳(例如更改服务configuration)还是Docker Swarm执行任何服务更改的时间戳?
例如,如果我的群服务有5个任务分布在集群中,然后由于某种原因,Docker将一个任务从一个节点移动到另一个节点(所以服务configuration不会改变)。 它会更新这个领域?
简短的回答 :不,这不会。
如果您查看源代码, meta.UpdatedAt
通过update
调用的touchMeta
方法更改。 对于一个服务,处理这个的方法是UpdateService
,该链接到docker service update
cli命令。 所以在技术上, meta.UpdatedAt
只有在您使用meta.UpdatedAt
docker service update
时才会docker service update
。
您可以在本地计算机或群集上按照以下scheme快速testing:
$ 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
,你应该看到新的时间戳。