访问域名(而不是IP)后面的mesos-master

时间:2016-12-05 14:20:35

标签: deployment containers mesos marathon

是否可以在放置在代理服务器后面的计算机上运行和访问mesos主服务器?

我已经成功地在我的本地基础设施上部署了MesosMaster / Marathon / MesosSalve。

当我想将MesosSlave放在互联网的某个地方时,问题出现了,因此MesosSlave和MesosMaster将通过公共IP进行通信

我的问题如下:

              Internet                                                                          My Infra

      .----------------------.                   .-----------------.    .-----------------.              .-------------------------------------------------.
      |    Mesos Slave VM    |                   |  Front Machine  |    |      Proxy      |              |                     Tool-VM                     |
      |    178.22.17.248     |                   |  39.224.147.94  |    |    10.2.0.57    |              |                   10.1.10.176                   |
      |----------------------|                   |  my.domain.com  |    |-----------------|              |           192.168.5.1 (docker bridge)           |
      |                      |                   |-----------------|    |                 |              |-------------------------------------------------|
      |                      |                   |                 |    |                 |              |                                                 |
      |       __________     |                   | __________      |    | __________      |              |                 .-----------------------------. |
      |      [_...__..5051.°]|                   |[_..5050.__...°] |<---|[_..5050.__...°] |<------------^|                 |   Mesos-Master Container    | |
      |                      |                   |                 |    |                 |              \ __________      | 192.168.5.4 (docker bridge) | |
      |                      |                   | __________      |    | __________      |              |[_..5050.__...°]^|-----------------------------| |
      |                      |                   |[_..2181.__...°] |<---|[_..2181.__...°] |<------------^|                 \ __________                  | |
      |                      |                   |                 |    |                 |              \ __________      |[_..5050.__...°]             | |
      |                      |                   |                 |    |                 |              |[_..2181.__...°]^| __________                  | |
      |                      |                   |                 |    |                 |              |                 \[_..2181.__...°]             | |
      |                      |                   |                 |    |                 |              |                 '-----------------------------' |
      '----------------------'                   '-----------------'    '-----------------'              '-------------------------------------------------'

然而:

  

我的域名infra重定向外包来自外部端口5050(对于Mesos)和端口2181(zookeeper),用于发送到域&#39; my.domain.com&的请求#39; (这是39.224.147.94的虚拟主机)。但不适用于其他要求(即39.224.147.94)。

所以我暂时尝试通过CLI执行服务:

  1. 执行 Mesos Master (在Mesos主容器中)
  2. /usr/sbin/mesos-master --ip=192.168.5.4 --work_dir=~/Mesos/mesos-0.23.0/workdir/ --zk=zk://192.168.5.4:2181/mesos --quorum=1 --log_dir=/var/log/mesos --external_log_file=/dev/stdout

    1. 执行 Marathon (在Mesos主容器中)
    2. /usr/bin/marathon --zk zk://192.168.5.4:2181/marathon --master zk://my.domain.com:2181/mesos

      1. 执行 Mesos Slave (在Mesos Slave VM中)
      2. /usr/sbin/mesos-slave --master=my.domain.com:5050 --work_dir=/var/lib/mesos/agent --port=8009 --containerizers=docker --executor_registration_timeout=3mins --log_dir=/var/log/mesos

        Mesos Master可以看到Slave资源。 但是,当我通过马拉松发送工作时,这份工作将处于等待状态。

        似乎奴隶无法在Master的主机名上进行通信,而只能使用它的公共IP:

        我在Slave日志中有这个:

          

        在master@39.224.147.94:5050检测到新主人

        39.224.147.94:5050 上的传入流量被我的infra阻止(只接受 my.domain.com:5050

        那么,是否可以使用域名而不是IP来在主服务器和从服务器之间创建连接?

1 个答案:

答案 0 :(得分:0)

蜜蜂老实说有点混乱。我不明白的是,您似乎使用192.168.5.4 ip进行主进程,但在您的图表中找不到它。我希望使用39.224.147.94代替。

此外,我建议在所有连接字符串中使用ip地址而不是hostname,你正在使用混合...

此外,您可以尝试将LIBPROCESS_IP环境变量设置为代理和Marathon进程的相应IP地址。

另一个问题是为什么你使用这样一个旧版本的Mesos ... Mesos 1.1.0已经出来了!