💡
原文中文,约5800字,阅读约需14分钟。
📝
内容提要
本文介绍了Calico插件在k8s中的使用,主要讲解了BGP模式和IPIP模式的原理和解决方案。
🎯
关键要点
- Calico是k8s中常用的容器解决方案插件,主要介绍BGP模式和IPIP模式的原理和解决方案。
- Calico采用纯3层网络模型,容器通过IP直接通信,节点类似传统路由器,提供路由查找功能。
- Calico使用标准BGP路由协议替代FlannelHost Gateway模式,实现高速跨节点网络。
- BGP是一种自治系统间的路由协议,用于交换路由信息。
- 在不支持BGP的网络中,可以使用IPIP隧道模式传输数据。
- Felix是Calico节点上的守护程序,负责刷新主机路由和ACL规则,管理网络连接。
- 每个节点部署BGP客户端,读取Felix写入的路由信息并进行分发。
- Node-to-Node Mesh模式下,所有节点的BGP客户端需互相通信,连接数随节点增加呈N^2增长。
- BGP Route Reflector模式通过指定节点交换路由信息,减少网络压力。
- 每个容器创建veth pair网卡,容器内发送的IP包通过veth pair到达宿主机网络协议栈。
- 通过设置proxy_arp,容器可以响应ARP请求,确保数据包能够正确到达目标容器。
- 在Node1和Node2之间进行ping测试,验证网络配置的有效性。
- IPIP隧道模式通过在物理机之间打隧道,封装容器IP,实现跨物理机的网络通信。
➡️