Edge for Private Cloud v. 4.16.09
Edge Private Cloud 的本地安装或 Edge 实例由安装在一组服务器节点上的多个 Edge 组件组成。下图显示了构成 Edge 实例的星球、区域、Pod、组织、环境和虚拟主机之间的关系:

下表介绍了这些关系:
|
包含 |
关联对象 |
默认 |
|
|---|---|---|---|
|
Planet |
一个或多个区域 |
无 |
|
|
区域 |
一个或多个 Pod |
"dc-1" |
|
|
Pod |
一个或多个 Edge 组件 |
"central" |
|
|
组织 |
一个或多个环境 |
一个或多个包含消息处理器的 Pod,以及充当组织管理员的用户 |
无 |
|
环境 |
一个或多个虚拟主机 |
与父组织关联的 Pod 中的一个或多个消息处理器 |
无 |
|
虚拟主机 |
一个或多个主机别名 |
无 |
关于行星
planet 表示整个 Edge 硬件和软件环境,可以包含一个或多个区域。在 Edge 中,行星是区域的逻辑分组,您无需在安装 Edge 时明确创建或配置行星。
区域简介
区域是一个或多个 Pod 的分组。默认情况下,安装 Edge 时,安装程序会创建一个名为“dc-1”的区域,其中包含三个 Pod,如下表所示:
|
区域 |
区域中的 Pod |
|---|---|
|
"dc-1" |
“gateway”“central”“analytics” |
下图显示了默认区域:

此图片显示了负载均衡器将流量定向到“网关”Pod。“网关”Pod 包含处理 API 请求的 Edge 路由器和消息处理器组件。除非您定义了多个数据中心,否则无需创建其他区域。
在更复杂的安装中,您可以创建两个或更多区域。创建多个区域的一个原因是为了按地理位置整理机器,从而最大限度地缩短网络传输时间。在这种情况下,您需要托管 API 端点,使其在地理位置上“靠近”这些 API 的使用者。
在 Edge 中,每个区域称为一个数据中心。然后,美国东部的数据中心可以处理来自马萨诸塞州波士顿的请求,而新加坡的数据中心可以处理来自亚洲设备或计算机的请求。
例如,下图显示了两个区域,分别对应两个数据中心:

Pod 简介
Pod 是一个或多个 Edge 组件和 Cassandra 数据存储区的分组。Edge 组件可以安装在同一节点上,但更常见的是安装在不同的节点上。Cassandra 数据存储区是 Pod 中的 Edge 组件使用的数据存储库。
默认情况下,当您安装 Edge 时,安装程序会创建三个 Pod,并将以下 Edge 组件和 Cassandra 数据存储区与每个 Pod 相关联:
|
Pod |
Edge 组件 |
Cassandra 数据存储区 |
|
|---|---|---|---|
|
"gateway" |
路由器、消息处理器 |
cache-datastore |
keyvaluemap-datastore |
|
"central" |
Management Server、Zookeeper、LDAP、界面、Qpid |
application-datastore |
auth-datastore |
|
“analytics” |
Postgres |
analytics-datastore |
reportcrud-datastore |
API 处理需要“网关”Pod 中的 Edge 组件和 Cassandra 数据存储区。这些组件和数据存储区必须正常运行才能处理 API 请求。处理 API 不需要“中央”和“分析”Pod 中的组件和数据存储区,但它们会为 Edge 添加额外的功能。
下图显示了每个 Pod 中的组件:

