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。

Midonet - 图1

Midonet - 图2

Docker/Kubernetes集成

Midonet作为Kuryr的一个driver,通过kuryr-libnetworkkuryr-kubernetes应用到容器中。

其他方法:

参考文档