關於植物、區域、Pod、機構、環境和虛擬主機

私有雲的邊緣 4.16.09 版

地端部署安裝 Edge Private Cloud (或稱 Edge 執行個體),由安裝在一組伺服器節點中的多個 Edge 元件組成。下圖顯示構成 Edge 執行個體的地球、區域、Pod、機構、環境與虛擬主機之間的關係:

下表說明這些關係:

包含

相關聯的

預設

行星

一或多個區域

n/a

區域

一或多個 Pod

「dc-1」

Pod

一或多個 Edge 元件

"central"
"gateway"
"analytics"

機構組織

一或多個環境

一或多個包含「訊息處理器」的 Pod,以及擔任機構管理員的使用者

環境

一或多個虛擬主機

與上層機構相關聯的 Pod 中的一或多個訊息處理器

虛擬主機

一或多個主機別名

關於星球

「飛機」代表整個 Edge 硬體和軟體環境,可包含一或多個區域。在 Edge 中,地球是按照邏輯組成的區域群組,您不必在安裝 Edge 時明確建立或設定星球。

區域簡介

「地區」是一組一或多個 Pod 的群組。根據預設,當您安裝 Edge 時,安裝程式會建立一個名為「dc-1」的單一區域,其中包含三個 Pod,如下表所示:

區域

區域中的 Pod

「dc-1」

「gateway」、「central」、「analytics」

下圖顯示預設區域:

此圖片顯示負載平衡器將流量導向至「閘道 Pod」的 Pod。「閘道」Pod 包含處理 API 要求的邊緣路由器和訊息處理器元件。除非您定義多個資料中心,否則您不需要建立其他區域。

如果是較複雜的安裝,您可以建立兩個以上的區域。建立多個區域的理由之一,是依地理位置管理機器,盡可能縮短網路傳輸時間。在這個情境中,您可以託管 API 端點,讓這些端點與這些 API 的使用者距離地理位置相近。

在邊緣,每個區域稱為「資料中心」。接著,美國東部的資料中心可以處理從麻薩諸塞州波士頓出發的要求,新加坡的資料中心則能處理來自亞洲裝置或電腦的要求。

例如,下圖顯示兩個對應兩個資料中心的區域:

關於 Pod

「Pod」是由一或多個 Edge 元件和 Cassandra 資料儲存庫分組。Edge 元件可安裝在同一個節點上,但比較經常安裝在不同節點上。Cassandra 資料儲存庫是 Pod 中 Edge 元件使用的資料存放區。

根據預設,在安裝 Edge 時,安裝程式會建立三個 Pod,並將下列 Edge 元件和 Cassandra 資料儲存庫與每個 Pod 建立關聯:

Pod

邊緣元件

Cassandra 資料儲存庫

"gateway"

路由器、訊息處理器

cache-datastore
counter-datastore
dc-datastore

keyvaluemap-datastore
公里 s-datastore

"central"

Management Server、Zookeeper、LDAP、UI、Qpid

application-datastore
apimodel-datastore
audit-datastore

auth-datastore
management-server
user-settings-datastore

"analytics"

Postgres

analytics-datastore

reportcrud-datastore

需要進行 API 處理作業,才能使用「閘道 Pod」中的 Edge 元件和 Cassandra 資料儲存庫。這些元件和資料儲存庫必須持續運作且正在執行,才能處理 API 要求。處理 API 時,「central」和「analytics」pod 中的元件和資料儲存庫不需要,但可為 Edge 新增額外功能。

下圖顯示每個 Pod 中的元件:

您可以為系統預設建立的三個訊息處理器和路由器 Pod 新增其他訊息處理器和路由器 Pod。您也可以在現有的 Pod 中新增其他 Edge 元件。舉例來說,您可以在「閘道」Pod 中新增其他路由器和訊息處理器,以處理增加的流量負載。

請注意,「gateway」Pod 含有邊緣路由器和訊息處理器元件。路由器只會傳送要求給相同 Pod 中的訊息處理器,不會向其他 Pod 中的訊息處理器傳送要求。

您可以使用下列 API 呼叫,查看每個 Pod 安裝結束時的伺服器註冊詳細資料。這項實用的監控工具

