新的mesos /马拉松.如何部署新的自定义docker?

208*_*abh 1 marathon docker mesos

我是mesos和马拉松的新手.

我有一个设置,其中一个docker是自定义的,另一个是mysql服务器实例.这两个是链接和传递信息.如何在mesos上部署它?我目前正在使用单节点主站和从站设置.

Mic*_*las 5

要链接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"
      }
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

具有以下内容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"
}
Run Code Online (Sandbox Code Playgroud)

另外,确保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
Run Code Online (Sandbox Code Playgroud)

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

dig _$APPID._tcp.marathon.mesos SRV
Run Code Online (Sandbox Code Playgroud)

$APPID您用于部署自定义Docker镜像的标识符在哪里.上面的命令将告诉您Marathon已分配给您的应用程序的IP和端口.您也可以使用Mesos-DNS HTTP API进行服务发现.

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

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