您可以向默认创建的三个消息处理器和路由器 Pod 添加其他 Pod。或者,您也可以向现有 Pod 添加其他 Edge 组件。例如,您可以向“网关”Pod 添加额外的路由器和消息处理器,以处理增加的流量负载。
请注意,“网关”Pod 包含边缘路由器和消息处理器组件。路由器只会向同一 Pod 中的消息处理器发送请求,而不会向其他 Pod 中的消息处理器发送请求。
您可以在每个 Pod 安装结束时使用以下 API 调用来查看服务器注册详情。这是一种实用的监控工具。
curl -u adminEmail:pword http://<ms_IP>:8080/v1/servers?pod=podName
其中,ms_IP 是管理服务器的 IP 地址或 DNS 名称,podName 是以下任一项:
- gateway
- central
- 数据分析
例如,对于“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 中,但您会看到 Cassandra 数据存储区已在所有 pod 中注册。
关于组织
组织是容纳 Apigee 账号中所有对象(包括 API、API 产品、应用和开发者)的容器。一个组织与一个或多个 Pod 相关联,其中每个 Pod 必须包含一个或多个消息处理器。
在 Edge 私有云 的本地安装中,默认情况下没有任何组织。创建组织时,您需要指定两项信息:
- 担任组织管理员的用户。然后,该用户可以向组织添加其他用户,并设置每个用户的角色。
- “gateway”Pod,即包含消息处理器的 Pod。
一个组织可以包含一个或多个环境。默认的 Edge 安装过程会提示您创建两个环境:“test”和“prod”。不过,您可以根据需要创建更多环境,例如“预演”“实验”等。
组织为某些 Apigee 功能提供范围。例如,键值对映射 (KVM) 数据可在组织级别(即所有环境)使用。其他功能(例如缓存)则限定于特定环境。Apigee 分析数据按组织和环境的组合进行分区。
下面显示了组织的主要对象,包括在组织中全局定义的对象以及专门针对环境定义的对象:

关于环境
环境是组织中 API 代理的运行时执行上下文。您必须先将 API 代理部署到环境,然后才能对其进行访问。您可以将 API 代理部署到单个环境或多个环境。
一个组织可以包含多个环境。例如,您可以在组织中定义“dev”“test”和“prod”环境。
创建环境时,您需要将其与一个或多个消息处理器相关联。您可以将环境视为运行 API 代理的一组已命名的消息处理器。每个环境都可以与相同的消息处理器相关联,也可以与不同的消息处理器相关联。
如需创建环境,请指定以下两项信息:
- 包含环境的组织。
- 处理对环境的 API 代理请求的消息处理器。这些消息处理器必须位于与环境的父级组织关联的 Pod 中。
默认情况下,当您创建环境时,Edge 会将“网关”Pod 中的所有可用消息处理器与该环境相关联。或者,您可以指定可用消息处理器的子集,以便不同的消息处理器处理对不同环境的请求。
一个消息处理器可以与多个环境相关联。例如,您的 Edge 安装包含两个消息处理器:A 和 B。然后,您在组织中创建三个环境:“dev”、“test”和“prod”:
- 对于“dev”环境,您关联消息处理器 A,因为您预计流量不大。
- 对于“测试”环境,您需要关联消息处理器 B,因为您预计流量不会很大。
- 对于“prod”环境,您需要同时关联消息处理器 A 和 B,以处理生产级流量。
分配给环境的消息处理器可以全部来自同一 Pod,也可以来自多个 Pod,跨越多个区域和数据中心。例如,您在组织中定义了“全球”环境,其中包含来自三个区域(即三个不同的数据中心:美国、日本和德国)的消息处理器。
将 API 代理部署到“全局”环境会导致 API 代理在所有三个数据中心的消息处理器上运行。到达其中任何一个数据中心内的路由器的 API 流量将仅定向到该数据中心内的消息处理器,因为路由器仅将流量定向到同一 Pod 中的消息处理器。
关于虚拟主机
虚拟主机定义了 Edge 路由器上公开 API 代理的端口,以及应用用于访问 API 代理的网址。每个环境都必须定义至少一个虚拟主机。
确保虚拟主机指定的端口号在路由器节点上处于打开状态。然后,您可以通过向以下地址发出请求来访问 API 代理:
http://<routerIP>:<port>/{proxy-base-path}/{resource-name}
https://<routerIP>:<port>/{proxy-base-path}/{resource-name}其中:
- http 或 https:如果虚拟主机配置为支持 TLS/SSL,请使用 HTTPS。如果虚拟主机不支持 TLS/SSL,请使用 HTTP。
- <routerIP>:<port> 是虚拟主机的 IP 地址和端口号。
- {proxy-base-path} 和 {resource-name} 是在您创建 API 代理时定义的。
通常,您不会使用 IP 地址和端口号向客户发布 API。 而是为路由器和端口定义 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 管理服务器节点上运行以下命令:
/<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}您稍后可以添加任意数量的组织、环境和虚拟主机。
如需详细了解初始配置,请参阅为组织进行初始配置。