跳转至

网络模式对比

网络模式

BGP 模式

image-20231128111503233

基于 BGP 的纯三层网络方案,其会为每个容器(pod)分配一个可路由的 IP,在通信时不需要解包和拆包,因此网络性能损耗小,易于排查和水平扩展

IPIP 模式简介

image-20231128111442151

将一个 IP 数据包套在另一个 IP 包里,使用到了 Linux 提供的隧道技术。可以理解为一个基于 IP 层的网桥,将两个本不通的网络通过点对点连接起来

通往其他节点路由通过 tunl0 网卡出去

VXLAN 模式

image-20231128111414910

VXLAN 与 IPIP 模式类似,只是底层使用 VXLAN 技术来实现转发

已知缺陷

使用宿主机 hostport 或者 hostnetwork 时,会发生 TCP 63s delay 异常,

参考:

需要升级内核到 5.6.13, 5.4.41, 4.19.123, 4.14.181

部署文件参考

export INST_CALICO_VERSION=v3.26.1

# BGP
kubectl apply -f https://raw.githubusercontent.com/projectcalico/calico/${INST_CALICO_VERSION}/manifests/calico-vxlan.yaml

# vxlan
kubectl apply -f https://raw.githubusercontent.com/projectcalico/calico/${INST_CALICO_VERSION}/manifests/calico-vxlan.yaml

参考资料

https://zhdya.gitee.io/zhdya/2020/10/01/calico%20ipip&bgp%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95/