2017-05-16 110 views
3

我是一個羣集羣上運行的服務拉動,得益於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 
+0

看起來您遇到了swarm模式問題。你有沒有在GitHub上檢查他們的問題和/或提出了自己的問題? – BMitch

回答

0

在我來說,我沒有與運行棧「 - with-registry-auth「,所以我放下實例,然後我重新開始使用該選項的管理器,現在它可以工作

+0

正如我所說的,我也使用'--with-registry-auth'進行部署,並且它首先運行,但是當我向羣集中添加一個虛擬機(通過加入作爲工作者)時,它無法提取服務映像,原因是一個「權限被拒絕」。 – BOUGA