Got it,
Let  user specify health checks with COMMAND(not for port but pid file
maybe) seems the only option I have.

Thanks a alot for the response and the hard work for Mesos.

On Wed, Jan 18, 2017 at 7:37 PM, Jie Yu <yujie....@gmail.com> wrote:

> Had a discussion with Vinod and AlexR on this.
>
> I DO think it's common that frameworks do not know about the IP of the
> container before launching it. For instance, any networking solution that
> has a dynamic IPAM (e.g., calico, dc/os overlay, weave, etc.).
>
> For those cases, probably doesn't make sense to ask the frameworks (or
> users) to specify the health check ip addresses for their containers.
>
> One solution we discussed was to use the container ip by default, but
> optionally allow people to specify `LOCALHOST` if they want to (this is
> what k8s does for probe. what's different is that k8s performs health check
> from kublet which runs outside the container network, while Mesos perform
> health checks from the executor which is in the same network as the
> container).
>
> However, the downside for this approach is that if a container joins
> multiple networks, what should be the address that Mesos uses to do health
> check by default?
>
> Therefore, I personally prefer a more consistent semantics (i.e., always
> using localhost). Although we can always add a backdoor for allowing people
> to specify a custom address for health check, but this should be avoided if
> possible.
>
> - Jie
>
> On Wed, Jan 18, 2017 at 10:44 AM, CmingXu <cming...@gmail.com> wrote:
>
>> The framework user have to make sure the IPs assigned unique and
>> accessible within the VLAN.
>>
>> In some cases, framework user want their DB, Cache or Proxy type of apps
>> handled by my framework & mesos, they might also want the app treated as
>> they are deployed  as the old way, which have a unique IP for each
>> container.
>>
>> This kind of app is not the only type that my framework support, with
>> BRIDGE driver supported too.
>>
>> On Wed, Jan 18, 2017 at 5:30 PM, Jie Yu <yujie....@gmail.com> wrote:
>>
>>> It's also possible that the IP is not known by the task/framework
>>> upfront (in fact, this is quite common depending on the underlying network
>>> driver), what does your general framework do in this case?
>>>
>>> - Jie
>>>
>>> On Wed, Jan 18, 2017 at 10:26 AM, CmingXu <cming...@gmail.com> wrote:
>>>
>>>> I am not sure what kind of apps are going to be running on Mesos, what
>>>> I am doing is a general purpose framework kind of like Marathon.
>>>>
>>>> On Wed, Jan 18, 2017 at 5:24 PM, Jie Yu <yujie....@gmail.com> wrote:
>>>>
>>>>> and we don't know if the task listening on all interfaces or not
>>>>>
>>>>>
>>>>> OK, i think that's the reason. Although, i am wondering: the task is
>>>>> already listening on an external IP, why not just listen on 0.0.0.0. Any
>>>>> specific reason this is a concern? Or just because there is no way to
>>>>> configure the listening address of the task?
>>>>>
>>>>> - Jie
>>>>>
>>>>> On Wed, Jan 18, 2017 at 10:17 AM, CmingXu <cming...@gmail.com> wrote:
>>>>>
>>>>>> To Alex:
>>>>>> Yes, we know the IP upfront, framework user need reserve unique IP
>>>>>> for each task, and we don't know if the task listening on all interfaces 
>>>>>> or
>>>>>> not, so let the health check on the IP is the best option.
>>>>>>
>>>>>>
>>>>>>
>>>>>> To Jie Yu:
>>>>>>
>>>>>> by DEFAULT_DOMAIN I mean
>>>>>>
>>>>>> *static const string DEFAULT_DOMAIN = "127.0.0.1"*
>>>>>>
>>>>>> in source code src/health-check/health_checker.cpp
>>>>>>
>>>>>> On Wed, Jan 18, 2017 at 4:58 PM, Jie Yu <yujie....@gmail.com> wrote:
>>>>>>
>>>>>>> So you want to use the IP addressed assigned by your macvlan driver
>>>>>>> to do health check? If that's the case, I still don't understand why
>>>>>>> entering the network namespace of the container and use localhost for
>>>>>>> health check does not work (which is what Mesos is doing).
>>>>>>>
>>>>>>> I walked through the Mesos source code and obviously the TCP & HTTP
>>>>>>>> doesn't meet my requirements as DEFAULT_DOMAIN is hard coded
>>>>>>>
>>>>>>>
>>>>>>> What do you mean by DEFAULT_DOMAIN?
>>>>>>>
>>>>>>> - Jie
>>>>>>>
>>>>>>> On Wed, Jan 18, 2017 at 9:54 AM, CmingXu <cming...@gmail.com> wrote:
>>>>>>>
>>>>>>>> the network I am currently used is USER, and each task was assigned
>>>>>>>> with a unique vLAN IP with the underlaying docker driver is
>>>>>>>> Macvlan. I
>>>>>>>> want my framework user have the ability to define there own
>>>>>>>> HealthChecks with the IP assigned to a specific task.
>>>>>>>>
>>>>>>>> I walked through the Mesos source code and obviously the TCP & HTTP
>>>>>>>> doesn't meet my requirements as DEFAULT_DOMAIN is hard coded, now
>>>>>>>> the
>>>>>>>> only option to be might be health check with COMMAND, but if TCP
>>>>>>>> does
>>>>>>>> support passing IP would be great help.
>>>>>>>>
>>>>>>>> Thanks
>>>>>>>>
>>>>>>>> On Wed, Jan 18, 2017 at 4:40 PM, Jie Yu <yujie....@gmail.com>
>>>>>>>> wrote:
>>>>>>>> > Hi, can you elaborate a bit more on why you need to use an
>>>>>>>> customized IP,
>>>>>>>> > rather than using localhost for health check?
>>>>>>>> >
>>>>>>>> > - Jie
>>>>>>>> >
>>>>>>>> > On Wed, Jan 18, 2017 at 9:19 AM, CmingXu <cming...@gmail.com>
>>>>>>>> wrote:
>>>>>>>> >>
>>>>>>>> >> Is there any plan we support customized IP when define a health
>>>>>>>> check?
>>>>>>>> >> If true, what's the ETA?
>>>>>>>> >>
>>>>>>>> >> thanks
>>>>>>>> >
>>>>>>>> >
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>

Reply via email to