2016-12-29 5 views
1

도커 떼 API 클라이언트는 서비스에 대한 다음의 메타 정보가 있습니다이의 타임 스탬프가도커 서비스 updatedAt 타임 스탬프

Meta.UpdatedAt 

을 마지막 사용자 시작 update (예 : 변경 서비스 구성) 또는이 의 타임 스탬프입니다 서비스 변경, Docker Swarm도 실행됩니까?

예를 들어, 내 스웜 서비스에 클러스터를 통해 5 개의 작업이 분산되어 있고 Docker가 어떤 이유로 한 노드에서 다른 노드로 한 작업을 이동하면 서비스 구성이 변경되지 않습니다. 이 필드를 업데이트하겠습니까?

답변

1

짧은 대답 : 아니요.

소스 코드를 보면 update이라는 touchMeta 메서드를 통해 meta.UpdatedAt 메서드가 변경되었습니다. 서비스의 경우이를 처리하는 방법은 docker service update cli 명령에 연결된 UpdateService입니다. 따라서 기술적으로 meta.UpdatedAtdocker 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