适用于私有云的 Edge v. 4.16.09
本地安装的 Edge 私有云或 Edge 实例包含多个 安装在一组服务器节点上的边缘组件。下图显示了 区域、区域、Pod、组织、环境和虚拟主机之间 边缘实例:
下表介绍了这些关系:
包含 |
关联的 |
默认 |
|
---|---|---|---|
星球 |
一个或多个区域 |
不适用 |
|
区域 |
一个或多个 Pod |
“dc-1” |
|
Pod |
一个或多个 Edge 组件 |
“central” |
|
组织 |
一个或多个环境 |
一个或多个 Pod,其中包含消息处理器以及一个充当组织管理员的用户 |
无 |
环境 |
一个或多个虚拟主机 |
与父级组织关联的 Pod 中的一个或多个消息处理器 |
无 |
虚拟主机 |
一个或多个主机别名 |
无 |
关于行星
星球表示整个 Edge 硬件和软件环境,可以包含 一个或多个区域在《边缘》中,星球是区域的逻辑分组, 在安装 Edge 的过程中,明确创建或配置星球。
关于区域
一个 region 包含一个或多个 Pod 的分组。默认情况下,当您安装 Edge 时, 安装程序创建名为“dc-1”的单个区域包含三个 Pod,如下表所示 显示:
区域 |
该区域中的 Pod |
---|---|
“dc-1” |
“gateway”、“central”、“analytics” |
下图显示了默认区域:
此图片显示了将流量定向到“网关”的负载平衡器Pod。“网关”广告连播 包含用于处理 API 请求的边缘路由器和消息处理器组件。除非您 那么您应该不需要创建额外的区域。
在更复杂的安装情况下,您可以创建两个或更多区域。创作的理由之一 按地理位置整理机器,从而最大限度地缩短网络传输时间。在 在这种情况下,您需要托管 API 端点, 这些 API 的使用者
在 Edge 中,每个区域称为一个“数据中心”。Google Cloud 数据中心 这样,美国东部就可以处理来自马萨诸塞州波士顿的请求, 新加坡可以处理来自位于亚洲的设备或计算机的请求。
例如,下图显示了两个区域,分别对应于两个数据中心:
关于 Pod
Pod 是一个或多个 Edge 组件和 Cassandra 数据存储区的分组。边缘 组件可以安装在同一节点上,但更常安装在其他节点上。 Cassandra 数据存储区是 Pod 中 Edge 组件使用的数据存储区。
默认情况下,当您安装 Edge 时,安装程序会创建三个 Pod,并将 以下 Edge 组件和 Cassandra 数据存储区与每个 Pod:
Pod |
Edge 组件 |
Cassandra 数据存储区 |
|
---|---|---|---|
“网关” |
路由器、消息处理器 |
缓存数据存储区 |
keyvaluemap-datastore |
"central" |
Management Server、Zookeeper、LDAP、UI、Qpid |
application-datastore |
auth-datastore |
“分析” |
Postgres |
analytics-datastore |
reportcrud-datastore |
Edge 组件和“网关”中的 Cassandra 数据存储区“Pod”是必不可少的 处理。这些组件和数据存储区必须处于正常运行状态才能处理 API 请求。通过 存储在“中央”控制台中和“分析”处理 API 时不需要 Pod 但要向 Edge 添加其他功能
下图显示了每个 Pod 中的组件:
您可以将其他消息处理器 Pod 和路由器 Pod 添加到 默认值。或者,您也可以向现有 Pod 添加其他 Edge 组件。例如: 就可以将其他路由器和消息处理器添加到需要处理的广告连播数量 流量。
请注意,“网关”Pod 包含边缘路由器和消息处理器组件。 路由器只向同一 Pod 中的消息处理器发送请求,不向同一 Pod 中的消息处理器发送请求 其他 Pod
您可以使用下列 API 调用,在 每个 Pod 的安装情况这是一款实用的监控工具。
curl -u adminEmail:pword http://<ms_IP>:8080/v1/servers?pod=podName
其中 ms_IP 是管理服务器的 IP 地址或 DNS 名称。 并且 podName 可以为以下任何一项:
- gateway
- central
- 分析
例如,对于“网关”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 节点安装在“网关”中Pod,你 将看到向所有 Pod 注册的 Cassandra 数据存储区。
关于组织
组织是 Apigee 账号中所有对象的容器,包括 API、API 产品、应用和开发者。一个组织与一个或多个 Pod 相关联, 其中每个 Pod 必须包含一个或多个消息处理器。
在本地安装的 Edge 私有云中,默认情况下没有组织。 创建组织时,您需要指定两条信息:
- 担任组织管理员的用户。该用户随后可以 将用户添加到该组织,并设置每个用户的角色。
- “网关”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”:
- 对于“开发者”您应该关联消息处理器 A,因为您不需要 大量流量。
- 对于“测试”则关联消息处理器 B,因为不需要 大量流量。
- 对于“prod”则您需要将消息处理器 A 和 B 都关联起来, 生产级的卷。
分配给环境的消息处理器可以全部来自同一 Pod,也可以来自 跨多个区域和数据中心的多个 Pod例如,您可以定义 环境“global”这三个区域的消息处理器、 即美国、日本和德国这三个不同的数据中心。
将 API 代理部署到“全球”环境会导致 API 代理在 Message 上运行 所有三个数据中心的处理器。到达其中任一路由器的 API 流量 所有数据中心都将只能定向至该数据中心内的消息处理器, 只能将流量定向到同一 Pod 中的消息处理器
关于虚拟主机
虚拟主机用于定义在边缘路由器上公开 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 安装过程后,您的第一项操作通常是创建 通过“初始配置”对组织、环境和虚拟主机进行过程。要执行 请在边缘管理服务器节点上运行以下命令:
/<inst_root>/apigee/apigee-service/bin/apigee-service apigee-provision setup-org -f configFile
此命令将一个配置文件作为输入,该配置文件定义了用户、组织、环境和 虚拟主机。
例如,您创建:
- 您选择的担任组织管理员的用户
- 名为 example 的组织
- 组织中与所有 Message 关联的环境 prod “网关”中的处理器广告连播
- 名为 default 的环境中允许通过端口进行 HTTP 访问的虚拟主机 9,001
- 虚拟主机的主机别名
运行该脚本后,您可以使用采用以下格式的网址访问 API:
http://<router-ip>:9001/{proxy-base-path}/{resource-name}
您以后可以添加任意数量的组织、环境和虚拟主机。
有关新手入门的详情,请参阅新手入门 组织。