Midonet
Midonet是Midokura公司开源的OpenStack网络虚拟化方案。
- 从组件来看,Midonet以Zookeeper+Cassandra构建分布式数据库存储VPC资源的状态——Network State DB Cluster,并将controller分布在转发设备(包括vswitch和L3 Gateway)本地——Midolman(L3 Gateway上还有quagga bgpd),设备的转发则保留了ovs kernel作为fast datapath。可以看到,Midonet和DragonFlow、OVN一样,在架构的设计上都是沿着OVS-Neutron-Agent的思路,将controller分布到设备本地,并在neutron plugin和设备agent间嵌入自己的资源数据库作为super controller。
- 从接口来看,NSDB与Neutron间是REST API,Midolman与NSDB间是RPC,这俩没什么好说的。Controller的南向方面,Midolman并没有用OpenFlow和OVSDB,它干掉了user space中的vswitchd和ovsdb-server,直接通过linux netlink机制操作kernel space中的ovs datapath。
Docker/Kubernetes集成
Midonet作为Kuryr的一个driver,通过kuryr-libnetwork和kuryr-kubernetes应用到容器中。
其他方法:
- Midonet通过https://github.com/midonet/bees,已不再更新。
- Midonet通过k8s-midonet与Kubernetes集成,已不再更新。
参考文档
- https://www.midonet.org/
- http://www.sdnlab.com/16974.html
- https://blog.midonet.org/introduction-mns-overlay-network-models-part-1-provider-router/
- https://blog.midonet.org/introduction-mns-overlay-network-models-part-2-tenant-routers-bridges/
- https://docs.midonet.org/docs/latest/reference-architecture/content/index.html