docker常用网络模型
参考:
绝大多数对 Docker 的网络使用模型可以汇总为三类:
1)、Bridge 模式(NAT)
2)、Bridge 模式(去 NAT)
3)、端口映射
1)、Bridge 模式(NAT):
Docker 默认的桥接是用的第一种 NAT 方式,也即是把命名空间中的 veth 网卡绑定到自己的网桥 docker0。然后主机使用iptables来配置 NAT,并使用 DHCP 服务器 dnsmasq 来分配 IP 地址。
2)、Bridge 模式(去 NAT):需要规划
在雪球我们对 Bridge 模式去掉了 NAT,也即把宿主机的 IP 从物理网卡上移除,直接配置到网桥上去,并且使用静态的 IP 分配策略。这样的好处是 Docker 的 IP 可以直接暴露到交换机上。
个人说明:docker网络配置同kvm的网络配置,例如桥接前eth0的静态ip是172.22.2.92,那么配置桥接br0的静态ip应为172.22.2.92,而桥接后eth0没有ip。
新创建的容器的ip也是172.22.2.0/24中的一个(172.22.2.2),其他物理机的ip段不能和172.22.2.0/24一样,可以是172.22.3.0/24等,172.22.0.0/16段内的物理机都是可以通的,因为有【交换机】把172.22.2.0/24和172.22.3.0/24等段连接起来的
3)、端口映射:
端口映射方案不容易做服务发现,雪球并没有使用。
其中去 NAT 的 Bridge 模式需要在宿主机上禁用 iptables 和 ip_forward,以及禁用相关的内核模块,以避免网络流量毛刺风暴问题。