You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mesos.apache.org by "Yan Xu (JIRA)" <ji...@apache.org> on 2013/12/08 02:55:35 UTC

[jira] [Updated] (MESOS-672) Web UI redirection does not work for hosts whose ip addresses are not publicly accessible

     [ https://issues.apache.org/jira/browse/MESOS-672?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Yan Xu updated MESOS-672:
-------------------------

    Description: 
Web UI redirection does not work for hosts where the local interface address is not publicly accessible. For example, with EC2 the redirection will not work.

There are some possible solutions:

(1) Add a new REST endpoint on the master called 'info'. When master A finds out that master B is the leader it hits master B's '/master/info' endpoint to get back information about that master including it's (public) hostname. 
    - This also requires making sure that each master uses it's public hostname which may possibly require adding a --hostname flag (similar to what we did on the slave). 
    - Alternatively, we could update os::hostname to special case EC2, thus making Mesos work "out of the box" without requiring operators to explicitly set it to the private hostname. 

(2) Add a 'hostname' field to PID and make sure that stringification of the PID uses the hostname. Then master redirection is done by getting the hostname of the PID instead of the IP. Note this still requires detecting the public hostname using mechanisms mentioned in (1). 

(3) Store a separate ZNode for the public hostname. Patch from Brenden Matthews: https://reviews.apache.org/r/11975/

(4) Store a protobuf blob of 'MasterInfo' in ZooKeeper which includes the hostname field (suggested by Vinod Kone in the above review). We have to deal with issues with backwards compatibility. When old slaves read the new master's data, it deserializes the protobuf blob as a PID; when new slaves read the old master's data, it deserializes the PID as protobuf.

This ticket intends to evaluate these potential solutions and solicit new ideas.


  was:
Web UI redirection does not work for hosts where the local interface address is not publicly accessible. For example, with EC2 the redirection will not work.

One possible solution suggested by BenH is to have hostnames in the libprocess PID such that when we store the PID in ZooKeeper via the master detector/contender, we'll have the hostname rather than the private IP thus making things work correctly on EC2.

Previously, Brenden Matthews has made an attempt to address this problem:
https://reviews.apache.org/r/11975/


> Web UI redirection does not work for hosts whose ip addresses are not publicly accessible
> -----------------------------------------------------------------------------------------
>
>                 Key: MESOS-672
>                 URL: https://issues.apache.org/jira/browse/MESOS-672
>             Project: Mesos
>          Issue Type: Bug
>    Affects Versions: 0.14.0
>            Reporter: Jie Yu
>            Assignee: Jie Yu
>              Labels: twitter
>             Fix For: 0.17.0
>
>
> Web UI redirection does not work for hosts where the local interface address is not publicly accessible. For example, with EC2 the redirection will not work.
> There are some possible solutions:
> (1) Add a new REST endpoint on the master called 'info'. When master A finds out that master B is the leader it hits master B's '/master/info' endpoint to get back information about that master including it's (public) hostname. 
>     - This also requires making sure that each master uses it's public hostname which may possibly require adding a --hostname flag (similar to what we did on the slave). 
>     - Alternatively, we could update os::hostname to special case EC2, thus making Mesos work "out of the box" without requiring operators to explicitly set it to the private hostname. 
> (2) Add a 'hostname' field to PID and make sure that stringification of the PID uses the hostname. Then master redirection is done by getting the hostname of the PID instead of the IP. Note this still requires detecting the public hostname using mechanisms mentioned in (1). 
> (3) Store a separate ZNode for the public hostname. Patch from Brenden Matthews: https://reviews.apache.org/r/11975/
> (4) Store a protobuf blob of 'MasterInfo' in ZooKeeper which includes the hostname field (suggested by Vinod Kone in the above review). We have to deal with issues with backwards compatibility. When old slaves read the new master's data, it deserializes the protobuf blob as a PID; when new slaves read the old master's data, it deserializes the PID as protobuf.
> This ticket intends to evaluate these potential solutions and solicit new ideas.



--
This message was sent by Atlassian JIRA
(v6.1#6144)