【问题标题】:Mesos/Marathon on EC2 agents hostnames not accessibleEC2 代理主机名上的 Mesos/Marathon 无法访问
【发布时间】:2016-08-16 20:26:36
【问题描述】:

我正在 EC2 amazon 上设置一个 Mesos/Marathon 集群,其中包含一个主节点和两个代理。安装成功,查看 :mesos-port 时,代理已正确列出。

主机由私有 DNS (ip-17*---.ec2.internal) 注册。

当我尝试通过 Marathon webui 启动 docker 映像 (tutum/hello-world) 时,部署失败。

在 Mesos UI 中,已完成的任务列表将显示失败的部署尝试。在 Sandbox 链接下,它指出:

Failed to connect to agent '12136c28-93e7-4642-a5b6-c5e9a55eedd1-S0' on 'ip-17*-**-*-***.ec2.internal:5051'.
Potential reasons:
The agent's hostname, 'ip-17*-**-*-***.ec2.internal', is not accessible from your network

代理的端口“5051”无法从您的网络访问 代理超时或下线

我在安全组中完全打开了端口范围,我可以从 master ping 到代理。

为了安全起见,我将私有 ip 添加到 /etc/hosts 文件中,但这也无济于事。

有什么想法吗?

【问题讨论】:

  • 您为什么使用内部 IP 以及使用什么代码访问该内部 IP?
  • 当我在 /etc/mesos/zk 配置 zookeeper 时,我使用内部 IP,以便代理可以找到主节点。该文件包含 zk://172.**.*.***:2181/mesos。内部 IP 似乎工作正常,因为我确实看到代理在 mesos 的 webui 中注册到主节点。代理使用私有 DNS 在主节点上注册。但是,即使代理进程与主实例在同一实例上运行,主节点也无法在任何代理上启动 docker 映像。
  • 内网IP在网内工作,但不能从外网访问
  • 主进程和代理进程都在同一个网络中运行。

标签: amazon-web-services docker amazon-ec2 mesos marathon


【解决方案1】:

我很久以前做过,所以我不记得确切的路径了。

在 Slave 中进入 /etc/mesos-slave 文件夹(如果丢失则创建)并创建如下两个文件:

1) 使用 (“mesos,docker”) 设置容器化文件。

2) 设置 Execution_time_out 文件,其中包含 (“5mins”)。

参考: https://mesosphere.github.io/marathon/docs/native-docker.html https://mesosphere.github.io/marathon/docs/troubleshooting.html

现在重启你的 master 和 slave。

此外,您需要打开安全组中的所有端口。您可以打开所有流量进行测试(不推荐)

完成!

【讨论】:

  • 太棒了,添加两个文件就可以了。我不会想到这一点。
猜你喜欢
  • 2015-12-29
  • 1970-01-01
  • 2016-08-21
  • 2018-12-28
  • 1970-01-01
  • 2018-02-07
  • 1970-01-01
  • 2021-12-07
  • 1970-01-01
相关资源
最近更新 更多