1,Difficulties with traditional overlay networks
https://www.projectcalico.org/learn/
Traditional virtual infrastructures have offered a LAN-like (Layer 2) experience to users configuring multiple workloads. This may require several layers of virtual LANs, bridging and tunnelling to make Layer 2 networking work across multiple physical hosts. This presents a range of problems.
关于Calico的原理:
Calico把每个操作系统的 协议栈 认为是一个 路由器 ,然后把所有的 容器 认为是连在这个路由器上的 网络终端 ,在路由器之间跑标准的路由协议——BGP的协议,然后让它们自己去学习这个网络拓扑该如何转发。所以Calico方案其实是一个纯三层的方案,也就是说让每台机器的协议栈的三层去确保两个容器,跨主机容器之间的三层连通性。
https://www.projectcalico.org/learn/
Traditional virtual infrastructures have offered a LAN-like (Layer 2) experience to users configuring multiple workloads. This may require several layers of virtual LANs, bridging and tunnelling to make Layer 2 networking work across multiple physical hosts. This presents a range of problems.
- Scale challenges above few hundred servers / thousands of workloads.
- Difficult to troubleshoot due to packet encapsulation.
- On/off-ramp device (or virtual router hop) required to access non-virtualized devices.
- Every node in the network is state-heavy (e.g. VLANs, tunnels).
- Virtual NAT device required to connect a workload to a public “floating IP”.
- High availability / load balancing across links requires additional LB function and/or app-specific logic.
- Geographically distributed data centers require inter-DC tunnels.
- CCNA or equivalent required to understand end-to-end networking
关于Calico的原理:
Calico把每个操作系统的 协议栈 认为是一个 路由器 ,然后把所有的 容器 认为是连在这个路由器上的 网络终端 ,在路由器之间跑标准的路由协议——BGP的协议,然后让它们自己去学习这个网络拓扑该如何转发。所以Calico方案其实是一个纯三层的方案,也就是说让每台机器的协议栈的三层去确保两个容器,跨主机容器之间的三层连通性。