2017-07-21 22 views
0

在DCOS,我想部署與存儲在本地安全泊塢窗註冊表中的自定義圖像的mesos容器,它已被CA(沒有用戶名和密碼!),固定如何使用安全碼頭註冊表(由CA)爲mesos容器?

的JSON是

{ "id": "/gpu-tflinker", "cmd": "while [ true ] ; do nvidia-smi; sleep 5; done", "cpus": 0.1, "mem": 1024, "gpus": 1, "instances": 1, "constraints": [ [ "hostname", "CLUSTER", "10.140.0.22" ] ], "container": { "type": "MESOS", "docker": { "image": "tflinker:test-gpu", "credential": null } } }

以上JSON未能在馬拉松運行,並且對mesos的標準錯誤和標準輸出文件沒有內容,就mesos代理日誌,錯誤信息是:

E0721 05:01:57.726367 22498 slave.cpp:3976] Container 'e2c68720-0fb7-41bc-9d3b-a2b5e4793816' for executor 'gpu-t 
flinker.b6f96725-6dd1-11e7-ba5d-0242b2c758c0' of framework 1079aaea-6dde-4dc1-8990-d926a895de78-0000 failed to s 
tart: Unexpected HTTP response '401 Unauthorized' when trying to get the manifest 
W0721 05:01:57.726478 22497 composing.cpp:541] Container 'e2c68720-0fb7-41bc-9d3b-a2b5e4793816' is already destr 
oyed 
I0721 05:01:57.726583 22497 slave.cpp:4082] Executor 'gpu-tflinker.b6f96725-6dd1-11e7-ba5d-0242b2c758c0' of fram 
ework 1079aaea-6dde-4dc1-8990-d926a895de78-0000 has terminated with unknown status 
I0721 05:01:57.726603 22497 slave.cpp:4193] Cleaning up executor 'gpu-tflinker.b6f96725-6dd1-11e7-ba5d-0242b2c75 
8c0' of framework 1079aaea-6dde-4dc1-8990-d926a895de78-0000 
I0721 05:01:57.726794 22497 slave.cpp:4281] Cleaning up framework 1079aaea-6dde-4dc1-8990-d926a895de78-0000 

因此它似乎無法獲取泊塢窗圖像。我已經爲dockerd配置了CA文件(將ca文件移動到/etc/docker/certs.d/),這樣我就可以將圖像拖放到本地計算機上,但我不知道如何配置CA文件以獲取Mesos〜 在mesos-agent配置中,存在一個項目「--docker_config = VALUE」,但似乎這個項目只能用於用戶名/密碼安全註冊表,我不知道如何配置CA安全註冊表。

有人可以幫我嗎?!謝謝!

回答

0

我認爲CA文件只是用於加密。你會需要以ca文件的方式輸入用戶名和密碼。

以我的方式,我將auth文件放入容器以授權我的私人註冊表。

  1. 我寫了一個web服務下載認證文件文件 xxx.tar.gz(格式:.docker/config.json在tar.gz的) 在config.json,{"auths": {"test.com:6999": {"auth": "(username:password) [base64 encode]"}}}{"auths": {"test.com:6999": {"auth": "Y2NjOjEyMw=="}}}

  2. 使用Mesos uris將準備好的auth文件下載到容器中。那麼,它將被授權。 "uris": [ "http:your download url" ]

+0

但是我的私人註冊表只能由CA文件保護,沒有用戶名和密碼。只需將CA文件放在/ etc/docker/[註冊表url] /下,我就可以從我的註冊表中取出鏡像,不需要執行'docker login',因此〜/ .docker/ –

+0

下沒有config.json文件你的碼頭版本?你的註冊表配置是什麼'auth'?什麼是你的碼頭配置? – edwardramsey