Commit Graph

9 Commits

Author SHA1 Message Date
Jana Radhakrishnan acac7ee812 Add service alias support
Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2016-06-14 16:40:54 -07:00
Jana Radhakrishnan 297a7e9039 Change port names in agent proto
Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2016-06-13 14:11:18 -07:00
Jana Radhakrishnan 04f3247c3d Add support for ingress LB in localhost
Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2016-06-12 17:28:28 -07:00
Jana Radhakrishnan 10fcb9dd2a Add all backend ip into service records if no vip
Right now if no vip is provided only when a new loadbalancer is created
we add the service records of the backend ip. But it should happen all
the time. This is to make DNS RR on service name work.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2016-06-09 15:47:09 -07:00
Jana Radhakrishnan 4d1a5ce968 Fix a lb rule race in loadbalancer
When a goroutine which is adding the service and another which is adding
just a destination interleave the destination which is dependent on the
service may not get added and will result in service working at reduced
scale. The fix is to synchronize this with the service mutex.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2016-06-07 17:07:24 -07:00
Jana Radhakrishnan dea36fd997 Move ingress port forwarding rules to a chain
- Moved ingress port forwarding rules to its own chain
     - Flushed the chain during init
     - Bound to the swarm ports so no hijacks it.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2016-06-07 11:50:17 -07:00
Jana Radhakrishnan 3b3d49cc4c Do not attempt LB plumbing until sandbox is ready
Also do not log error messages when adding a destination and it already
exists. This can happen because of duplicate gossip notifications.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2016-06-05 13:45:52 -07:00
Jana Radhakrishnan 0f89c9b7bc Add ingress load balancer
Ingress load balancer is achieved via a service sandbox which acts as
the proxy to translate incoming node port requests and mapping that to a
service entry. Once the right service is identified, the same internal
loadbalancer implementation is used to load balance to the right backend
instance.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2016-06-04 20:38:32 -07:00
Jana Radhakrishnan d05adebf30 Add loadbalancer support
This PR adds support for loadbalancing across a group of endpoints that
share the same service configuration as passed in by
`OptionService`. The loadbalancer is implemented using ipvs with just
round robin scheduling supported for now.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2016-05-26 13:05:58 -07:00