<p>As I know, Google's Kubernetes is based on Google's Borg; however, it seems like Borg is larger than Kubernetes. My understanding is that Borg is a large system containing a sub-system like Kubernetes and its own containers like Docker.</p>

<p>So, I would like to know:</p>

<p>1) In term of containers cluster management, what's the key difference between Borg (sub-system inside) and Kubernetes?</p>

<p>2) In term of container technology, what's the key difference between Borg (sub-system inside) and Docker?</p>

<p>I have no 'inside' knowledge of Borg so this answer is based only on what Google themselves have published <a href="http://research.google.com/pubs/pub43438.html">here</a>. For much greater detail, you should look into that paper. Section 8 makes specific reference to Kubernetes and is the basis of this answer (along with Kubernetes own docs):</p>

<p>1) Key differences:</p>

<ul>
<li>Borg groups work by 'job'; Kubernetes adds 'labels' for greater flexibility.</li>
<li>Borg uses an IP-per-machine design; Kubernetes uses a network-per-machine and IP-per-Pod design to allow late-binding of ports (letting developers choose ports, not the infrastructure).</li>
<li>Borg's API seems to be extensive and rich, but with a steep learning curve; Kubernetes APIs are presumably simpler. At least, for someone who hasn't worked with Borg, the Kubernetes API seems pretty clean and understandable.</li>
</ul>

<p>2) Borg seems to use <a href="https://github.com/google/lmctfy">LMCTFY</a> as its container technology. Kubernetes allows the use of Docker or rkt.</p>

<p>Some other obvious differences are the Borg is not open source and not available for use outside of Google, while Kubernetes is both of those things. Borg has been in production use for more than 10 years, while Kubernetes just hit v1.0 in July 2015.</p>

<p>Hope this helps. Check out that Borg paper; it is worth the time to read the whole thing.</p>
