挑号网站后台怎么更新,织梦能不能做门户网站,网站建设主要问题及建议,做计算机网站 第一个问题位置变化#xff0c;往往是通过一个称为注册中心的地方统一管理的#xff0c;这个是应用自己做的。当一个应用启动的时候#xff0c;将自己所在环境的 IP 地址和端口#xff0c;注册到注册中心指挥部#xff0c;这样其他的应用请求它的时候#xff0c;到指挥… 第一个问题位置变化往往是通过一个称为注册中心的地方统一管理的这个是应用自己做的。当一个应用启动的时候将自己所在环境的 IP 地址和端口注册到注册中心指挥部这样其他的应用请求它的时候到指挥部问一下它在哪里就好了。当某个应用发生了变化例如一台机器挂了容器要迁移到另一台机器这个时候 IP 改变了应用会重新注册则其他的应用请求它的时候还是能够从指挥部得到最新的位置。 Flannel 使用 UDP 实现 Overlay 网络的方案。 在物理机 A 上的容器 A 里面能看到的容器的 IP 地址是 172.17.8.2/24里面设置了默认的路由规则 default via 172.17.8.1 dev eth0。
如果容器 A 要访问 172.17.9.2就会发往这个默认的网关 172.17.8.1。172.17.8.1 就是物理机上面 docker0 网桥的 IP 地址这台物理机上的所有容器都是连接到这个网桥的。
在物理机上面查看路由策略会有这样一条 172.17.0.0/24 via 172.17.0.0 dev flannel.1也就是说发往 172.17.9.2 的网络包会被转发到 flannel.1 这个网卡。
这个网卡是怎么出来的呢在每台物理机上都会跑一个 flanneld 进程这个进程打开一个 /dev/net/tun 字符设备的时候就出现了这个网卡。
物理机 A 上的 flanneld 会将网络包封装在 UDP 包里面然后外层加上物理机 A 和物理机 B 的 IP 地址发送给物理机 B 上的 flanneld。
物理机 B 上的 flanneld 收到包之后解开 UDP 的包将里面的网络包拿出来从物理机 B 的 flannel.1 网卡发出去。
在物理机 B 上有路由规则 172.17.9.0/24 dev docker0 proto kernel scope link src 172.17.9.1。
将包发给 docker0docker0 将包转给容器 B。通信成功。
上面的过程连通性没有问题但是由于全部在用户态所以性能差了一些。
如果使用 VXLAN就不需要打开一个 TUN 设备了而是要建立一个 VXLAN 的 VTEP。如何建立呢可以通过 netlink 通知内核建立一个 VTEP 的网卡 flannel.1。
当网络包从物理机 A 上的容器 A 发送给物理机 B 上的容器 B在容器 A 里面通过默认路由到达物理机 A 上的 docker0 网卡然后根据路由规则在物理机 A 上将包转发给 flannel.1。这个时候 flannel.1 就是一个 VXLAN 的 VTEP 了它将网络包进行封装。
内部的 MAC 地址这样写源为物理机 A 的 flannel.1 的 MAC 地址目标为物理机 B 的 flannel.1 的 MAC 地址在外面加上 VXLAN 的头。
外层的 IP 地址这样写源为物理机 A 的 IP 地址目标为物理机 B 的 IP 地址外面加上物理机的 MAC 地址。
这样就能通过 VXLAN 将包转发到另一台机器从物理机 B 的 flannel.1 上解包变成内部的网络包通过物理机 B 上的路由转发到 docker0然后转发到容器 B 里面。通信成功。 此文章为9月Day30学习笔记内容来源于极客时间《趣谈网络协议》推荐该课程。