Networking in Kubernetes is different from straight Docker, in that, IP addresses are assigned per pod rather than per container. This allows containers within a pod to connect to each other on localhost. It also allows them to act as one service. This is more akin to the traditional server model than most Docker tools. In addition, Kubernetes provides tools for doing automatic load balancing for applications and can work with most cloud providers to use their existing load balancers to provide external access.
Kubernetes requires the use of an overlay network to allow pods to communicate across the cluster. It supports GCE, Weave, Flannel, OpenVSwitch, and others either out-of-the-box or with an add-on. DNS-SD is also available out-of-the-box through the
kube-dns add-on, but other services can be used instead.