mesos-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Cyrille Chépélov (JIRA) <>
Subject [jira] [Commented] (MESOS-6517) Health checking only on is limiting.
Date Wed, 01 Mar 2017 14:10:45 GMT


Cyrille Chépélov commented on MESOS-6517:

Hi [~alexr] / [~avinash.mesos], we have such a case.

We use Marathon to schedule long-running services. 
Our services are trivial FatJAR jvms (typically made in Scala/Play or akka-http) and currently
require no supplementary containerisation (we use the platform JVM and the app itself is a
single JAR + whatever configuration supplied from the command line). In other words, we don't
use Docker and live in the host network namespace.

Our machines have two network interfaces:
   - eth0 is connected to the wild world, iptable'd to only allow ssh from known secure locations
(including the IaaS provider)
   - eth1 is on a private LAN and holds the services

Services are then exposed via Bamboo/HAProxy by a gateway machine, also dual-hosted. Much
simplified, this gives that structure:

    [client] ---- https ----> { eth0 [ gateway: HAProxy(etc.) ] eth1 ----http(s)--->
eth1 [ Task spun off by Marathon ] eth0 } 

What we do (or what we'd like to do) is that in addition to be iptable'd off from the outside
world, our services (Marathon tasks) only bind on the local "eth1" address.
If we do this, we cannot use the Mesos Native healthcheck now mandated by Marathon in
, or we must have our tasks bind twice, once on the eth1 interface and one on lo just for
the purpsoe of the healthcheck.

It would make our live much, much easier if it was possible to specify, either on a global
or on a per-Marathon Service level, the interface to use for the http(s) health checks.

Thanks in advance.

> Health checking only on is limiting.
> ----------------------------------------------
>                 Key: MESOS-6517
>                 URL:
>             Project: Mesos
>          Issue Type: Improvement
>            Reporter: Alexander Rukletsov
>              Labels: health-check, mesosphere
> As of Mesos 1.1.0, HTTP and TCP health checks always use as the target IP.
This is not configurable. As a result, tasks should listen on all interfaces if they want
to support HTTP and TCP health checks. However, there might be some cases where tasks or containers
will end up binding to a specific IP address. 
> To make health checking more robust we can:
> * look at all interfaces in a given network namespace and do health check on all the
IP addresses;
> * allow users to specify the IP to health check;
> * deduce the target IP from task's discovery information.

This message was sent by Atlassian JIRA

View raw message