天天看點

《OpenStack雲計算實戰手冊(第2版)》一1.8 定義服務端點

本節書摘來異步社群《openstack雲計算實戰手冊(第2版)》一書中的第1章,第1.8節,作者: 【英】kevin jackson , 【美】cody bunch 譯者: 黃凱 , 杜玉傑 責編: 楊海玲,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

openstack雲計算實戰手冊(第2版)

雲環境中的每一個服務都運作在一個特定的url和端口上,也就是這些服務的端點位址。當一個用戶端程式連到雲環境中時,keystone身份認證服務負責向其傳回雲環境中的各個服務的端點位址,以便用戶端程式使用這些服務。為啟用該功能,必須先定義這些端點。在雲環境中,可以定義多個區域,可以把不同的區域了解為不同的資料中心,它們各自有不同的url和ip位址。在openstack身份認證服務裡,還可以在每一個區域裡定義分别定義url端點。在這裡,隻有一個區域,辨別為regionone。

準備工作

在開始之前,必須确認已經登入到安裝了openstack身份認證服務的openstack控制節點上,或者有一個已經連接配接到安裝了openstack身份認證服務的伺服器上的ubuntu用戶端。

登入到使用vagrant建立的openstack控制節點,執行以下指令:

如果keystone用戶端工具尚未安裝,則可以通過如下指令在ubuntu用戶端上安裝以便管理openstack身份認證服務:

確定已經設定了正确的環境變量,能通路到openstack環境。

操作步驟

通過運作keystone用戶端指令在openstack身份認證服務中定義各個服務和服務端點,這些定義對應了雲環境中運作的各個服務以及它們的url。即使某些服務現在還沒有在雲環境中運作起來,也可以先在openstack身份認證服務中配置好,以便将來使用。通過如下步驟來在openstack環境中為各個服務定義端點。

1.現在來定義一些雲環境中openstack身份認證服務需要知道的服務。

2.逐個添加上述服務對應的服務端點。添加服務端點時需要用到各個服務的id号,這些id号在上一步指令操作之後會分别被傳回輸出。它們是配置服務端口url的指令中的參數。

openstack身份認證服務可以被配置成在三個url上接受服務請求:一個面向公有的url(被終端使用者使用),一個面向管理者url(被以管理者權限登入的使用者使用,可以是一個不同的url),以及一個面向内部的url(當這些服務是在公有的url的防火牆内提供服務時)。

對于下面的服務,我們根據自己的環境需求将公有的和内部的服務url配置成相同的内容。

輸出如圖1-5所示。

《OpenStack雲計算實戰手冊(第2版)》一1.8 定義服務端點

3.繼續定義服務端點的剩餘部分,具體步驟如下:

工作原理

在openstack身份認證服務中配置服務和端點是通過keystone用戶端指令來完成的。首先通過keystone用戶端的service-create選項來添加服務,文法如下所示:

service_name可以是任意的名字和标簽用以辨別服務的類型。在定義端點的時候,可以通過這個名字來取得它對應的id号。

type選項可以是下列幾個選項中的一個:compute、object-store、image-service和identity-

service。注意,在這一步沒有配置openstacke的對象存儲服務(type是object-store)或cinder。

description字段同樣是一個任意字段,用于描述該服務。

添加好各個服務之後,通過keystone用戶端的endpoint-create選項來定義各個服務對應的端點。隻有這樣,openstack身份認證服務才能知道如何通路它們。文法如下所示:

service_id是在第一步裡建立的服務的id号。可以通過如下指令來列出所有服務和它們對應的id号:

openstack被設計為一個适合全球部署的系統,一個區域(region)可以表示一個實際的資料中心或者一個包含多個互相連通的資料中心的地域範圍。在這裡,僅定義一個區域——regionone。region字段可以是任意的名字,用于辨別資料中心/地域,可以通過這個字段來告知用戶端使用哪些區域。所有的服務都可以被配置成運作在三個不同url之上,如下所述,這取決于人們希望如何來配置openstack雲環境。

public_url是供終端使用者連接配接的url。在一個公有雲環境中,公有的url會被解析成公有的ip位址。

admin_url隻用于管理者通路。在公有部署中,通常會配置一個和public_url不同的

admin_url。有些子產品的管理服務有不同的uri,這就需要配置這個屬性。

internal_url隻用與本地私有網絡。通過internal_url,你可以從雲環境内部連接配接到各個服務,而不需要外部位址空間,是以避免了交換資料的傳輸過程暴露在網際網路上。這也帶來了更好的安全性和更少的複雜性。

繼續閱讀