WIP: Services v2 (ip-per-service)

DO NOT COMMIT.  Needs test updates and a new e2e test.  Some FIXMEs still.  95% complete.

Add support for IP-per-service behavior.  This creates virtual IP addresses for each service, and uses iptables to route traffic "magically".

The first few commits are relatively independent, and could be extracted to different PRs, if you feel like making me suffer.

See #1107 for background.
Right.  We still need a port per service, but you can have any port you
want :)

On Mon, Sep 29, 2014 at 3:44 PM, josselin-c <notifications@github.com>
wrote:

> In docs/services.md:
>
> > +## Defining a service
> > +
> > +A `service` in kubernetes is a REST object, similar to a `pod`.  Like a `pod` a
> > +`service` definitions can be POSTed to the apiserver to create a new instance.
> > +For example, suppose you have a set of `pods` that each expose port 9376 and
> > +carry a label "app=MyApp".
> > +
> > +```json
> > +{
> > +  "id": "myapp",
> > +  "selector": {
> > +    "app": "MyApp"
> > +  },
> > +  "containerPort": 9376,
> > +  "protocol": "TCP",
> > +  "port": 8765
>
> I'm sorry, I got mixed up: I though the point of services v2 was to get
> rid of static port per service when it's in fact about giving each service
> an ip address and then we can define static ports for it.
>
> --
> Reply to this email directly or view it on GitHub
> <https://github.com/GoogleCloudPlatform/kubernetes/pull/1402/files#r18189025>
> .
>