You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mesos.apache.org by "Spike Curtis (projectcalico.org)" <sp...@projectcalico.org> on 2015/10/22 22:09:33 UTC

NetworkInfo change - MESOS-3788

Hi,

Mesos 0.25.0 introduced a new NetworkInfo protobuf message.  The NetworkInfo allows frameworks to request IP-per-container networking for the containerized Tasks they launch, and also allows a unified way for frameworks to discover the IP address the task will use (both traditional and IP-per-container networking).

We've noticed an issue with the way NetworkInfo was specified that means a less than ideal experience for framework and application developers.  MESOS-3788<https://issues.apache.org/jira/browse/MESOS-3788> is our attempt to fix NetworkInfo to be easier for network module developers and Mesos users to understand.

What went wrong?

In the original NetworkInfo, merged in 0.25.0, the way to specify multiple IP addresses was to repeat the entire NetworkInfo object.  If the framework repeated the NetworkInfo object with different network groups in each NetworkInfo object, it wasn't clear how the overall policy would be applied.

Furthermore, it wasn't clear how multiple IP addresses might or might not be assigned to multiple virtual network interfaces.  Would you get one interface with several IP addresses, or several interfaces with an IP address each?

How do we fix it?

We've collaborated with Ben Hindman, Connor Doyle, Kapil Arya, and Niklas Nielsen on the proposed solution. MESOS-3788<https://issues.apache.org/jira/browse/MESOS-3788> clarifies that each NetworkInfo object represents a single virtual network interface in the container.  In order to allow multiple IP addresses on a single interface, we've deprecated the original protocol and ip_address fields and moved to a repeated IPAddress sub-message.  If you want 3 IPs on an interface, repeat the IPAddress sub-message 3 times.

The fields in the IPAddress sub-message are optional.  The mainline use will be to include 1 copy of the IPAddress message with no parameters, which means "give me a single IP address."  At present, since Mesos itself only supports IPv4, this will always be an IPv4 address, but in the future, if not specified, the network provider can assign whatever the local default is.

Please feel free to comment directly on the issue or reply to this message.

Cheers,
Spike Curtis  (Project Calico)

Re: NetworkInfo change - MESOS-3788

Posted by Niklas Nielsen <ni...@mesosphere.io>.
On 22 October 2015 at 13:09, Spike Curtis (projectcalico.org) <
spike@projectcalico.org> wrote:

> Hi,
>
> Mesos 0.25.0 introduced a new NetworkInfo protobuf message.  The
> NetworkInfo allows frameworks to request IP-per-container networking for
> the containerized Tasks they launch, and also allows a unified way for
> frameworks to discover the IP address the task will use (both traditional
> and IP-per-container networking).
>
> We've noticed an issue with the way NetworkInfo was specified that means a
> less than ideal experience for framework and application developers.
> MESOS-3788<https://issues.apache.org/jira/browse/MESOS-3788> is our
> attempt to fix NetworkInfo to be easier for network module developers and
> Mesos users to understand.
>
> What went wrong?
>
> In the original NetworkInfo, merged in 0.25.0, the way to specify multiple
> IP addresses was to repeat the entire NetworkInfo object.  If the framework
> repeated the NetworkInfo object with different network groups in each
> NetworkInfo object, it wasn't clear how the overall policy would be applied.
>
> Furthermore, it wasn't clear how multiple IP addresses might or might not
> be assigned to multiple virtual network interfaces.  Would you get one
> interface with several IP addresses, or several interfaces with an IP
> address each?
>
> How do we fix it?
>
> We've collaborated with Ben Hindman, Connor Doyle, Kapil Arya, and Niklas
> Nielsen on the proposed solution. MESOS-3788<
> https://issues.apache.org/jira/browse/MESOS-3788> clarifies that each
> NetworkInfo object represents a single virtual network interface in the
> container.  In order to allow multiple IP addresses on a single interface,
> we've deprecated the original protocol and ip_address fields and moved to a
> repeated IPAddress sub-message.  If you want 3 IPs on an interface, repeat
> the IPAddress sub-message 3 times.
>
> The fields in the IPAddress sub-message are optional.  The mainline use
> will be to include 1 copy of the IPAddress message with no parameters,
> which means "give me a single IP address."  At present, since Mesos itself
> only supports IPv4, this will always be an IPv4 address, but in the future,
> if not specified, the network provider can assign whatever the local
> default is.
>

+1

Thanks for the writeup Spike!


>
> Please feel free to comment directly on the issue or reply to this message.
>
> Cheers,
> Spike Curtis  (Project Calico)
>