如何使用mesos容器的安全docker注册表(ca)?

kse8i1jr  于 2021-06-26  发布在  Mesos
关注(0)|答案(1)|浏览(326)

在dcos中,我想部署一个mesos容器,其中包含一个自定义映像,该映像存储在本地secure docker注册表中,并且已由ca(而不是用户名和密码)保护
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在marathon上运行失败,mesos的stderr和stdout文件上没有内容,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

所以看来梅索斯没能拍到 Docker 的照片。我已经为dockerd配置了ca文件(将ca文件移动到 /etc/docker/certs.d/ ),因此我可以将映像“docker pull”到本地计算机,但我不确定如何为mesos配置ca文件~在mesos代理配置中,存在一个项 --docker_config=VALUE ,但似乎此项只能用于用户名/密码安全注册表,我不知道如何配置ca安全注册表。
有人能帮我吗?!谢谢!

ddrv8njm

ddrv8njm1#

我认为ca文件只是为了加密。你需要用户名和密码在ca文件的方式,我想。
以我的方式,我将auth文件放入容器中以授权我的私有注册表。
我编写了一个web服务,用于下载身份验证文件.tar.gz(格式: .docker/config.json 在tar.gz)中,在config.json中, {"auths": {"test.com:6999": {"auth": "(username:password) [base64 encode]"}}} 就像 {"auths": {"test.com:6999": {"auth": "Y2NjOjEyMw=="}}} 使用mesos uri将准备好的身份验证文件下载到容器中。然后,它将被授权。 "uris": [ "http:your download url" ]

相关问题