新的mesos /马拉松。 如何部署一个新的自定义泊坞窗?

我是新来的马拉松和马拉松。

我有一个设置在一个docker是自定义的,另一个是MySQL服务器实例。 这两个链接并传递信息。 我如何在mesos上部署? 我正在使用一个单一的节点主从设置。

要链接你的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

 { "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具有正确的条目:

 $ 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 

然后,您可以dynamic地发现您的服务(在Vagrant框中),如下所示:

 dig _$APPID._tcp.marathon.mesos SRV 

$APPID是您用来部署自定义Docker镜像的标识符。 上面的命令会告诉你IP和马拉松已经分配给你的应用程序的端口。 您也可以使用Mesos-DNS HTTP API进行服务发现。

注1: DCOS预装了Mesos-DNS,可以直接使用它进行服务发现。

注2:如果遇到应用程序不理解SRVlogging的问题,可以尝试以下解决方法: https : //github.com/the-tetanus-clinic/srv-shim

官方Marathon文档说参数对象(文档页面的底部)允许任意的docker命令,所以你可以用它来连接它们。

或者Mesos-DNS似乎是一个解决scheme。 第一个解决scheme应该从单个主机移动到多个主机,并且您的单个容器被安排到不同的主机。

注意:我对docker也不是很有经验,但是这些似乎是我能find的唯一select。 然而,将Docker集成到Mesos中是一个持续的过程,Docker Swarm集成到Mesos目前正在进行中,所以这些问题很可能会在未来的希望中解决。