<div dir="ltr">correction... I mis-typed IPVS in a couple places... its IPVS not LPVS... sorry.<div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Sep 7, 2016 at 8:45 AM, brian mullan <span dir="ltr"><<a href="mailto:bmullan.mail@gmail.com" target="_blank">bmullan.mail@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">A few years ago I'd done some experimentation with LPVS but that was before I began using LXC/LXD and had forgotten about it since.<div><br></div><div>LPVS has been in the Linux kernel for nearly 15 years now!<br><div><br></div><div>Recently I read that someone has utilized LPVS capabilities with docker containers:</div><div><a href="https://blog.codeship.com/kernel-load-balancing-for-docker-containers-using-ipvs/" target="_blank">https://blog.codeship.com/<wbr>kernel-load-balancing-for-<wbr>docker-containers-using-ipvs/</a><br></div><div><br></div><div>That Uber dev also put out a GO application to help admin/provision the IPVS called GORB:</div><div><a href="https://github.com/kobolog/gorb" target="_blank">https://github.com/kobolog/<wbr>gorb</a></div><div><br></div><div>GORB (Go Routing and Balancing) is described as: </div><div><br></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex" class="gmail_quote"><span style="font-weight:600">Go Routing and Balancing<br></span>This daemon is an IPVS frontend with a REST API interface. You can use it to control local IPVS instance in the Kernel to dynamically register virtual services and backends. It also supports basic TCP and HTTP health checks (called Gorb Pulse).<ul><li><span style="font-weight:600">TCP</span>: tries to establish a TCP connection to the backend's host and port.</li></ul><ul><li style="margin-top:0.25em"><span style="font-weight:600">HTTP</span>: tries to fetch a specified location from backend's host and port.</li></ul>Backends which fail to pass the health check will have weights set to zero to inhibit any traffic from being routed into their direction. When a backend comes back online, GORB won't immediately set its weight to the previous value, but instead gradually restore it based on backend's accumulated health statistics. <br>GORB also supports basic service discovery registration via <b><a href="https://www.consul.io/" style="color:rgb(64,120,192);text-decoration:none;background-color:transparent" target="_blank">Consul</a>: </b>just pass in the <b><i>Consul</i></b> endpoint to GORB and it will take care of everything else – your services will be registered with names like <code style="font-family:consolas,"liberation mono",menlo,courier,monospace;font-size:13.6px;padding:0.2em 0px;margin:0px;border-radius:3px;background-color:rgba(0,0,0,0.0392157)">nginx-80-tcp</code>. Keep in mind that you can use Consul's built-in DNS server to make it even easier to discover your services! <br>Check out these<b> <a href="http://www.slideshare.net/kobolog/ipvs-for-docker-containers" style="color:rgb(64,120,192);text-decoration:none;background-color:transparent" target="_blank">slides for my DockerCon EU 2015 talk</a></b> for more information about IPVS, GORB and how to use it with Docker.</blockquote></div></blockquote><div><br></div><div><br></div><div>There is already a <b><i>Consul</i></b> setup/config tool for LXD: <a href="https://github.com/badmadrad/lxd-consul" target="_blank"> https://github.com/badmadrad/<wbr>lxd-consul</a></div><div><br></div><div>So I thought I'd ask if anyone had any experience setting up or using LPVS with LXD containers?</div><span class="HOEnZb"><font color="#888888"><div><br></div><div>Brian</div><div><br></div><div><br></div></font></span></div></div>
</blockquote></div><br></div>