本节开始讨论 Neutron 的各个服务组件,首先学习 Neutron Server 。
上图是 Neutron Server 的分层结构,至上而下依次为:
Core API对外提供管理 network, subnet 和 port 的 RESTful API。
Extension API对外提供管理 router, load balance, firewall 等资源 的 RESTful API。
Commnon Service认证和校验 API 请求。
Neutron CoreNeutron server 的核心处理程序,通过调用相应的 Plugin 处理请求。
Core Plugin API定义了 Core Plgin 的抽象功能集合,Neutron Core 通过该 API 调用相应的 Core Plgin。
Extension Plugin API定义了 Service Plgin 的抽象功能集合,Neutron Core 通过该 API 调用相应的 Service Plgin。
Core Plugin实现了 Core Plugin API,在数据库中维护 network, subnet 和 port 的状态,并负责调用相应的 agent 在 network provider 上执行相关操作,比如创建 network。
Service Plugin实现了 Extension Plugin API,在数据库中维护 router, load balance, security group 等资源的状态,并负责调用相应的 agent 在 network provider 上执行相关操作,比如创建 router。
归纳起来,Neutron Server 包括两部分: 1. 提供 API 服务。 2. 运行 Plugin。
即 Neutron Server = API + Plugins
明白了 Neutron Server 的分层模型,我们就更容易理解 Neutron 是如何支持各种 network provider。这一点我们放到下节详细讨论。