容器网络如何选择?容器云平台的网络一直是一个技术难题,是采用SDN网络还是桥接到Underlay网络;如果使用SDN网络,那么多的SDN网络实现方案,如何选择?
1. 既然是说容器云平台建设,肯定已经有了网络基础设施,那不考虑数据中心级别的SDN方案。只考虑在已有的网络建设成果上建设;
2. 不用迷信商业方案,无论是开源还是商业方案,大家都得遵守k8s的cni接口。不建议在容器网络方案中寄托太多的功能,如网络限速、安群策略等等。
3. 考虑目前主机层面大都可以保障二层是通的。最简单方案方案可以选flannel。目前flannel发展到现在,已经支持vxlan模式下启用DR网络了,通俗讲,就是同一子网下,走hostgw,宿主机充当软路由,性能接近裸网,垮子网的情况走vxlan。即兼顾了性能,又考虑了可扩展性。另外flannel目前也重点优化了大规模容器云的路由表或arp占用过多问题,做到了:每扩展一个主机只增加一个路由项、一个fdb项、一个arp项。
4. 如果考虑容器网络隔离和安全策略的话(其实没必要,网络隔离,可以从项目级别来设置调度策略做到物理隔离),可以考虑Canal网络方案,他是calico和flannel的结合体。