我是一個羣集羣上運行的服務拉動,得益於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="Not continuing with pull after error: denied: Permission denied for \123\" from request \"/v2/my-gcloud-project/my/image/manifests/123\". "
level=info msg="Translating \"denied: Permission denied for \\"123\\" from request \\"/v2/my-gcloud-project/my/image/manifests/123\\". \" to \"repository us.gcr.io/my-gcloud-project/my/image not found: does not exist or no pull access\""
level=error msg="pulling image failed" error="repository us.gcr.io/my-gcloud-project/my/image not found: does not exist or no pull access" module="node/agent/taskmanager" node.id=... service.id=... task.id=...
level=error msg="fatal task error" error="No such image: us.gcr.io/my-gcloud-project/my/image:[email protected]:..." module="node/agent/taskmanager" node.id=... service.id=... task.id=...
然而,當我手動運行該機器上docker pull
,它工作正常,因爲集羣中的每一臺機器進行身份驗證到我的私人谷歌註冊,感謝docker login
。
因此,我的問題是:
- 爲什麼不能從私人註冊表中添加的工人拉?
--with-registry-auth
究竟做了什麼?
非常感謝
注:該節點正在運行Ubuntu 16.04.2 LTS和碼頭工人的版本是:
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
看起來您遇到了swarm模式問題。你有沒有在GitHub上檢查他們的問題和/或提出了自己的問題? – BMitch