curl -u adminEmail:pword http://<ms_IP>:8080/v1/servers?pod=podName

其中 ms_IP 是管理伺服器的 IP 位址或 DNS 名稱,而 podName 為以下兩者之一:

  • 閘道
  • 中央
  • 數據分析

以「gateway」Pod 為例:

> curl -u adminEmail:pword http://<ms_IP>:8080/v1/servers?pod=gateway

您會看到輸出內容格式為:

[ {
  "externalHostName" : "localhost",
  "externalIP" : "192.168.1.11",
  "internalHostName" : "localhost",
  "internalIP" : "192.168.1.11",
  "isUp" : true,
  "pod" : "gateway",
  "reachable" : true,
  "region" : "dc-1",
  "tags" : {
    "property" : [ {
      "name" : "jmx.rmi.port",
      "value" : "1101"
    }, ... ]
  },
  "type" : [ "message-processor" ],
  "uUID" : "276bc250-7dd0-46a5-a583-fd11eba786f8"
}, 
{
  "internalIP" : "192.168.1.11",
  "isUp" : true,
  "pod" : "gateway",
  "reachable" : true,
  "region" : "dc-1",
  "tags" : {
    "property" : [ ]
  },
  "type" : [ "dc-datastore", "management-server", "cache-datastore", "keyvaluemap-datastore", "counter-datastore", "kms-datastore" ],
  "uUID" : "13cee956-d3a7-4577-8f0f-1694564179e4"
}, 
{
  "externalHostName" : "localhost",
  "externalIP" : "192.168.1.11",
  "internalHostName" : "localhost",
  "internalIP" : "192.168.1.11",
  "isUp" : true,
  "pod" : "gateway",
  "reachable" : true,
  "region" : "dc-1",
  "tags" : {
    "property" : [ {
      "name" : "jmx.rmi.port",
      "value" : "1100"
    }, ... ]
  },
  "type" : [ "router" ],
  "uUID" : "de8a0200-e405-43a3-a5f9-eabafdd990e2"
} ]

type 屬性會列出元件類型。請注意,它會列出在 Pod 中註冊的 Cassandra 資料儲存庫。雖然 Cassandra 節點安裝在「閘道」Pod 中,但您會看到向所有 Pod 註冊的 Cassandra 資料儲存庫。

關於機構組織

機構是 Apigee 帳戶中所有物件的容器,包括 API、API 產品、應用程式和開發人員。機構與一或多個 Pod 相關聯,其中每個 Pod 都必須含有一或多個訊息處理器。

安裝 Edge Private Cloud 的地端部署系統預設沒有任何機構。建立機構時,您會指定兩項資訊:

  1. 擔任機構管理員的使用者。接著,該使用者就能在機構中新增其他使用者,並設定每位使用者的角色。
  2. 「閘道」Pod,包含訊息處理器的 Pod。

單一機構可包含一或多個環境。預設的 Edge 安裝程序會提示您建立兩個環境:「test」和「prod」。不過,您可以視需要建立更多環境,例如「測試環境」、「實驗」等。

機構提供了部分 Apigee 功能的範圍。舉例來說,鍵/值對應 (KVM) 資料可於機構層級取得,代表來自所有環境。快取等其他功能則限定於特定環境。Apigee 數據分析資料按機構與環境的組合劃分。

下圖是機構的主要物件,包括機構內全域定義的物件,以及特別針對某個環境定義的物件:

關於環境

「環境」是指機構中 API Proxy 的執行階段執行環境。您必須將 API Proxy 部署至環境,才能存取。您可以將 API Proxy 部署至單一環境,也可以部署至多個環境。

一個機構可包含多個環境。舉例來說,您可以在機構中定義「dev」、「test」和「prod」環境。

建立環境時,您必須將該環境與一或多個訊息處理器建立關聯。您可以將環境視為一組具名的訊息處理器,用於執行 API Proxy。每個環境都可以與相同的訊息處理器或不同的訊息處理器建立關聯。

