More on this here: <a href="https://medium.com/@sargun/a-critique-of-network-design-ff8543140667#.2fwstossu" rel="nofollow">https://medium.com/@sargun/a-critique-of-network-design-ff85...</a> -- BGP isn't just about containers. It's about signaling. It's a mechanism for machines to influence the flow of traffic in the network.<p>This isn't container weirdness. This is because networks got stuck in 2008. We still don't have have IPv6 SLAAC. Many of us made the jump to layer 3 clos fabrics, but stopped after that. My belief is because AWS EC2, Google GCE, Azure Compute, and others consider this the gold standard.<p>IPv6 natively supports autoconfiguring multiple IPs per NIC / machine automagically*. This is usually on by default as part of the privacy extensions, so in conjunction with SLAAC, you can cycle through IPs quickly. It also makes multi-endpoint protocols relevant.<p>Containers and bad networking because of the lack of IP / container is a well-known problem, it's even touched on in the Borg paper, briefly:
One IP address per machine complicates things. In
Borg, all tasks on a machine use the single IP address of
their host, and thus share the host’s port space. This causes
a number of difficulties: Borg must schedule ports as a resource; tasks must pre-declare how many ports they need,
and be willing to be told which ones to use when they start;
the Borglet must enforce port isolation; and the naming and
RPC systems must handle ports as well as IP addresses.<p>Thanks to the advent of Linux namespaces, VMs, IPv6,
and software-defined networking, Kubernetes can take a
more user-friendly approach that eliminates these complications: every pod and service gets its own IP address, allowing developers to choose ports rather than requiring their software to adapt to the ones chosen by the infrastructure, and removes the infrastructure complexity of managing ports.<p>But, I ask, what's wrong with the Docker approach of rewriting ports? Reachability is our primary concern, and I'm unfortunately BGP hasn't become the lingua franca for most networks ("The Cloud"). I actually think ILA (<a href="https://tools.ietf.org/html/draft-herbert-nvo3-ila-00#section-4.5" rel="nofollow">https://tools.ietf.org/html/draft-herbert-nvo3-ila-00#sectio...</a>) / ILNP (RFC6741) are the most interesting approaches here.