host-gw 模式

host-gw 模式

最后一种 host-gw 模式是一种纯三层网络方案。其工作原理为将每个 Flannel 子网的“下一跳”设置成了该子网对应的宿主机的 IP 地址,这台主机会充当这条容器通信路径里的“网关”。这样 IP 包就能通过二层网络达到目的主机,而正是因为这一点,host-gw 模式要求集群宿主机之间的网络是二层连通的,如下图所示。

host-gw 模式

宿主机上的路由信息是 flanneld 设置的,因为 flannel 子网和主机的信息保存在 etcd 中,所以 flanneld 只需要 watch 这些数据的变化,实时更新路由表即可。在这种模式下,容器通信的过程就免除了额外的封包和解包带来的性能损耗。

Node 1 上的 Pod 1 请求 Node 2 上的 Pod 2 时,流量的走向如下:

  • Pod 1 里的进程发起请求,发出 IP 包,从网络层进入链路层封装成帧;
  • 根据主机上的路由规则,数据帧从 Node 1 通过宿主机的二层网络到达 Node 2 上;
下一页