簡體   English   中英

keystone OpenStack中端點,區域等之間的關系

[英]The relationship between endpoints, regions, etc in keystone OpenStack

我真的想了解關鍵點的關鍵點,關於端點,區域,租戶,服務,用戶和角色之間的關系。 我試圖找到相關的文件,但遺憾的是,失敗了。

任何人都可以提供任何指示或解釋嗎?

Keystone是OpenStack的身份管理服務。

從本質上講,它的作用是向用戶授予令牌,無論是人員,服務還是其他任何東西。

如果您在OpenStack中的任何位置進行API查詢,那么如果允許您進行API查詢,則會發現keystone的API。

讓我們從地面開始工作。

用戶。 今天Keystone的用戶通常都是人。 目前還沒有足夠的細粒度ACL支持來真正地將OpenStack中的許多用戶稱為傳統意義上的“服務”帳戶。 但是有一個服務帳戶用作Keystone API的回程連接,作為OpenStack基礎架構本身的一部分。 我們將避免鑽研那個異常的用戶。

當用戶向Keystone進行身份驗證時(你通過OS_AUTH_URL與keystone通信,通常是keystone api框的5000端口),用戶說“我是用戶X,我有密碼Y,我屬於租戶Z” 。

X可以是用戶名或用戶ID(用戶的唯一uuid)Y是密碼,但您也可以使用令牌進行身份驗證。 Z是租戶名稱或租戶ID(租戶的唯一uuid)。 在過去的Keystone API中,您不需要指定租戶名稱,但如果您沒有將令牌用於租戶,則您的令牌將不會非常有用,因此您將被拒絕任何ACL承租人。

所以...用戶是一個相當明顯的事情。 密碼是一個相當明顯的事情。 但是租客是什么?

一個租戶也被稱為一個項目。 事實上,一直有人試圖讓這個名字成為租戶或項目,但由於無法堅持一個術語,他們都意味着同樣的事情。 就API而言,項目是租戶。 因此,如果您登錄地平線,您將看到項目的下拉列表。 每個項目對應一個租戶ID。 您的令牌也與特定的租戶ID相關聯。 因此,如果您打算處理用戶所連接的多個租戶,則可能需要為用戶提供多個令牌。

現在,假設您將用戶添加到管理員的租戶ID。 該用戶是否獲得管理員權限? 答案是不。 這就是角色發揮作用的地方。 雖然管理員租戶中的用戶可以訪問管理虛擬機和用於啟動虛擬機的配額,但用戶將無法執行查詢用戶列表的keystone等操作。 但是,如果您向該用戶添加管理員角色,他們將被賦予ACL權限,以充當keystone API和其他API中的管理員。 因此,將租戶視為一種資源組,將角色視為ACL集。

區域更像是在openstack基礎架構環境中對物理資源進行地理分組的方式。 假設您有兩個分段數據中心。 你可以在openstack環境的區域A和區域B中的另一個區域中放置一個。區域的有用性正在迅速發展,特別是在最近的openstack版本中引入了單元和域。 除非您打算構建大型雲,否則您可能不需要掌握這些知識。

keystone提供了最后一個有用的東西。 目錄。 keystone目錄有點像openstack API的電話簿。 無論何時使用命令行客戶端,比如可以調用nova list列出實例,nova首先對keystone進行身份驗證並獲取使用API​​的令牌,但它也會立即向keystone目錄請求API端點列表。 對於keystone,cinder,nova,glance,swift等等,nova實際上只會使用nova-api端點,但根據您的查詢,您可以使用keystone管理API端點....我們將回到那個。 但基本上,目錄是API在世界上的典型信息來源。 這樣,您只需要告訴客戶端keystone的公共API端點在哪里,並且可以從目錄中找出其余部分。

現在,我已經參考了公共API和keystone的管理API。

是的keystone有兩個API ......有點像。 它在端口5000上運行API,在32000范圍內運行另一個API。 5000是公共港口。 您可以在此處查找目錄,並請求令牌,以便與其他API進行通信。 它非常簡單,有點硬化。 管理API將用於更改用戶密碼或向用戶添加新角色等操作。

挺直的?

遲到的回復,但我希望它有助於未來的讀者。

端點就像是您使用服務的聯系點。 adminurl,因為名稱僅適用於管理員用戶。 內部網址用於各種服務,如果他們必須與對方交談,並且公共網址供其他人使用。

為什么你需要獨立的公共和內部URL解釋這里

您不必為服務端點分配角色。 您將角色分配給訪問該服務的用戶, 就是您的操作方式。

是我了解openstack keystone中的租戶,用戶,角色和權限的方式。 你也可能覺得它很有趣。

我會嘗試用外行的語言。

服務 - Openstack需要大量服務才能實現雲基礎架構(計算,存儲和網絡)。 為了使它們能夠順利地進行細粒度控制,Openstack使用了服務的概念。 服務使最終用戶能夠操縱這3個核心資源中的一個。 例如:對於存儲,使用cinder和swift服務。 這些服務還可以配置為在后端使用Ceph或gluster。

端點 - 您進入openstack服務以執行有用或破壞性操作的點。 服務可能正在運行,但要“進入”,需要一個端點,它看起來像http:// my-fancy-IP:hard-to-remember-port-number / v3.0 那么,在Openstack系統中是否為特定的openstack服務創建了端點? 無法訪問該服務。

地區 - 與地理位置或位置無關。 用於划分/分組完整openstack部署的術語,如果您碰巧有許多部署。 划分可以基於物理服務器的位置。

用戶 - 最終用戶或您。

項目/租戶 - 用於分隔資源的容器(計算,存儲網絡)

域 - 項目,組和用戶組。 為用戶提供資源分離,可以容納多個項目。 具有域管理員角色的用戶可以創建/刪除/更新該特定域中的任何項目,用戶,組等。

角色 - 您對openstack服務執行任何操作的權利。 想想角色,想想用戶。

令牌 - 它是由keystone給出的ID(長字符串)。 您可以根據使用此令牌分配給您的角色訪問任何openstack服務。

例如,你可以請求nova並說,嘿nova我從keystone獲得了token1。 我想刪除“永遠不會刪除我”的服務器。 Nova接受token1並說,嘿keystone,這個用戶有token1並想要刪除服務器'永遠不要刪除我'.Keystone,查看token1並根據分配給用戶的角色,會說, ok nova允許/不允許用戶刪除“永遠不會刪除我”服務器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM