关于行星、区域、Pod、组织、环境和虚拟主机

Edge for Private Cloud v4.18.01

Edge 私有云(即 Edge 实例)的本地安装由安装在一组服务器节点上的多个 Edge 组件组成。下图显示了构成 Edge 实例的星球、区域、Pod、组织、环境和虚拟主机之间的关系:

下表介绍了这些关系:

包含 关联的设备 默认
星球 一个或多个区域 不适用
区域 一个或多个 Pod “dc-1”
Pod 一个或多个 Edge 组件 "central"
"gateway"
"analytics"
组织 一个或多个环境 一个或多个包含消息处理器的 Pod 以及作为组织管理员的用户
环境 一个或多个虚拟主机 与上级组织关联的 Pod 中的一个或多个消息处理器
虚拟主机 一个或多个主机别名

关于星球

一个星球表示整个边缘硬件和软件环境,可以包含一个或多个区域。在 Edge 中,行星是区域的逻辑分组,安装 Edge 时,您无需明确创建或配置星球。

关于区域

区域是指一个或多个 pod 的分组。默认情况下,当您安装 Edge 时,安装程序会创建一个名为“dc-1”的区域,其中包含三个 pod,如下表所示:

区域 区域中的 Pod
“dc-1” “网关”“中央”“分析”

下图显示了默认区域:

此图显示了将流量定向到“网关”Pod 的负载平衡器。“网关”Pod 包含用于处理 API 请求的边缘路由器和消息处理器组件。除非您定义了多个数据中心,否则无需创建其他区域。

在更复杂的安装中,您可以创建两个或更多区域。创建多个区域的原因之一是按地理位置整理机器,从而最大限度地缩短网络传输时间。在这种情况下,您可以托管 API 端点,以使这些端点在地理位置上距离这些 API 的使用方

在 Edge 中,每个区域称为一个数据中心。这样,美国东部的数据中心就可以处理从马萨诸塞州波士顿抵达的请求,而新加坡的数据中心就可以处理来自亚洲设备或计算机的请求。

例如,下图显示了两个区域,分别对应两个数据中心:

关于 Pod

Pod 是一个或多个 Edge 组件和 Cassandra 数据存储区的分组。Edge 组件可以安装在同一节点上,但通常安装在不同节点上。 Cassandra 数据存储区是供 Pod 中的 Edge 组件使用的数据存储区。

默认情况下,当您安装 Edge 时,安装程序会创建三个 pod,并将以下 Edge 组件和 Cassandra 数据存储区与每个 pod 关联:

Pod Edge 组件

Cassandra 数据存储区

"gateway" 路由器、消息处理器 cache-datastore
counter-datastore
dc-datastore
keyvaluemap-datastore
kms-datastore
"central" 管理服务器、Zookeeper、LDAP、界面、Qpid application-datastore
apimodel-datastore
audit-datastore
auth-datastore
Identityzone-datastore
edgenotification-datastore
management-server
scheduler-datastore
user-settings-datastore
"analytics" Postgres analytics-datastore reportcrud-datastore

API 处理需要“网关”Pod 中的 Edge 组件和 Cassandra 数据存储区。这些组件和数据存储区必须正常运行,才能处理 API 请求。“中央”和“分析”Pod 中的组件和数据存储区并非处理 API 的必要条件,但它们向 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
  • analytics

例如,对于“网关”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 代理的运行时执行上下文。您必须先将 API 代理部署到环境,然后才能对其进行访问。您可以将 API 代理部署到单个环境或多个环境。

一个组织可以包含多个环境。例如,您可以定义组织中的“dev”“test”和“prod”环境。

创建环境时,您会将其与一个或多个消息处理器相关联。您可以将环境视为运行 API 代理的一组指定消息处理器。每个环境都可以与相同或不同的消息处理器关联。

要创建环境,请指定两条信息:

  1. 包含该环境的组织。
  2. 负责处理向环境发出的 API 代理请求的消息处理器。这些消息处理器必须位于与环境的上级组织关联的 Pod 中。
    默认情况下,当您创建环境时,Edge 会将“网关”Pod 中所有可用的消息处理器与该环境相关联。或者,您也可以指定一部分可用的消息处理器,以便不同的消息处理器处理发送至不同环境的请求。

一个消息处理器可与多个环境关联。例如,您的 Edge 安装包含两个消息处理器:A 和 B。然后,在组织中创建三个环境:“dev”“test”和“prod”:

  • 对于“dev”环境,您应关联消息处理器 A,因为您预计不会有大量流量。
  • 对于“测试”环境,请关联消息处理器 B,因为您预计不会有大量流量。
  • 对于“prod”环境,您应关联消息处理器 A 和 B 来处理生产级卷。

分配给环境的消息处理器可以全部来自同一 Pod,也可以来自跨多个区域和数据中心的多个 Pod。例如,在组织中将环境定义为“全球”,其中包含来自三个区域(即美国、日本和德国的三个不同数据中心)的消息处理器。

将 API 代理部署到“全局”环境会导致 API 代理在三个数据中心的所有消息处理器上运行。到达其中任何一个数据中心的路由器的 API 流量都只会被定向到该数据中心的消息处理器,因为路由器只会将流量定向到同一 Pod 中的消息处理器。

关于虚拟主机

虚拟主机定义公开 API 代理的 Edge Router 端口,并进而定义应用用于访问 API 代理的网址。每个环境必须至少定义一个虚拟主机。

确保虚拟主机指定的端口号在路由器节点上是打开的。然后,您可以通过向以下服务发出请求来访问 API 代理:

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 地址和端口号。
  • proxy-base-pathresource-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

如需了解详情,请参阅关于虚拟主机

创建您的第一个组织、环境和虚拟主机

完成 Edge 安装过程后,您的第一步通常是通过“初始配置”流程创建组织、环境和虚拟主机。如需执行初始配置,请在边缘管理服务器节点上运行以下命令:

/opt/apigee/apigee-service/bin/apigee-service apigee-provision setup-org -f configFile

此命令将定义用户、组织、环境和虚拟主机的配置文件作为输入。

例如,您可以创建:

  • 您选择担任组织管理员的用户
  • 名为“example”的组织
  • 组织中名为 prod 的环境,与“网关”Pod 中的所有消息处理器相关联
  • 环境中名为 default 的虚拟主机,它允许通过端口 9001 进行 HTTP 访问
  • 虚拟主机的主机别名

运行该脚本后,您可以使用以下格式的网址访问 API:

http://routerIP:9001/proxy-base-path/resource-name

您稍后可以添加任意数量的组织、环境和虚拟主机。

有关详情,请参阅对组织进行初始配置