我在Swarm群集上运行服务,感谢docker stack deploy --with-registry-auth
和这个撰写文件:
version: "3.1"
services:
builder-consumer:
image: us.gcr.io/my-gcloud-project/my/image:123
stop_grace_period: 30m
volumes:
- [...]
environment:
- [...]
deploy:
mode: global
placement:
constraints:
- node.role == worker
secrets:
- [...]
secrets:
[...]
我在部署时工作正常,但是当我稍后向群添加一个工作节点时,新工作者无法提取运行任务所需的图像。系统日志报告:
level = error msg =“错误后不继续拉:拒绝: 来自请求的\ 123 \“权限被拒绝 \ “/ V2 /我-gcloud项目/我的/图像/舱单/ 123 \”。 “
level = info msg =“翻译”被拒绝:权限被拒绝 \\“123 \\”来自要求 \\ “/ V2 /我-gcloud项目/我的/图像/舱单/ 123 \\”。 \“ 至 \“存储库us.gcr.io/my-gcloud-project/my/image未找到:没有 存在或没有拉取访问权限\“”
level = error msg =“pull image failed”error =“repository 未找到us.gcr.io/my-gcloud-project/my/image:不存在或不存在 pull access“module =”node / agent / taskmanager“node.id = ... service.id = ... task.id = ...
level = error msg =“致命任务错误”错误=“没有这样的图片: us.gcr.io/my-gcloud-project/my/image:123@sha256:......” module =“node / agent / taskmanager”node.id = ... service.id = ... task.id = ...
但是,当我在该计算机上手动运行docker pull
时,它运行正常,因为群集中的每台计算机都通过docker login
对我的私有Google注册表进行了身份验证。
因此我的问题是:
--with-registry-auth
到底做了什么?非常感谢
注意:节点运行的是Ubuntu 16.04.2 LTS,Docker版本是:
Server:
Version: 17.04.0-ce
API version: 1.28 (minimum version 1.12)
Go version: go1.7.5
Git commit: 4845c56
Built: Mon Apr 3 18:07:42 2017
OS/Arch: linux/amd64
Experimental: false
答案 0 :(得分:1)
在我的情况下,我没有使用&#34; - with-registry-auth&#34;运行堆栈,所以我对实例进行了调整,然后我再次使用该选项启动了管理器,现在它正常工作< / p>