9. 組件和框架簡介

OPENSTACK組件介紹:

keystone

swift

glance

cinder

nova

neutron

 

swift 對象存儲

glance 鏡像管理

cinder 雲硬盤管理 block存儲

nova  計算服務管理

neutron 網絡管理

 

 

glance裏面是需要去keystone認證鑑權的,如下: 鑑權uri,用戶,密碼,以及租戶名稱:tenantname

其他的服務也需要到keystone來認證鑑權的。

 

openstack 框架介紹:

控制節點

網絡節點

存儲節點

計算節點

 

 

neutron是負責網絡的,但是neutron這個組件裏面包含了很多個服務

neutron-server 是控制節點運行的服務

neutron-dhcp,neutron-l3,neutron-metadata是網絡節點的服務,neutron-ovs-agent是計算節點運行的服務

 

nova服務

 

openstack-nova-compute.service 是運行在計算節點的。

 

所有的這些組件想合法工作的話,必須和keystone進行註冊。

 

AMQP: 高級消息隊列協議

兩種實現方式:rabbitmq和qpid

 

所有相關服務都需要連接到AMQP,使得服務之間可以通信,如果沒有AMQP,它們之間是不能通信的。

 

 

Keystone功能介紹與認證實現流程

 

Keystone這個子項目爲Openstack通過了Account、Authentication、Authorization服務——簡稱3A。在安裝OpenStack Identityservice後,其他的OpenStack service必須要在Identity service中註冊才能被使用。

 

Identity service功能列表:

 

身份認證(Authentication):令牌的發放和校驗

用戶授權(Authorization):授予用戶在一個服務中所擁有的權限

用戶管理(Account)

服務目錄(Service Catalog):包含可用服務的API point

Keystone認證服務中的概念

 

User(用戶):一個People or System orService在OpenStack中的數字表示。用於身份認證,也能夠通過爲登錄到Openstack的用戶分配令牌環,以此獲得訪問資源的權限。同一個用戶可以被關聯到給若干個租戶,就像用戶可以隸屬於若干個不同的組。

 

Tenant(租戶):一個資源或對象的抽象表示。租戶可以包含多個用戶,不同租戶之間相互隔離。根據service運行的需求,租戶可以映射爲賬戶、組織、項目或服務。

 

Role(角色):可定製化的包含有特定用戶權限的權限集合,可以關聯到若干個User-Tenant對,來爲User-Tenant對賦予權限。

 

Token(令牌):用於限定User-Tenant對進行OpenStack API和資源訪問的字符串表示。一個臨牌會持續一段時間有效,也可以隨時撤銷。

 

Credentials(憑證):用於確認用戶身份的數據,例如:Username/Password

 

Authentication(檢驗):是確定用戶身份的過程。

 

Service(服務):Openstack service,即Openstack中運行的組件服務。

 

Endpoint(端點):一個可以通過網絡來訪問和定位某個Openstackservice的地址,通常是一個URL。使用RESTful的設計思想,詳見RESTful_URI資源 。

 

Keystone Client(Keystone CLI):Keystone的命令行工具,可以完成諸如創建用戶,角色,服務和端點等絕大多數的Leystone管理功能,是非常常用的CLI接口。

 

 

 

簡單來說

 

User 使用憑證(username/password) 到 keystone 驗證並獲得一個臨時的 Token 和 Generic catalog(全局目錄)

,臨時的 Token 會存儲在keystone-client(cache UUID locally) 和 keystone-backend 中。

User 使用這個臨時 Token 發送給 keystone 並獲得一個該 User 能訪問的 Tenants 列表

User 再跟 keystone 發送一個請求,表明希望訪問的 Tenants

keystone 就會向 User 發送一個管理這個 Tenants 的 Services 列表和允許訪問這個 Tenants 的 Token (TenantsToken)

User 會通過這個 Services 和 Generic catalog(全局目錄) 映射找到 Services 的 endpoint,並通過 endpoint 找到實際 Services 組件的位置

然後 User 再拿着 Tenant Token 和 endpoint 來訪問實際上的 Service 組件

Service 組件會拿着這個 User-Tennat Token 對到 keystone 做進一步的驗證(Openstack 要保證每一步操作都是安全的)

如果通過了 7. 的驗證的話,keystone 會返回一系列的確認信息和附加信息(User 希望操作的內容)給 Services

最後 Services 執行一系列的操作

 

發佈了56 篇原創文章 · 獲贊 9 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章