如何使用Mesos&Marathon安全地共享Azure容器服务中的私有Docker回购login凭证

我已经使用DC / OS + Marathon设置了部署Docker容器的Azure容器服务。 到目前为止,看起来不错,我可以使用SSH隧道连接到主节点,并访问Mesos和Marathon WebUI以及REST API。

接下来,我正试图从我的私人docker存储库部署docker容器,并在马拉松网站上find以下文章。

https://mesosphere.github.io/marathon/docs/native-docker-private-registry.html

请参阅上面的“注释”部分URL –

注意 :所有可能启动您的应用程序的节点都必须访问该URI。 方法可以包括将文件分发到所有节点的本地文件系统,例如通过RSYNC / SCP,或将其存储在共享networking驱动器(例如Amazon S3)上。 值得考虑一下你select的方法对安全性的影响。

Azure提供了什么选项来跨所有节点共享docker.tar.gz文件?

谢谢

将您的docker.tar.gz放到Azure存储并创build一个签名的URL。 我已经使用Azure存储资源pipe理器创build一个。

输出;

https://xyzds.file.core.windows.net/docker/docker.tar.gz?…url-params

你需要添加文件扩展名,以马拉松提取它。

x=.tar.gz

"uris": [ "https://xyzds.file.core.windows.net/docker/docker.tar.gz?...url-params&x=.tar.gz" ]

你已准备好出发。

一种方法是使用脚本来遍历集群中的代理。 看看https://github.com/rgardler/acs-cli进行一些实验。

我们这样做的方式是使用parallel-scp将文件推送到我们所有的mesos代理,如下所示:

 parallel-scp -h ~/pssh_all_ips ./docker.tar.gz /etc/docker.tar.gz 

其中pssh_all_ips是内部IP地址(在本例中为10.0.*.*10.32.*.* )的换行符分隔文件。

你可以在localhost:2000/mesos/#/slavesfind你的代理IP,如果你是通过你的群集的话)。

这使得文件可以在所有代理的file:///etc/docker.tar.gz ,从那里你可以使用marathon的URI字段使其可用于docker pull系统。