我对迈索斯和马拉松还不熟悉。我有一个设置,其中一个docker是自定义的,另一个是mysql服务器示例。这两个链接并传递信息。如何在mesos上部署?我使用的是目前设置的单节点主节点和从节点。
qcuzuvrc1#
官方的marathon文档说,parameters对象(doc页面的底部)中允许使用任意docker命令,因此您可以使用它来连接它们。或者mesos dns似乎是一个解决方案。当您从一个主机移动到多个主机并且您的单个容器被安排到不同的主机时,第一个解决方案就会失败。注意:我对docker也不是很有经验,但这些似乎是我能找到的唯一选择。然而,将docker集成到mesos是一个正在进行的过程,而将docker swarm集成到mesos是目前正在进行的工作,因此这些问题可能会在不久的将来得到解决。
rxztt3cl2#
要链接docker容器,请使用mesos dns。我在下面使用playa mesos来解释设置。在playa上设置mesos dns非常简单:使用mesosphere/mesos dns映像,并使用以下应用程序规范将其部署到marathon上:
{ "id": "mesos-dns", "instances": 1, "cpus": 1, "mem": 512, "cmd": "/mesos-dns -config=/config.json", "container": { "type": "DOCKER", "docker": { "image": "mesosphere/mesos-dns:latest", "network": "HOST" }, "volumes": [ { "containerPath": "/config.json", "hostPath": "/etc/mesos-dns/config.js", "mode": "RW" } ] } }
以下是 config.js :
config.js
{ "zk": "zk://127.0.0.1:2181/mesos", "refreshSeconds": 60, "ttl": 60, "domain": "mesos", "port": 53, "resolvers": ["10.0.2.3"], "timeout": 5, "email": "root.mesos-dns.mesos" }
另外,确保 resolv.conf 在第一个位置有正确的条目:
resolv.conf
$ cat /etc/resolv.conf # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN nameserver 127.0.0.1 nameserver 10.0.2.3 search net
然后,您可以动态地发现您的服务(在“流浪者”框中),如下所示:
dig _$APPID._tcp.marathon.mesos SRV
哪里 $APPID 是用于部署自定义docker映像的标识符。上面的命令将告诉你的ip和端口马拉松已分配给你的应用程序。您也可以使用mesos dns http api进行服务发现。注意1:dcos预装了mesos dns,因此您可以直接使用它进行服务发现。注2:如果遇到应用程序无法理解的问题 SRV 您可以尝试以下解决方法:https://github.com/the-tetanus-clinic/srv-shim
$APPID
SRV
2条答案
按热度按时间qcuzuvrc1#
官方的marathon文档说,parameters对象(doc页面的底部)中允许使用任意docker命令,因此您可以使用它来连接它们。
或者mesos dns似乎是一个解决方案。当您从一个主机移动到多个主机并且您的单个容器被安排到不同的主机时,第一个解决方案就会失败。
注意:我对docker也不是很有经验,但这些似乎是我能找到的唯一选择。然而,将docker集成到mesos是一个正在进行的过程,而将docker swarm集成到mesos是目前正在进行的工作,因此这些问题可能会在不久的将来得到解决。
rxztt3cl2#
要链接docker容器,请使用mesos dns。我在下面使用playa mesos来解释设置。
在playa上设置mesos dns非常简单:使用mesosphere/mesos dns映像,并使用以下应用程序规范将其部署到marathon上:
以下是
config.js
:另外,确保
resolv.conf
在第一个位置有正确的条目:然后,您可以动态地发现您的服务(在“流浪者”框中),如下所示:
哪里
$APPID
是用于部署自定义docker映像的标识符。上面的命令将告诉你的ip和端口马拉松已分配给你的应用程序。您也可以使用mesos dns http api进行服务发现。注意1:dcos预装了mesos dns,因此您可以直接使用它进行服务发现。
注2:如果遇到应用程序无法理解的问题
SRV
您可以尝试以下解决方法:https://github.com/the-tetanus-clinic/srv-shim