重新创建 Apigee 实例并避免停机

本页面适用于 Apigee,但不适用于 Apigee Hybrid

查看 Apigee Edge 文档。

本文档介绍如何重新创建 Apigee 实例,而不会导致 API 管理停用或数据丢失。

简介

2022 年 1 月 25 日之前创建的 Apigee 实例没有足够的互联网协议 (IP) 地址空间,因此 Apigee 工作负载无法扩容以处理不断增加的 API 流量并且/或者您无法向一个实例添加 10 个以上的环境。

2022 年 1 月 24 日,Apigee 推出了一项增强功能来解决此问题。此增强功能可减少将 VPC 网络与 Apigee 对等互连所需的 IP 范围,并使用以非公开方式使用的公共 IP (PUPI) 提高工作负载的扩容上限。

您需要做什么

如果您有 2022 年 1 月 25 日之前创建的 Apigee 实例,Apigee 建议您将其替换为新实例,如本文档中所述。如果您不重新创建旧版实例,则可能会遇到扩缩问题,您可以添加到实例的环境数量将继续限制为 10 个。 此外,您的实例可能会停止获取定期更新,导致 API 服务受影响。

确定实例的创建日期

要确定 Apigee 实例的创建日期,请执行以下操作:

  1. 列出组织中所有 Apigee 实例的详细信息:
    AUTH="Authorization: Bearer $(gcloud auth print-access-token)"
    
    curl -i -X GET -H "$AUTH" \
    "https://apigee.googleapis.com/v1/organizations/PROJECT_ID/instances"

    其中:

    • AUTH 是使用不记名令牌的身份验证标头。确保将 gcloud 的默认项目设置为 PROJECT_ID
    • PROJECT_ID 是您在预配 Apigee 时创建的 Cloud 项目 ID。

    示例输出:

    {
      "instances": [
        {
          "name": "us-west1",
          "location": "us-west1",
          "host": "10.117.200.2",
          "port": "443",
          "createdAt": "1642698826000",
          "lastModifiedAt": "1655745226000",
          "diskEncryptionKeyName": "projects/myproject/locations/us-west1/keyRings/my-key-ring/cryptoKeys/my-key",
          "state": "ACTIVE",
          "peeringCidrRange": "SLASH_22",
          "runtimeVersion": "1-8-0-apigee-33",
          "ipRange": "10.117.200.0/22,10.81.174.192/28",
          "consumerAcceptList": [
            "myproject"
          ],
          "serviceAttachment": "projects/z11f28c6f3104980e-tp/regions/us-west1/serviceAttachments/apigee-us-west1-lbko"
        }
      ]
    }
  2. 对于每个实例,通过解码 Unix 时间戳来查看 createdAt 字段的值,以获得日期。
    • 如果实例是在 2022 年 1 月 25 日或之后创建的,则您无需对该实例执行任何操作。
    • 如果实例是在 2022 年 1 月 25 日之前创建的,我们建议您按照本文档所述替换实例。

重新创建过程简介

如需重新创建实例并且确保不停机且不丢失数据,您需要先在新的(扩展)区域中创建新实例,并将 API 流量定向到该新实例。然后,您可以排空现有实例,将其删除,然后在与您删除的实例相同的区域中重新创建该实例。

Apigee 提供了一组脚本,可执行重新创建和配置实例所需的所有步骤。我们在本文档的稍后部分提供这些脚本的链接。

前提条件

在开始执行实例重新创建步骤之前:

  • 您必须首先熟悉 Apigee 实例的创建方式。重新创建实例的步骤要求您了解原始实例配置方式的详细信息。
  • 您必须具有至少在两个区域中预配 Apigee 的权限。如果您不确定是否有足够的权限,请按照相关步骤在新区域中创建实例。如果您没有适当的权限,尝试将失败并显示限制错误。在这种情况下,请联系 Apigee 支持团队来获取暂时的例外对待,以提高区域限制。如果您已经拥有两个或更多个区域的权限,我们建议您获取临时的例外对待,以避免在重新创建过程中使用容量减少的实例运行生产工作负载。
  • 要创建新实例,您的项目中必须有空间容纳额外的 /22/28 IP 范围地址块。另请参阅网络大小调整。您可以在实例重新创建完成后删除其他区域时释放这些范围。请注意,/22 地址块由您配置。您可以选择 Apigee 将使用哪个 /28 地址块,如果您不选择,Apigee 会从任何可用地址块自动分配。

重新创建实例

Apigee 提供了一组脚本,可执行重新创建实例所需的所有步骤。

  1. 请确保您已满足前提条件
  2. 从 GitHub 下载脚本
  3. 按照 Git 代码库的自述文件中的步骤创建新实例。
  4. 重新配置北向和南向连接以指向新的 Apigee 实例。请参阅北向更改简介南向更改简介

北向更改简介

“北向”是指从外部或内部客户端通过负载均衡器流向 Apigee 的 API 流量。删除并重新创建实例时,实例的北向 IP 地址和 Private Service Connect (PSC) 服务连接 ID 将更改。

提供的脚本会为您重新配置负载均衡器的后端。如果实例的网络路由配置了代管式实例组 (MIG),提供的脚本会重新创建 MIG 以将流量代理传输到 Apigee 端点,并连接 MIG 作为现有后端服务的后端。如果路由配置了 Private Service Connect (PSC),脚本会重新创建到 Apigee 的服务端点连接的网络端点组 (NEG),并连接新的 NEG 作为现有后端服务的后端。

请注意,您不必更改与旧实例关联的任何环境组中的主机名记录。

南向更改

“南向”是指从 Apigee 到您的 API 代理目标服务的 API 流量。

删除并重新创建实例时,所有专用的南向 NAT IP 地址都将被释放。因此,您必须为 NAT 预留并激活新的 IP 地址,并在目标端点上重新配置防火墙/许可名单。如有需要,其中一个提供的脚本会为您处理此 NAT 重新配置。