docker的网络,不论是K8S还是swarm格式,拆解后都是kernel基本概念,把这些概念都掌握后就对网络都理解了,基本概念就是:拿软件去模拟硬件中的各种设备,主要有如下概念network namespace:主要用于隔离网络名字空间,可以使用命令 ip netns 查看,如果显示为空,可执行ln -s /run/docker...
显示全部docker的网络,不论是K8S还是swarm格式,拆解后都是kernel基本概念,把这些概念都掌握后就对网络都理解了,基本概念就是:拿软件去模拟硬件中的各种设备,主要有如下概念
- network namespace:主要用于隔离网络名字空间,可以使用命令 ip netns 查看,如果显示为空,可执行ln -s /run/docker/netns /run/后再执行 ip netns,主要用于网络隔离;
- veth:可以理解为一根虚拟网线,网线两端分别插在不同network namespace,主要用于连通隔离的两个网络
- bridge:brctl show查看网桥,将多个网络连接在一起,用于二层网络的连接;
- overlay: GRE或者VXLAN,或者最近流行的MACLAN,都是在三层上面实现二层功能;
- NAT: 通过iptables 进行NAT转发
6.ipvs:kenel内核功能,在docker swarm模式中用作ingress网络,其中还用了iptable的mangle
网络的理解最好是按照上述的概念逐步画出逻辑图,如果熟悉上述概念,你会发现所有的网络基本上就是这些东西组成的
收起