如要建立環境,請指定下列兩項資訊:

  1. 包含環境的機構。
  2. 處理傳送至環境的 API Proxy 要求的訊息處理器。這些訊息處理器必須位於與環境父項機構相關聯的 Pod 中。
    根據預設,當您建立環境時,Edge 會將「閘道」pod 中所有可用的訊息處理器與環境建立關聯。或者,您也可以指定部分可用的訊息處理器,讓不同的訊息處理器處理傳送至不同環境的要求。

訊息處理器可以與多個環境建立關聯。舉例來說,您的邊緣安裝作業含有 A 和 B 兩個訊息處理器。然後在機構中建立三個環境:「dev」、「test」和「prod」:

  • 您預期不會產生大量流量,因此請將訊息處理器 A 與「dev」環境建立關聯。
  • 針對「test」環境,您需要與訊息處理器 B 建立關聯,因為您預期不會產生大量流量。
  • 在「實際工作環境」環境中,您需要同時與訊息處理器 A 和 B 建立關聯,以處理實際工作環境層級的磁碟區。

指派給環境的訊息處理器可以全部來自同一個 Pod,也可以來自橫跨多個區域和資料中心的多個 Pod。舉例來說,您可以將貴機構中的環境定義為「global」,其中包含三個區域的訊息處理者,即美國、日本和德國這三個不同的資料中心。

將 API Proxy 部署至「全域」環境後,API Proxy 就能在三個資料中心的訊息處理器中運作。通過上述任一資料中心路由器的 API 流量只會導向至該資料中心的訊息處理器,因為路由器只會將流量導向相同 Pod 中的訊息處理器。

關於虛擬主機

「虛擬主機」會定義公開 API Proxy 的邊緣路由器上的通訊埠,以及應用程式用來存取 API Proxy 的網址。每個環境都必須定義至少一個虛擬主機。

確保虛擬主機指定的通訊埠號碼已在路由器節點上開啟。接著,您可以向以下項目發出 API Proxy 要求:

http://<routerIP>:<port>/{proxy-base-path}/{resource-name}
https://<routerIP>:<port>/{proxy-base-path}/{resource-name}

其中:

  • httphttps:如果虛擬主機設定為支援 TLS/SSL,請使用 HTTPS。如果虛擬主機不支援 TLS/SSL,請使用 HTTP。
  • <routerIP>:<port> 是虛擬主機的 IP 位址和通訊埠號碼。
  • 建立 API Proxy 時,系統會定義 {proxy-base-path}{resource-name}

一般來說,您不會將 API 發布給具有 IP 位址和通訊埠編號的客戶。請改為為路由器和通訊埠定義 DNS 項目。例如:

http://myAPI.myCo.com/{proxy-base-path}/{resource-name}
https://myAPI.myCo.com/{proxy-base-path}/{resource-name}

您也必須為虛擬主機建立與 DNS 項目網域名稱相符的主機別名。在上例中,您會指定 myAPI.myCo.com 的主機別名。如果您沒有 DNS 項目,請將主機別名設為路由器的 IP 位址和虛擬主機的通訊埠,例如 <routerIP>:port

詳情請參閱 http://apigee.com/docs/api-services/content/virtual-hosts

正在建立第一個機構、環境和虛擬主機

完成 Edge 安裝程序後,第一項動作通常是透過「新手上路」程序建立機構、環境和虛擬主機。如要執行新手上路程序,請對 Edge Management Server 節點執行下列指令:

/<inst_root>/apigee/apigee-service/bin/apigee-service apigee-provision setup-org -f configFile

這個指令會將設定檔當做輸入設定檔,用於定義使用者、機構、環境和虛擬主機。

舉例來說,您可以建立:

  • 您指定的使用者擔任機構管理員
  • 名為 example 的機構
  • 機構中名為 prod 的環境,與「閘道 Pod」中的所有訊息處理器相關聯
  • 位於名為 default 的環境中的虛擬主機,允許透過通訊埠 9001 存取 HTTP
  • 虛擬主機的主機別名

執行該指令碼後,您可以使用下列網址格式存取 API:

http://<router-ip>:9001/{proxy-base-path}/{resource-name}

您之後可以新增任意數量的機構、環境和虛擬主機。

如要進一步瞭解如何開始使用,請參閱「建立機構」一文。