calico--容器跨主机网络通信方案
calico的网络解决方案与flannel的host-gw的工作模式,几乎是完全一样的;
calico也会在每台宿主机上,添加和host-gw一样的路由规则,如下所示:
< 目的容器 IP 地址段 > via < 网关的 IP 地址 > dev eth0
重要概念:
BGP:边界网关协议,Linux内核原生支持、专门在大规模数据中心里维护不同“自治系统”之间路由信息的、无中心的路由协议;
它跟普通路由器的不同之处在于,它的路由表里拥有其他自治系统里的主机路由信息。
简单的来说:BGP就是在大规模网络中实现节点路由信息共享的一种协议
如图所示:
10.10.0.2想要到达172.17.0.3;需要通过Router1的C接口,发送网关Router2;Router2根据自己的路由表,发给172.17.0.3;
反过来,172.17.0.3想要访问10.10.0.2,需要在Router2添加一条路由,比如在Router2的C接口发给Router1;
在示例中,自动同步各自路由信息,我们把它形象的称为:边界网关
calico的重要组件:
felix:在每个节点运行,负责在当前节点插入路由规则
bird:BGP的客户端,专门负责向集群中其它节点分发路由规则信息
注:calico不会像flannel那样,创建任何网桥设备,直接通过route规则发送数据
BGP工作模式:
bgp工作模式和flannel的host-gw模式几乎一样;
bird是bgd的客户端,与集群中其它节点的bird进行通信,以便于交换各自的路由信息;
随着节点数量N的增加,这些路由规则将会以指数级的规模快速增长,给集群本身网络带来巨大压力,官方建议小于100个节点;
限制:和flannel的host-gw限制一样,要求物理机在二层是连能的,不能跨网段;
Route Reflector模式:
在更大规模的集群中,需要通过Route Reflector模式专门创建一个或者几个专门的节点,负责跟所有的BGP客户端建立连接,从而学全全局的路由规则;
而其它节点,只需要跟这几个专门的节点交换路由信息,就可以获得整整个集群的路由信息
IPIP模式:
场景:用在跨网段通信的情况下,bgp模式在跨网段的场景将不能工作;
tunl0:创建的虚拟网卡设备,此时的作用就和flannel的VxLAN工作模式类似(此处的tunl0不是flannel的UDP模式中的tun0)
增加的路由规则会通过tunl0,如下所示:
10.233.2.0/24 via 192.168.2.2 tunl0
- calico 跨主机容器网络通信
- docker应用-5(使用overlay 网络进行容器间跨物理主机通信)
- Docker网络基础---Docker跨主机容器访问通信
- Docker网络管理及容器跨主机通信(四)
- Docker网络管理及容器跨主机通信
- Docker实现跨主机容器实例网络通信(1)——利用LinuxBridge构建多主机Docker网络
- Docker网络管理及容器跨主机通信
- Docker网络管理及容器跨主机通信(四)
- centos7下安装docker(15.7容器跨主机网络---calico)
- Docker 网络管理及容器跨主机通信
- Docker跨主机网络通信方案
- Docker实现跨主机容器实例网络通信(2)——利用OpenVSwitch构建多主机Docker网络
- 容器跨主机通信之Calico
- Overlay网络-容器跨主机通信
- docker应用-5(使用overlay 网络进行容器间跨物理主机通信)
- docker应用-5(使用overlay 网络进行容器间跨物理主机通信)
- Docker跨主机网络通信方案
- overlay 如何实现跨主机通信?- 每天5分钟玩转 Docker 容器技术(52)
- vmware workstation 9.0.2中 虚拟机上网以及与宿主主机通信问题解决方案【2】
- Docker容器学习梳理--容器间网络通信设置