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

适用于私有云的 Edge v4.18.05

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

下表介绍了这些关系:

组件 包含 关联资源数 默认
星球 一个或多个区域 不适用
区域 一个或多个 pod “dc-1”
Pod 一个或多个 Edge 组件 "central"
"gateway"
"analytics"
组织 一个或多个环境 包含消息处理程序的一个或多个 pod,以及充当组织管理员的用户
环境 一个或多个虚拟主机 与父级组织关联的 pod 中的一个或多个消息处理器
虚拟主机 一个或多个主机别名

Planet 简介

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

地区简介

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

区域 区域中的 Pod
“dc-1” “gateway”“central”“analytics”

下图显示了默认区域:

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

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

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

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

Pod 简介

pod 是指一个或多个 Edge 组件和 Cassandra 数据存储的组合。Edge 组件可以安装在同一节点上,但更常安装在不同的节点上。Cassandra 数据存储区是 pod 中的 Edge 组件使用的一种数据库。

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

Pod 边缘组件

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,必须使用“gateway”Pod 中的 Edge 组件和 Cassandra 数据存储区。这些组件和数据存储区必须处于运行状态才能处理 API 请求。“central”和“analytics”Pod 中的组件和数据存储区不需要处理 API,但会为 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
  • central
  • analytics

例如,对于“gateway”Pod:

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

Apigee 会返回类似以下内容的输出:

[ {
  "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 Private Cloud 的本地安装中,默认情况下没有组织。 创建组织时,您需要指定以下两项信息:

  1. 充当组织管理员的用户。然后,该用户可以向组织中添加其他用户,并设置每个用户的角色。
  2. “网关”Pod,包含消息处理器的 Pod。

一个组织可以包含一个或多个环境。默认的 Edge 安装过程会提示您创建两个环境:“test”和“prod”。不过,您可以根据需要创建更多环境,例如“预演环境”“实验”等。

组织可为一些 Apigee 功能提供范围。例如,键值对映射 (KVM) 数据可在组织级别使用,这意味着可在所有环境中使用。其他功能(例如缓存)的范围仅限于特定环境。Apigee 分析数据按组织和环境的组合进行分区。

下面显示了组织的主要对象,包括组织中全局定义的对象以及专门针对环境定义的对象:

环境简介

环境是组织中 API 代理的运行时执行上下文。您必须先将 API 代理部署到环境,然后才能对其进行访问。您可以将 API 代理部署到单个环境或多个环境。

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

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

如需创建环境,请指定以下两项信息:

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

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

  • 对于“dev”环境,您关联了消息处理器 A,因为您预计流量不会很大。
  • 对于“test”环境,您关联了消息处理器 B,因为您预计流量不会很大。
  • 对于“prod”环境,您可以将消息处理器 A 和 B 都关联起来,以处理生产级别的流量。

分配给某个环境的信息处理器可以全部来自同一个 pod,也可以来自多个 pod,并跨越多个区域和数据中心。例如,您在组织中定义了环境“global”,其中包含来自三个区域的消息处理器,即三个不同的数据中心:美国、日本和德国。

将 API 代理部署到“全球”环境会导致 API 代理在三个数据中心的所有消息处理器上运行。到达这些数据中心中任一路由器的 API 流量只会被引导到该数据中心中的消息处理器,因为路由器只会将流量引导到同一 pod 中的消息处理器。

虚拟主机简介

虚拟主机定义了 Edge Router 上公开 API 代理的端口,以及应用用于访问 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 安装流程后,您通常要做的第一个操作是通过“新手入门”流程创建组织、环境和虚拟主机。如需进行初始配置,请在 Edge Management Server 节点上运行以下命令:

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

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

例如,您可以创建:

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

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

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

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

如需了解详情,请参阅为组织设置新用户