IPVS is a Linux kernel module that provides high performance virtual server capabilities including load balancing, failover and dynamic configuration. GORB is an open source REST API and daemon that controls IPVS to provide load balancing for Docker containers. It supports TCP and HTTP health checks and integrates with Docker links. Using IPVS, GORB and Docker, high performance load balancing can be achieved without the need for expensive proprietary hardware load balancers.
7. IP Virtual Server
7
Works inside the Linux Kernel, based on
Netfilter.
Supports TCP, SCTP & UDP, v4 and v6.
8+ methods: WRR, WLC, LBLCR, SH
and much more – plugins.
NAT, Tunneling, Direct Routing.
Address bundling via FWMark services.
Most importantly, it is bloody fucking fast!
8. IP Virtual Server
8
…and a little bit more about these weird acronyms.
IPIP
Encapsulates IP
Routable anywhere
NAT
Rewrites DST IP
Same L4
DSR
Rewrites DST MAC
Same L2
9. IP Virtual Server
9
…and a few more words about DR since it’s awesome!
TPS
50
66
82
98
114
130
Single IPVS DR HAProxy MySQL Proxy
10. I don’t need this
10
…and why would we load balance and route
anything at all?
11. I don’t need this
11
…also, our nginx, haproxy, hipache, vulcand
setup works fine – get off the stage, please!
12. I don’t need this
12
…and we run our stuff in the cloud, it takes care of
everything – our work is perpetual siesta!
17. 17
REST API daemon to control IPVS.
Simple GET, PUT, DELETE interface.
Docker Link to control GORB.
TCP, HTTP health checks built-in.
Written in Go, LGPL licensed, on GitHub.
Docker + GORB + MacVLAN network
plugin + IPVS DR forwarding mode = ❤
What is GORB
…and why is it cool for Docker Containers?
19. What is GORB
19
The guy on the stage is doing roughly this right now.
kobolog@gorb:~$ go install github.com/kobolog/gorb
kobolog@gorb:~$ sudo modprobe ip_vs
kobolog@gorb:~$ sudo gorb &
kobolog@docker:~$ go install github.com/kobolog/gorb/gorb-docker-link
kobolog@docker:~$ export DOCKER_HOST=<...>
kobolog@docker:~$ gorb-docker-link -r gorb:4672 &
kobolog@docker:~$ docker run -d -p 80 nginx
kobolog@gorb:~$ curl -i -XGET http://localhost:80
20. A few more words about BGP
20
…black belt in networking is not complete without
a few words about BGP.
21. How stable is GORB
21
…and is it production-ready? Can we blame you if
it doesn’t work?
22. «I'll let you in on a secret: my
pet hamster did all the coding.
I was just a channel, a «front»
if you will, in my pet's grand
plan. So, don't blame me if
there are bugs. Blame the
cute, furry one» —Rusty Russel
22
24. €0
24
…is a price for IPVS and BGP (and GORB).
Works on commodity hardware.
No special software or tools, no SNMP.
1000-word man page vs. 1000-page
vendor manual.
1 GBPS line rate = 1% CPU in DR mode.
IPVS is around for more than 15 years.