6

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

接下来,我尝试从我的私有 docker 存储库部署一个 docker 容器,我在 Marathon 网站上找到了以下文章。

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

请参阅上述 URL 中的“注意”部分 -

注意:URI 必须可供所有可能启动您的应用程序的节点访问。方法可能包括将文件分发到所有节点的本地文件系统,例如通过 RSYNC/SCP,或将其存储在共享网络驱动器上,例如 Amazon S3。值得考虑您选择的方法的安全影响。

Azure 为在所有节点之间共享 docker.tar.gz 文件提供了哪些选项?

谢谢

4

3 回答 3

5

将您放入docker.tar.gzAzure 存储并创建一个签名的 url。我使用 Azure 存储资源管理器创建了一个。

输出;

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" ]

你已准备好出发。

于 2016-08-25T08:29:04.990 回答
1

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

于 2016-05-03T19:35:53.183 回答
1

我们这样做的方式是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/#/slaves如果您通过隧道进入集群,您可以在以下位置找到您的代理 IP )。

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

于 2016-05-03T19:11:17.443 回答