Hello,

Can you try changing your cmd to:

"LIBPROCESS_IP=$HOST ./kafka-mesos.sh scheduler --master=mesos-master:5050
--zk=mesos-master:2181 --api=http://$HOST:9999 <http://mesos-slave0:9999/>
 --storage=zk://kafka-mesos"

and remove constraints and env sections.


On Mon, Apr 4, 2016 at 5:12 AM, Eli Jordan <[email protected]> wrote:

> @haosdent I’m not sure how this works internally, but it seems the mess
> master needs to send requests to the framework for resource offers, and
> therefore needs to know the external IP (i.e. the host IP)
>
> @craig w
> Would I need to do this in the cmd portion of the marathon JSON? I
> currently have the config below
> {
>     "container": ...,
>     "id":"kafka-mesos-scheduler",
>     "cpus": 0.5,
>     "mem": 256,
>     "ports": [9999],
>     "cmd": "./kafka-mesos.sh scheduler --master=mesos-master:5050
> --zk=mesos-master:2181 --api=http://mesos-slave0:9999
> --storage=zk:/kafka-mesos",
>     "instances": 1,
>     "constraints": [["hostname", "LIKE", "mesos-slave0"]],
>     "env": {
>         "LIBPROCESS_IP": "192.168.3.16"
>     }
> }
>
> @Chris Baker Currently we don’t have mess-dns setup but if this works it
> would seem to be a nice solution. However, I did try setting LIBPROCESS_IP
> to the slave hostname and it seems to produce a parse error. So I think it
> needs to be an actual IP address.
>
> I was hoping there would be a configuration for the slave that would
> automatically populate this env variable when starting the docker
> container. So I don’t need to complicate the marathon file, and can reuse
> it in different clusters.
>
>
> On 4 Apr 2016, at 11:25 am, Chris Baker <[email protected]> wrote:
>
> Alternatively, because the $HOST username is indirect, which would require
> a runtime element to "export $LIBPROCESS_IP=$HOST", another alternative is
> to fallback on Mesos-DNS, if that's part of the cluster deployment, setting
> $LIBPROCESS_IP to the (a priori) Mesos-DNS entry corresponding to the
> service.
>
> On Sun, Apr 3, 2016 at 5:06 PM craig w <[email protected]> wrote:
>
>> Hi, marathon sets the HOST env var. If it's not the ip address you can
>> use getent with the value from HOST to figure it out.
>> >However, in order for the frameworks to receive resource offers I need
>> to set the LIBPROCESS_IP environment variable to the hosts IP address for
>> the docker container running the frameworks.
>>
>> Hi, @Gmail. Could you provide more details about this?
>>
>> On Sun, Apr 3, 2016 at 10:40 PM, Rad Gruchalski <[email protected]>
>> wrote:
>>
>>> Hi Gmail,
>>>
>>> AFAIK not. The only way to do so is setting up the env variable as you
>>> do now.
>>>
>>>
>>>
>>> Kind regards,
>>> Radek Gruchalski
>>> [email protected] <[email protected]>
>>> de.linkedin.com/in/radgruchalski/
>>>
>>>
>>> *Confidentiality:*This communication is intended for the above-named
>>> person and may be confidential and/or legally privileged.
>>> If it has come to you in error you must take no action based on it, nor
>>> must you copy or show it to anyone; please delete/destroy and inform the
>>> sender immediately.
>>>
>>> On Sunday, 3 April 2016 at 16:09, Gmail wrote:
>>>
>>> I'm pretty new to mesos and marathon, and I'm running a couple of
>>> frameworks with marathon (Kafka and elastic search). However, in order for
>>> the frameworks to receive resource offers I need to set the LIBPROCESS_IP
>>> environment variable to the hosts IP address for the docker container
>>> running the frameworks. Currently I am working around me this by using a
>>> constraint to hard wire the slave that the framework gets launched on, so
>>> then I can put the slaves ip in the marathon json file.
>>>
>>> Obviously this is not ideal. Is there a better way to define the host ip
>>> Inside the docker container?
>>>
>>> Sent from my iPad
>>>
>>>
>>>
>>
>>
>> --
>> Best Regards,
>> Haosdent Huang
>>
>
>


-- 
Regards,
Pradeep Chhetri

Reply via email to