Kubernetes & Docker 容器网络终极之战

与 Docker 默认的网络模型不同,Kubernetes 形成了一套自己的网络模型,该网络模型更加适应传统的网络模式,应用能够平滑的从非容器环境迁移到 Kubernetes 环境中。 自从 Docker 容器出现,容器的网络通信一直是众人关注的焦点,而容器的网络方案又可以分为两大部分: 单主机的容器间通信; 跨主机的容器间通信。 一、单主机 Docker 网络通信 利用 Net Namespace 可以为 Docker 容器创建隔离的网络环境,容器具有完全独立的网络栈,与宿主机隔离。也可以使 Docker 容器共享主机或者其他容器的网络命名空间。 我们在使用docker run创建 Docker 容器时,可以使用–network=选项指定容器的网络模式,Docker 有以下 4 种网络模式: host 模式,使用–network=host指定,不支持多主机; bridge 模式,使用–network=bridge指定,默认设置,不支持多主机; container 模式,使用–network=container:NAME_or_ID指定,即joiner 容器,不支持多主机; none 模式,使用–network=none指定,不支持多主机。 1.1、host 模式 连接到 host 网络的容器共享 Docker host 的网络栈,容器的网络配置与 host 完全一样。 我们先查看一下主机的网络。

Read more…