
本節開始討論 Neutron 的各個服務組件,首先學習 Neutron Server 。
上圖是 Neutron Server 的分層結構,至上而下依次為:
Core API
對外提供管理 network, subnet 和 port 的 RESTful API。
Extension API
對外提供管理 router, load balance, firewall 等資源 的 RESTful API。
Commnon Service
認證和校驗 API 請求。
Neutron Core
Neutron 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。
這一點我們放到下節詳細討論。
