flannel 和 ovs 网络的区别

1)配置是否自动化:flannel 除了支持建立覆盖网络来实现 Pod 到 Pod 之间的无缝通信之外,还跟 docker、k8s 的架构体系紧密结合,flannel 能感知 k8s 中的 service 对象,然后动态维护自己的路由表,并通过 etcd 来协助 docker 对整个 k8s 集群的 docker0 网段进行规范,OpenvSwitch(ovs)作为开源的交换机软件,相对比较成熟和稳定,支持各种网络隧道和协议,经历了大型项目 OpenStack 的考验,而 而 ovs ,这些操作则需要手动完成,假如集群中有 N 个节点,则需要建立 N(N-1)/2 个 Vxlan 或者 gre 连接,这取决于集群的规模,如果集群的规模很大,则必须通过自动化脚本来初始化,避免出错。

2)是否支持隔离:flannel 虽然很方便实现 Pod 到 Pod 之间的通信,但不能实现多租户隔离,也不能很好地限制 Pod 的网络流量,而 ovs 网络有两种模式:单租户模式和多租户模式,单租户模式直接使用 openvswitch + vxlan 将 k8s 的 pod 网络组成一个大二层,所有的 pod 可以互相通信访问,多租户模式以 Namespace 为维度分配虚拟网络,从而形成一个网络独立用户,一个 Namespace 中的 pod 无法访问其他 Namespace 中的 pod 和 svc 对象;

posted @ 2024-03-11 15:52  Mr.peter  阅读(41)  评论(0编辑  收藏  举报