将 Apigee Edge 4.53.00 或 4.53.01 更新到 4.54.00

Apigee 支持将 Edge for Private Cloud 直接从版本 4.53.00 或 4.53.01 升级到版本 4.54.00。本页面介绍了如何执行此类升级。

如需查看兼容的升级路径概览,请参阅 Edge for Private Cloud 版本升级兼容性矩阵。

谁可以执行更新

运行更新的人员应与最初安装 Edge 的人员相同,或者是以 root 身份运行的人员。

安装 Edge RPM 后,任何人都可以对其进行配置。

您必须更新哪些组件

您必须更新所有 Edge 组件。Edge 不支持包含多个版本组件的设置。

预读材料

请查看以下主题,了解有关 Edge for Private Cloud 4.54.00 中引入的变更的重要信息:

  • 4.54.00 中的变更:查看 TLS 和 Java Callout 中需要在升级前做好准备的变更。如需了解详情,请参阅 4.54.00 中的变更。

  • 双 Java 运行时架构(Java 17 和 Java 21):从 4.54.00 版开始,Edge for Private Cloud 不再支持 Java 8,并在 Java 17 或 Java 21 上运行组件。如需了解详情,请参阅 4.54.00 中的变更。

  • 引导启动期间不会自动安装 Java:Edge for Private Cloud 4.54.00 能够发现 Java 安装,并验证您是否同时安装了 Java 17 和 21。

  • 4.54.00 中的新 Edge 界面:了解如何过渡到将新 Edge 界面作为默认管理界面,以及如何移除传统版界面 (edge-ui)。如需了解详情,请参阅新版 Edge 界面。

  • 4.54.00 中的 Apigee SSO:了解更新后的 SSO 架构和身份验证配置更改。如需了解详情,请参阅 Apigee SSO。

  • 4.54.00 中的 Nginx 1.30:查看 Edge 路由器上的自动 Nginx 1.30.x 升级、潜在的运行时影响和缓解步骤。如需了解详情,请参阅 Nginx 1.30 变更。

升级前提条件

在升级 Apigee Edge 之前,请确保满足以下前提条件:

  • 查看版本说明和新功能

    在开始升级流程之前,请务必仔细查看并了解 Edge for Private Cloud 版本 4.54.00 的版本说明中详述的所有新功能、行为变更和停用功能。

  • 升级期间的自动 Java 二进制文件发现和共存:使用标准软件包管理器(例如 yum)或标准位置(例如 /usr/lib/jvm 或 update-alternatives)安装 Java。您无需在系统 PATH 中同时配置这两个版本。升级前请勿卸载 Java 8。在安装 Java 17 和 Java 21 的同时保留 Java 8,以便现有的 Edge for Private Cloud 4.53.xx 服务在更新之前继续不间断运行。

  • 备份所有节点

    在更新之前,我们建议您对所有节点进行完整备份,以确保安全。使用当前 Edge 版本的步骤执行备份。这样,您就可以有一个备用方案,以防新版本更新无法正常运行。如需详细了解备份,请参阅备份和恢复。

  • 无提示配置文件的备份

    确保保留 Edge for Private Cloud 4.53.00 或 4.53.01 的静默配置文件备份副本,以便在需要时进行回滚。

  • 确保 Edge 正在运行

    使用以下命令确保 Edge 在更新过程中正常运行:

    /opt/apigee/apigee-service/bin/apigee-all status
  • 验证 Cassandra 前提条件

    如果您之前从旧版 Edge for Private Cloud 升级到了 4.53.00(或 4.53.01)版,现在计划升级到 4.54.00 版,请确保您已完成 Cassandra 所需的升级后步骤。4.53.00(或)4.53.01 版升级文档中概述了这些步骤,Cassandra 升级的前提条件中也提到了这些步骤。如果您不确定在之前的升级过程中是否完成了这些步骤,请在继续升级到 4.54.00 版之前再次完成这些步骤。

  • 停止 apigee-monit:如果 apigee-monit 在节点上运行,请在升级前使用 /opt/apigee/apigee-service/bin/apigee-service apigee-monit stop 将其停止。这样可防止 apigee-monit 在组件升级期间自动重启组件。升级完成后,使用 apigee-service apigee-monit start 重新启用它。

自动传播媒体资源设置

如果您通过修改 /opt/apigee/customer/application 中的 .properties 文件设置了任何属性,则更新会保留这些值。

升级路由器和消息处理器

逐个升级数据中心内的所有路由器和消息处理器节点:

/opt/apigee/apigee-setup/bin/update.sh -c edge -f configFile

升级管理服务器

逐个升级数据中心内的所有 Management Server 节点:

/opt/apigee/apigee-setup/bin/update.sh -c edge -f configFile

升级到 OpenLDAP 2.6.10

Edge for Private Cloud 4.54.00 引入了 OpenLDAP 2.6.10。此升级适用于所有 Apigee OpenLDAP 部署拓扑:单服务器、主动-被动和主动-主动(多主)。

准备和安装(所有 LDAP 服务器)

升级到新版 Edge 界面和 Apigee SSO(如果已安装)

在 Apigee Edge for Private Cloud 4.54.00 中,传统界面 (edge-ui) 已被移除,并替换为新版 Edge 界面 (edge-management-ui)。根据您的设置中是否安装并使用了 Apigee 单点登录 (SSO),请按照以下两个选项之一操作:

升级到 Qpid 10.0.1

此方法可确保 Edge 运行时环境不会停机,并最大限度地减少为分析而获取的运行时数据(如有)的丢失。

如需对 Qpid 执行就地零停机时间升级,请执行以下操作:

  1. 选择一个 Qpid 节点作为起点。

  2. 停止节点上的 Qpid 代理:

    apigee-service apigee-qpidd stop
  3. 通过应用防火墙,阻止来自所有消息处理器的代理端口 5672 上的入站流量。您可以在 Qpid 节点实例级别或其他外部防火墙/网络组件级别应用此防火墙。

    我们建议您对所有消息处理器 IP 地址执行相同的步骤。例如,如需使用 IPTables 将来自消息处理器 IP 地址的请求丢弃到端口 5672 上的 Qpid 节点,您可以使用如下命令:

    iptables -A INPUT -p tcp --dport 5672 -s MESSAGE_PROCESSOR_IP -j DROP
  4. 再次启动 Qpid 代理以排空现有消息(如有):

    apigee-service apigee-qpidd start
  5. 检查现有队列是否为空:

    /opt/apigee/apigee-qpidd/bin/qpid-stat -q

    如果消息卡在死信队列 (DLQ) (ax-q-axgroup-001-consumer-group-001-dl) 中,请按照解决分析数据卡在死信队列中的问题中的步骤清空队列。

  6. 验证旧节点上的队列已清空后,停止 apigee-qpidd:

    apigee-service apigee-qpidd stop
  7. 升级节点上的 Qpid:

    /opt/apigee/apigee-setup/bin/update.sh -c qpid -f configFile
  8. 重启 edge-qpid-server:

    apigee-service edge-qpid-server restart
  9. 移除在第 3 步中应用的防火墙规则。

    对应用了防火墙的所有消息处理器 IP 地址执行相同的移除步骤。移除防火墙后,来自消息处理器 IP 地址的请求(发送到端口 5672 上的 Qpid 节点)将被接受。如果您使用 iptables 添加了防火墙,则可以使用以下命令移除防火墙并列出现有设置:

    iptables -F
    iptables -L
  10. 使用 Web 监控功能验证 Qpid 队列是否正在接收消息:

    http://QPID_NODE_IP:8090
  11. 对每个 Qpid 节点重复执行第 1 步到第 9 步。

升级到 Postgres 18.6

此版本的 Edge 包含对 Postgres 18.6 的升级。在升级过程中,所有 Postgres 数据都会迁移到 Postgres 18.6

大多数 Edge 生产系统都使用配置为主备复制的两个 Postgres 节点。在更新过程中,当 Postgres 节点因更新而停机时,分析数据仍会写入 Qpid 节点。在 Postgres 节点更新并重新上线后,分析数据会推送到 Postgres 节点。

执行 Postgres 更新的方式取决于您为 Postgres 节点配置数据存储区的方式:

  • 如果您为 Postgres 节点使用本地数据存储区,则必须在升级期间安装新的 Postgres 备用节点。升级完成后,您可以停用新的 Postgres 备用节点。如果您因任何原因必须回滚更新,则需要额外的 Postgres 备用节点。如果您必须回滚更新,则在回滚后,新的 Postgres 备用节点会成为主 Postgres 节点。因此,在安装新的 Postgres 备用节点时,该节点应满足 Edge 安装要求中定义的所有 Postgres 服务器硬件要求。

    在 Edge 的 1 节点和 2 节点配置中,用于原型设计和测试的拓扑只有一个 Postgres 节点。您可以直接更新这些 Postgres 节点,而无需创建新的 Postgres 节点。

  • 如果您按照 Apigee 的建议为 Postgres 节点使用网络存储,则无需安装新的 Postgres 节点。在以下过程中,您可以跳过指定安装和稍后退役新 Postgres 备用节点的步骤。在开始更新流程之前,请为 Postgres 使用的数据存储区创建网络快照。然后,如果在更新期间发生任何错误,并且您被迫执行回滚,则可以从该快照恢复 Postgres 节点。

安装新的 Postgres 备用节点

此过程会在新节点上创建 Postgres 备用服务器。请确保您为现有版本的 Edge(4.53.00 或 4.53.01)安装新的 Postgres 备用服务器,而不是为 4.54.00 版安装。

如需执行安装,请使用安装当前版本 Edge 时所用的配置文件。

如需创建新的 Postgres 备用节点,请执行以下操作:

  1. 在当前的 Postgres 主节点上,修改 /opt/apigee/customer/application/postgresql.properties 文件以设置以下令牌。如果该文件不存在,请创建它:

    conf_pg_hba_replication.connection=host replication apigee existing_standby_ip/32 trust\ \nhost replication apigee new_standby_ip/32 trust

    其中,existing_standby_ip 是当前 Postgres 备用服务器的 IP 地址,new_standby_ip 是新备用节点的 IP 地址。

  2. 在 Postgres 主节点上重启 apigee-postgresql:

    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql restart
  3. 通过查看主节点上的 /opt/apigee/apigee-postgresql/conf/pg_hba.conf 文件,验证是否已添加新的备用节点。您应该会在该文件中看到以下行:

    host replication apigee existing_standby_ip/32 trust
    host replication apigee new_standby_ip/32 trust
  4. 安装新的 Postgres 备用服务器:

    1. 修改用于安装当前 Edge 版本的配置文件,以指定以下内容:

      # IP address of the current primary(master):
      PG_MASTER=PG_MASTER_NODE_IP
      # IP address of the new standby node
      PG_STANDBY=PG_STANDBY_NODE_IP
    2. 按照安装 Edge apigee-setup 实用程序中的说明停用 SELinux。

    3. 根据您当前的 Edge 版本下载并运行引导脚本:

      • 如果您目前使用的是 Edge 4.53.00:

        将 Edge bootstrap_4.53.00.sh 文件下载到 /tmp/bootstrap_4.53.00.sh:

        curl https://software.apigee.com/bootstrap_4.53.00.sh -o /tmp/bootstrap_4.53.00.sh

        安装 Edge apigee-service 实用程序和依赖项:

        bash /tmp/bootstrap_4.53.00.sh apigeeuser=uName apigeepassword=pWord
      • 如果您目前使用的是 Edge 4.53.01:

        将 Edge bootstrap_4.53.01.sh 文件下载到 /tmp/bootstrap_4.53.01.sh:

        curl https://software.apigee.com/bootstrap_4.53.01.sh -o /tmp/bootstrap_4.53.01.sh

        安装 Edge apigee-service 实用程序和依赖项:

        bash /tmp/bootstrap_4.53.01.sh apigeeuser=uName apigeepassword=pWord
    4. 使用 apigee-service 安装 apigee-setup 实用程序:

      /opt/apigee/apigee-service/bin/apigee-service apigee-setup install
    5. 安装 Postgres:

      /opt/apigee/apigee-setup/bin/setup.sh -p ps -f configFile
    6. 在新备用节点上,运行以下命令并验证该节点是否为备用节点:

      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-standby

执行 Postgres 的就地升级

初步步骤

在对 Postgres 执行就地升级之前,请在主主机和备用主机上执行以下步骤,以更新 apigee-postgresql 上的 max_locks_per_transaction 属性:

  1. 如果不存在,请创建文件 /opt/apigee/customer/application/postgresql.properties。

  2. 将此文件的所有权更改为 apigee:

    chown apigee:apigee /opt/apigee/customer/application/postgresql.properties
  3. 将以下属性添加到该文件中:

    conf/postgresql.conf+max_locks_per_transaction=30000
  4. 配置 apigee-postgresql:

    apigee-service apigee-postgresql configure
  5. 重启 apigee-postgresql:

    apigee-service apigee-postgresql restart

执行就地升级

如需就地升级到 Postgres 18,请执行以下步骤:

  1. 在主主机上升级 Postgres

    /opt/apigee/apigee-setup/bin/update.sh -c ps -f configFile
  2. 在主宿主机上运行设置命令:

    apigee-service apigee-postgresql setup -f configFile
  3. 在主主机上运行 configure 命令:

    apigee-service apigee-postgresql configure
  4. 重启主要主机:

    apigee-service apigee-postgresql restart
  5. 将其配置为主实例:

    apigee-service apigee-postgresql setup-replication-on-master -f configFile
  6. 确保主主机已启动:

    apigee-service apigee-postgresql wait_for_ready
  7. 停止备用实例:

    apigee-service apigee-postgresql stop
  8. 升级备用实例。

    注意:如果此步骤出错/失败,可以忽略。update.sh 将尝试使用不正确的配置启动备用服务器。如果 Postgres 安装已升级到 18,则可以忽略该错误。

    /opt/apigee/apigee-setup/bin/update.sh -c ps -f configFile
  9. 确保备用实例已停止:

    apigee-service apigee-postgresql stop
  10. 移除旧的备用配置:

    rm -rf /opt/apigee/data/apigee-postgresql/
  11. 在备用服务器上设置复制:

    apigee-service apigee-postgresql setup-replication-on-standby -f configFile
  12. 从主要主机和备用主机上的 /opt/apigee/customer/application/postgresql.properties 文件中移除 conf/postgresql.conf+max_locks_per_transaction=30000 行。此行是在准备步骤中添加的。

    完成此过程后,备用实例将成功启动。

停用 Postgres 节点

更新完成后,停用新的备用节点:

  1. 确保 Postgres 正在运行:

    /opt/apigee/apigee-service/bin/apigee-all status

    如果 Postgres 未运行,请启动它:

    /opt/apigee/apigee-service/bin/apigee-all start
  2. 通过在新的备用节点上运行以下 curl 命令,获取新备用节点的 UUID:

    curl -u sysAdminEmail:password http://node_IP:8084/v1/servers/self

    您应该会在输出末尾看到节点的 UUID,格式如下:

    "type" : [ "postgres-server" ],
    "uUID" : "599e8ebf-5d69-4ae4-aa71-154970a8ec75"
  3. 在新的备用节点上运行以下命令,停止新的备用节点:

    /opt/apigee/apigee-service/bin/apigee-all stop
  4. 在 Postgres 主节点上,修改 /opt/apigee/customer/application/postgresql.properties 以从 conf_pg_hba_replication.connection 中移除新的备用节点:

    conf_pg_hba_replication.connection=host replication apigee existing_standby_ip/32 trust
  5. 在 Postgres 主节点上重启 apigee-postgresql:

    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql restart
  6. 通过查看主节点上的 /opt/apigee/apigee-postgresql/conf/pg_hba.conf 文件,验证新的备用节点是否已移除。您应该会在该文件中看到以下一行:

    host replication apigee existing_standby_ip/32 trust
  7. 在管理服务器节点上发出以下 Edge Management API 调用,从 ZooKeeper 中删除备用节点的 UUID:

    curl -u sysAdminEmail:password -X DELETE http://ms_IP:8080/v1/servers/new_standby_uuid

Postgres 的升级后步骤

Postgres 重大升级后,Postgres 的内部统计信息会被清除。这些统计信息有助于 Postgres 查询规划器利用最理想的索引和路径来执行查询。

随着查询的执行以及 autovacuum 精灵的运行,Postgres 可以逐渐重建其统计信息。不过,在统计信息重新构建之前,您的查询可能会很慢。

如需解决此问题,请在主 Postgres 节点上对数据库中的所有表执行 ANALYZE。或者,您也可以一次对几个表执行 ANALYZE。

升级到 ZooKeeper 3.8.5

此版本的 Edge for Private Cloud 包含 ZooKeeper 3.8.5 升级。升级完成后,所有 ZooKeeper 数据都将迁移到 ZooKeeper 3.8.5。

在升级 ZooKeeper 之前,请通读 ZooKeeper 维护指南。大多数 Edge 生产系统都使用分布在多个数据中心的 ZooKeeper 节点集群。其中一些节点配置为参与 ZooKeeper 领导者选举的投票者,其余节点配置为观察者。如需了解详情,请参阅关于领导者、跟随者、投票者和观察者。投票者节点会选举出一个领导者,然后投票者节点本身会成为跟随者。

在更新过程中,当领导者节点关停时,ZooKeeper 中可能会出现短暂的延迟或写入失败。这可能会影响写入 ZooKeeper 的管理操作(例如代理的部署操作)以及 Apigee 基础架构更改(例如添加或移除消息处理器等)。在按照以下过程升级 ZooKeeper 期间,Apigee 的运行时 API 应该不会受到影响(除非这些运行时 API 调用 Management API)。

从宏观层面来看,升级过程涉及备份每个节点。接下来,升级所有观察者和跟随者,最后升级领导者节点。

备份

备份 ZooKeeper 的所有节点,以备需要回滚时使用。请注意,回滚会将 ZooKeeper 恢复到创建备份时的状态。

/opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper backup

如果您使用的是虚拟机,并且有能力,也可以创建虚拟机快照或备份,以便在必要时进行恢复或回滚。

确定领导者、追随者和观察者

  1. 如果 ZooKeeper 节点上未安装 nc,请安装它:

    yum install nc
  2. 在节点上运行以下 nc 命令,其中 2181 是 ZooKeeper 端口:

    echo stat | nc localhost 2181

    您应该会看到如下所示的输出:

    Zookeeper version: 3.8.5-19f1842d4b6ee1f82cc8b05284959b26c6ae507d, built on 2025-09-03 21:35 UTC
    Clients:
     /[0:0:0:0:0:0:0:1]:40696[0](queued=0,recved=1,sent=0)
    
    Latency min/avg/max: 3/4.3333/6
    Received: 4
    Sent: 3
    Connections: 1
    Outstanding: 0
    Zxid: 0x500000005
    Mode: follower

    在节点的输出 Mode 行中,您应该会看到 observer、leader 或 follower(表示不是 leader 的 voter),具体取决于节点配置。

  1. 在每个 ZooKeeper 节点上重复执行第 1 步和第 2 步。

升级观察者节点和跟随者节点上的 ZooKeeper

在每个观察者节点和跟随者节点上升级 ZooKeeper,如下所示:

  1. 按照在具有外部互联网连接的节点上更新到 4.54.00 中的说明,下载并运行 Edge for Private Cloud 4.54.00 的引导程序。具体流程可能会因节点是否具有外部互联网连接或您是否在执行离线安装而有所不同。

  2. 升级 ZooKeeper 组件:

    /opt/apigee/apigee-setup/bin/update.sh -c zk -f silent-config-file

    注意:如果这些节点安装了其他组件(例如 Cassandra),您现在也可以升级这些组件(例如使用 zk,cs 配置),也可以稍后升级其他组件。Apigee 建议您先仅升级 ZooKeeper,并确保集群正常运行,然后再升级其他组件。

  3. 在每个 ZooKeeper 观察器和跟随器节点上重复上述步骤。

关闭主设备

所有观察者节点和跟随者节点都升级后,关闭领导者节点。在被标识为 Leader 的节点上,运行以下命令:

/opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper stop

请注意,在此事件期间,在选出新的领导者之前,ZooKeeper 中可能会出现短暂的延迟或写入失败。这可能会影响写入 ZooKeeper 的操作,例如代理的部署操作或 Apigee 基础架构更改(例如添加或移除消息处理器等)。

验证是否已选出新的领导者

按照上文识别领导者、追随者和观察者 部分中的步骤,验证在现有领导者停止后,是否已从追随者中选出新的领导者。请注意,主节点可能是在与当前主节点不同的数据中心内选出的。

升级领导者

按照上文在观测节点和跟随者节点上升级 ZooKeeper 中的相同步骤操作。

旧主节点也升级后,验证集群运行状况并确保存在主节点。

升级到 Cassandra 5.0.8

Apigee Edge for Private Cloud 4.54.00 包含 Cassandra 升级,升级后的版本为 5.0.8。

升级和回滚

  • 从 Cassandra 4.0.X 升级到 Cassandra 5.0.X 是一个滚动过程。

  • 无法直接从 Cassandra 5.0.X 就地回滚到 4.0.X。使用副本或备份进行回滚是一个复杂的过程,可能会导致停机和/或数据丢失。排查问题并升级到 Cassandra 5.0.X 比回滚更可取。

  • 在尝试升级之前,请务必熟悉回滚过程。考虑到升级期间回滚的细微差别,确保有适当的回滚路径至关重要。

单个数据中心

在单个数据中心内将 Cassandra 从 4.0.X 升级到 5.0.X 是无缝的,但回滚过程很复杂,可能会导致停机和数据丢失。对于生产工作负载,强烈建议在开始升级之前添加新数据中心,并确保新数据中心内至少有 Cassandra 节点可用。这样,您就可以回滚 Cassandra,而不会导致数据丢失或 API 流量中断。升级完成后,可以停用此额外的数据中心。

如果无法添加新的数据中心,但仍希望具备回滚功能,则必须使用备份来恢复 Cassandra 4.0.X。不过,此方法可能会导致停机和数据丢失。

多个数据中心

如果使用 Edge for Private Cloud 4.53.00 或 4.53.01 运行多个数据中心,则在升级到 Edge for Private Cloud 4.54.00 期间,回滚的灵活性会更高。

  • 回滚需要至少一个数据中心运行较低的 Cassandra 版本 (4.0.X)。

  1. 一次升级一个 Cassandra 数据中心:首先在单个数据中心内逐个升级 Cassandra 节点。先完成一个数据中心内所有 Cassandra 节点的升级,然后再继续下一个数据中心。

  2. 暂停并验证:升级一个数据中心后,请暂停升级,以确保您的私有云集群(尤其是已升级的数据中心)正常运行。

  3. 请注意:只有在至少有一个数据中心仍在运行旧版本的情况下,您才能回滚到先前的 Cassandra 版本。

  4. 时间敏感:虽然您可以暂停一小段时间(建议暂停几个小时)来验证功能,但不能无限期地保持混合版本状态。这是因为非统一的 Cassandra 集群(节点位于不同版本上)存在操作限制。

  5. 全面测试:Apigee 强烈建议在升级下一个数据中心之前,对性能和功能进行全面测试。所有数据中心升级后,将无法回滚到早期版本。

回滚检查点流程

单回滚检查点:当所有组件都升级到 4.54.00 时,只有在至少一个 Cassandra 数据中心继续运行旧版本的情况下,才能进行 Cassandra 回滚。升级完最后一个 Cassandra 数据中心后,升级到 Edge for Private Cloud 4.54.00 的过程即告完成,并且无法再回滚。

示例

假设有一个双数据中心 (DC) 集群:

  1. 初始状态:两个数据中心内的 Cassandra 节点均运行 4.0.X 版本。所有其他节点均运行 Edge for Private Cloud 4.54.00 版。假设每个数据中心有三个 Cassandra 节点。

  2. 升级 DC-1:逐个升级 DC-1 中的三个 Cassandra 节点。

  3. 暂停并验证:暂停以确保集群(尤其是 DC-1)正常运行(检查性能和功能)。您可以使用 DC-2 中的 Cassandra 节点回滚到初始状态。请注意,由于混合版本 Cassandra 集群的限制,此暂停必须是暂时的。

  4. 升级 DC-2:升级 DC-2 中的其余三个 Cassandra 节点。DC-2 中的所有 Cassandra 节点成功升级后,Edge for Private Cloud 4.54.00 升级即告完成。

Cassandra 升级的前提条件

您应运行 Cassandra 4.0.X 以及 Edge for Private Cloud 4.53.00(或 4.53.01),并确保满足以下条件:

  1. 将 Java 17 设置为服务器上的默认 Java 版本: Cassandra 5.0.X 移除了 Java 8 支持。您无法在 Java 8 中运行 Cassandra 5.0.X 或其 nodetool 实用程序。在执行 Cassandra 升级步骤之前,请确保每个 Cassandra 节点上都安装了 Java 17,并将 Java 17 设置为默认 Java 版本,以便 nodetool 命令使用 Java 17 执行:

    alternatives --set java JAVA_17_PATH/bin/java

    验证有效的默认 Java 版本是否为 Java 17:

    java -version
  2. 整个集群正常运行,并且完全支持 Cassandra 4.0.X。

  3. 压缩策略设置为 LeveledCompactionStrategy(升级到 4.53.00 [或] 4.53.01 版的前提条件)。

  4. 确认在 Edge for Private Cloud 4.53.00(或 4.53.01)中,Cassandra 4.0.X 的初始升级过程中已完成以下每个步骤。

    • 在之前的升级过程中,已在每个 Cassandra 节点上执行 post_upgrade 命令

    • 在之前的升级期间,已在整个 Cassandra 集群上执行了 drop_old_tables 命令。

如果您不确定在使用 Edge for Private Cloud 4.53.00(或 4.53.01)时是否在 Cassandra 4.0.X 上执行了 post_upgrade 和 drop_old_tables 命令,可以放心地重新运行这些命令,然后再尝试升级到 4.54.00。

第 1 步:准备升级

除了您通常创建的标准文件(例如用于启用组件升级的 Apigee 标准配置文件)之外,您还需要执行以下步骤。

  1. 使用 Apigee 备份 Cassandra。

  2. 截取 Cassandra 节点的虚拟机快照(如果可行)。

  3. 确保所有 Edge for Private Cloud 组件(包括管理服务器、消息处理器、路由器、Qpid 和 Postgres)都可以访问 Cassandra 节点的端口 9042(如果尚未配置)。如需了解详情,请参阅端口要求。

第 2 步:升级所有 Cassandra 节点

每个数据中心中的所有 Cassandra 节点都应逐个更新,每次更新一个数据中心。在数据中心内升级节点之间,请等待几分钟,以确保更新后的节点已完全启动并加入集群,然后再继续升级同一数据中心内的另一个节点。

升级数据中心内的所有 Cassandra 节点后,请等待一段时间(30 分钟到几小时),然后再继续升级下一个数据中心内的节点。在此期间,请彻底检查已更新的数据中心,确保 Apigee 集群的功能和效果指标完好无损。此步骤对于确保 Cassandra 已升级到 5.0.X 版的数据中心的稳定性至关重要,而其余 Apigee 组件已升级到 4.54.00 版。

  1. 如需升级 Cassandra 节点,请运行以下命令:

    /opt/apigee/apigee-setup/bin/update.sh -c cs -f configFile
  2. 节点更新后,请在节点上运行以下命令,以在继续操作之前运行一些验证:

    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra validate_upgrade -f configFile
  3. 上述命令将输出如下内容:

    Cassandra version is verified - [cqlsh 6.2.0 | Cassandra 5.0.8 | CQL spec 3.4.7 | Native protocol v5]
    Metadata is verified
  4. 在 Cassandra 节点上运行以下 post_upgrade 命令:

    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra post_upgrade
  5. 在 Cassandra 节点上运行以下 cleanup_old_index 命令:

    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra cleanup_old_index
  6. 运行以下 nodetool 命令,以在 Cassandra 节点上重建索引:

/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index kms api_products api_products_organization_name_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index kms app_credentials app_credentials_api_products_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index kms app_credentials app_credentials_organization_app_id_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index kms app_credentials app_credentials_organization_name_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index kms app_end_user app_end_user_app_id_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index kms apps apps_app_family_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index kms apps apps_app_id_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index kms apps apps_app_type_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index kms apps apps_name_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index kms apps apps_organization_name_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index kms apps apps_parent_id_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index kms apps apps_parent_status_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index kms apps apps_status_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index kms maps maps_organization_name_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index devconnect companies companies_name_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index devconnect companies companies_organization_name_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index devconnect companies companies_status_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index devconnect company_developers company_developers_company_name_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index devconnect company_developers company_developers_developer_email_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index devconnect company_developers company_developers_organization_name_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index devconnect developers developers_email_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index devconnect developers developers_organization_name_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index devconnect developers developers_status_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index apimodel_v2 apis a_name
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index apimodel_v2 apis a_org_name
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index apimodel_v2 apis_revision ar_a_active_rev
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index apimodel_v2 apis_revision ar_a_def_index_template
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index apimodel_v2 apis_revision ar_a_def_method_template
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index apimodel_v2 apis_revision ar_a_latest_rev
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index apimodel_v2 apis_revision ar_a_name
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index apimodel_v2 apis_revision ar_a_uuid
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index apimodel_v2 apis_revision ar_base_url
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index apimodel_v2 apis_revision ar_is_active
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index apimodel_v2 apis_revision ar_is_latest
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index apimodel_v2 apis_revision ar_name
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index apimodel_v2 apis_revision ar_org_name
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index apimodel_v2 apis_revision ar_rel_ver
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index apimodel_v2 apis_revision ar_rev_num
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index apimodel_v2 method m_a_name
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index apimodel_v2 method m_api_uuid
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index apimodel_v2 method m_ar_uuid
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index apimodel_v2 method m_base_url
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index apimodel_v2 method m_name
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index apimodel_v2 method m_org_name
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index apimodel_v2 method m_r_name
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index apimodel_v2 method m_r_uuid
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index apimodel_v2 method m_res_path
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index apimodel_v2 method m_rev_num
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index apimodel_v2 resource r_a_name
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index apimodel_v2 resource r_api_uuid
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index apimodel_v2 resource r_ar_uuid
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index apimodel_v2 resource r_base_url
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index apimodel_v2 resource r_name
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index apimodel_v2 resource r_org_name
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index apimodel_v2 resource r_res_path
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index apimodel_v2 resource r_rev_num
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index apimodel_v2 schemas s_api_uuid
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index apimodel_v2 schemas s_ar_uuid
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index apimodel_v2 security sa_api_uuid
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index apimodel_v2 security sa_ar_uuid
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index apimodel_v2 template t_a_name
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index apimodel_v2 template t_a_uuid
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index apimodel_v2 template t_entity
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index apimodel_v2 template t_name
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index apimodel_v2 template t_org_name
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index apimodel_v2 template_auth au_api_uuid
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index dek keys usecase_index
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index audit audits audits_operation_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index audit audits audits_requesturi_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index audit audits audits_responsecode_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index audit audits audits_timestamp_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index audit audits audits_user_idx    
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index cache cache_entries cache_entries_cache_name_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index kms oauth_10_access_tokens oauth_10_access_tokens_app_id_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index kms oauth_10_access_tokens oauth_10_access_tokens_consumer_key_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index kms oauth_10_access_tokens oauth_10_access_tokens_organization_name_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index kms oauth_10_access_tokens oauth_10_access_tokens_status_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index kms oauth_10_request_tokens oauth_10_request_tokens_consumer_key_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index kms oauth_10_request_tokens oauth_10_request_tokens_organization_name_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index kms oauth_10_verifiers oauth_10_verifiers_organization_name_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index kms oauth_10_verifiers oauth_10_verifiers_request_token_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index kms oauth_20_access_tokens oauth_20_access_tokens_app_id_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index kms oauth_20_access_tokens oauth_20_access_tokens_client_id_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index kms oauth_20_access_tokens oauth_20_access_tokens_refresh_token_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index kms oauth_20_authorization_codes oauth_20_authorization_codes_client_id_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index kms oauth_20_authorization_codes oauth_20_authorization_codes_organization_name_idx

如果您使用创收功能,还需运行以下与创收键空间相关的重建索引命令:

/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index mint limits limits_created_date_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index mint limits limits_id_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index mint limits limits_org_id_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index mint limits limits_updated_date_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index mint suspended_developer_products suspended_developer_products_created_date_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index mint suspended_developer_products suspended_developer_products_currency_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index mint suspended_developer_products suspended_developer_products_dev_id_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index mint suspended_developer_products suspended_developer_products_id_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index mint suspended_developer_products suspended_developer_products_limit_id_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index mint suspended_developer_products suspended_developer_products_org_id_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index mint suspended_developer_products suspended_developer_products_prod_id_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index mint suspended_developer_products suspended_developer_products_reason_code_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index mint suspended_developer_products suspended_developer_products_sub_org_id_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index mint invitations invitations_company_id_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index mint invitations invitations_created_at_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index mint invitations invitations_developer_id_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index mint invitations invitations_lastmodified_at_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index mint invitations invitations_org_id_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index taurus triggers triggers_env_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index taurus triggers triggers_job_id_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index taurus triggers triggers_org_id_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index taurus job_details job_details_job_class_name_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index taurus job_details job_details_job_group_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index taurus job_details job_details_job_name_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index taurus org_triggers org_triggers_org_id_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index taurus triggers_suite triggers_suite_group_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index taurus triggers_suite triggers_suite_name_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index taurus triggers_suite triggers_suite_suite_id_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index notification notification_service_item notification_service_item_org_id_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index notification notification_service_item notification_service_item_status_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index notification notification_service_black_list_item notification_service_black_list_item_org_id_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index notification notification_service_black_list_item notification_service_black_list_item_to_email_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index notification notification_email_template_item notification_email_template_item_name_idx
/opt/apigee/apigee-cassandra/bin/nodetool rebuild_index notification notification_email_template_item notification_email_template_item_org_id_idx

使用 Apigee mTLS 进行更新

如需更新 Apigee mTLS,请执行以下步骤:

回滚更新

如果更新失败,您可以尝试更正问题,然后再次执行 update.sh。您可以多次运行更新,它会从上次中断的位置继续更新。

如果失败需要您将更新回滚到先前版本,请参阅回滚 4.54.00 了解详细说明。

日志记录更新信息

默认情况下,update.sh 实用程序会将日志信息写入:

/opt/apigee/var/log/apigee-setup/update.log

如果运行 update.sh 实用程序的人员无权访问该目录,则会将日志作为名为 update_username.log 的文件写入 /tmp 目录。

如果此人无权访问 /tmp,则 update.sh 实用程序会失败。

零停机时间更新

零停机时间更新(或滚动更新)可让您在不关闭 Edge 的情况下更新 Edge 安装。

只有 5 节点及更大规模的配置才能实现零停机时间更新。

实现零停机时间升级的关键在于,从负载均衡器中逐个移除每个路由器。然后,您需要更新路由器以及与路由器位于同一台机器上的任何其他组件,再将路由器重新添加到负载均衡器。

  1. 按照机器更新顺序中所述,以正确的顺序更新安装中的机器。

  2. 当需要更新路由器时,请选择任一路由器并使其无法访问,如启用/停用服务器(消息处理器/路由器)可访问性中所述。

  3. 更新所选路由器以及与该路由器位于同一机器上的所有其他 Edge 组件。所有 Edge 配置都会在同一节点上显示路由器和消息处理器。

  4. 使路由器再次可访问。

  5. 对剩余的路由器重复第 2 步到第 4 步。

  6. 继续更新安装中的所有剩余机器。

在更新之前和之后,请注意以下事项:

使用静默配置文件

您必须将静默配置文件传递给更新命令。虽然静默配置文件与您用于安装 Edge for Private Cloud 4.53.00 或 4.53.01 的配置文件基本相似,但您可能需要对界面和 Apigee SSO 等组件进行更改,如升级到新 Edge 界面和 Apigee SSO(如果已安装)中所述。

在具有外部互联网连接的节点上更新到 4.54.00

请按照以下步骤更新节点上的 Edge 组件:

  1. 如果存在,请停用配置为在 Cassandra 上执行修复操作的所有 cron 作业,直到更新完成。

  2. 以 root 身份登录节点,以安装 Edge RPM。

    注意:虽然 RPM 安装需要根访问权限,但您可以在没有根访问权限的情况下执行 Edge 配置。

  3. 按照安装 Edge apigee-setup 实用程序中的说明停用 SELinux。

  4. 如果您要在 AWS 上安装 ,请执行以下 yum-configure-manager 命令:

    yum update rh-amazon-rhui-client.noarch
    yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional
  5. 如果您目前使用的是 Edge for Private Cloud 4.53.00(或 4.53.01):

    1. 将 Edge bootstrap_4.54.00.sh 文件下载到 /tmp/bootstrap_4.54.00.sh:

      curl https://software.apigee.com/bootstrap_4.54.00.sh -o /tmp/bootstrap_4.54.00.sh
    2. 通过执行以下命令安装 Edge 4.54.00 apigee-service 实用程序和依赖项:

      bash /tmp/bootstrap_4.54.00.sh apigeeuser=uName apigeepassword=pWord

      其中,uName:pWord 是您从 Apigee 收到的用户名和密码。如果您省略 pWord,系统会提示您输入该实参。

      默认情况下,安装程序会检查您是否已安装 Java 17 和 21。

    3. 使用 apigee-service 更新 apigee-setup 实用程序,如以下示例所示:

      /opt/apigee/apigee-service/bin/apigee-service apigee-setup update
    4. 更新管理服务器上的 apigee-validate 实用程序,如以下示例所示:

      /opt/apigee/apigee-service/bin/apigee-service apigee-validate update
    5. 更新管理服务器上的 apigee-provision 实用程序,如以下示例所示:

      /opt/apigee/apigee-service/bin/apigee-service apigee-provision update
    6. 通过执行以下命令在节点上运行 update 实用程序:

      /opt/apigee/apigee-setup/bin/update.sh -c component -f configFile

      请按照机器更新顺序中所述的顺序执行此操作。

      其中:

      • component 是要更新的 Edge 组件。可能的值包括:

        • edge:除新 Edge 界面之外的所有 Edge 组件:Management Server、消息处理器、Router、QPID Server、Postgres Server

        • ldap:OpenLDAP

        • ue:新 Edge 界面

        • qpid:Apigee Qpid

        • ps:Apigee Postgresql

        • zk:ZooKeeper

        • cs:Cassandra

      • configFile 是您在 4.53.00(或)4.53.01 安装期间用于定义 Edge 组件的同一配置文件。

      您可以将 component 设置为“all”,针对所有组件运行 update.sh,但前提是您拥有 Edge 全功能一体化 (AIO) 安装配置文件。例如:

      /opt/apigee/apigee-setup/bin/update.sh -c all -f configFile
    7. 在运行新 Edge 界面组件的所有节点上重启这些组件(如果您尚未这样做):

      /opt/apigee/apigee-service/bin/apigee-service edge-management-ui restart
    8. 按照测试安装中的说明,在管理服务器上运行 apigee-validate 实用程序来测试更新。

如果您稍后决定回滚更新,请使用回滚 4.54.00 中所述的过程

从本地代码库更新到 4.54.00

如果您的 Edge 节点位于防火墙后面,或者以其他方式禁止通过互联网访问 Apigee 代码库,则您可以从 Apigee 代码库的本地代码库或镜像执行更新。

创建本地 Edge 代码库后,您可以通过以下两种方式从本地代码库更新 Edge:

  • 创建代码库的 .tar 文件,将 .tar 文件复制到节点,然后从 .tar 文件更新 Edge。

  • 在具有本地代码库的节点上安装网络服务器,以便其他节点可以访问该代码库。Apigee 提供 Nginx Web 服务器供您使用,您也可以使用自己的 Web 服务器。

如需从本地 4.54.00 代码库更新,请执行以下操作:

  1. 按照安装 Edge apigee-setup 实用程序中的“创建本地 Apigee 代码库”中所述,创建本地 4.54.00 代码库。

  2. 使用以下方法之一在目标节点上安装 apigee-service:

    • 选项 1:从 .tar 文件安装 apigee-service

      1. 在具有本地代码库的节点上,使用以下命令将本地代码库打包到名为 /opt/apigee/data/apigee-mirror/apigee-4.54.00.tar.gz 的单个 .tar 文件中:

        /opt/apigee/apigee-service/bin/apigee-service apigee-mirror package
      2. 将 .tar 文件复制到要更新 Edge 的节点。例如,将其复制到新节点上的 /tmp 目录。

      3. 在新节点上,将文件解压缩到 /tmp 目录:

        tar -xzf apigee-4.54.00.tar.gz

        此命令会在包含 .tar 文件的目录中创建一个名为 repos 的新目录。例如 /tmp/repos。

      4. 从 /tmp/repos 安装 Edge apigee-service 实用程序和依赖项:

        bash /tmp/repos/bootstrap_4.54.00.sh apigeeprotocol="file://" apigeerepobasepath=/tmp/repos

        请注意,您在此命令中添加了代码库目录的路径。

    • 方法 2:使用 Nginx Web 服务器安装 apigee-service

      1. 按照安装 Edge apigee-setup 实用程序中的“使用 Nginx Web 服务器从代码库安装”部分所述配置 Nginx Web 服务器。

      2. 在远程节点上,将 Edge bootstrap_4.54.00.sh 文件下载到 /tmp/bootstrap_4.54.00.sh:

        /usr/bin/curl http://uName:pWord@remoteRepo:3939/bootstrap_4.54.00.sh -o /tmp/bootstrap_4.54.00.sh

        其中,uName:pWord 是您之前为代码库设置的用户名和密码,remoteRepo 是代码库节点的 IP 地址或 DNS 名称。

      3. 在远程节点上,安装 Edge apigee-service 实用程序和依赖项:

        bash /tmp/bootstrap_4.54.00.sh apigeerepohost=remoteRepo:3939 apigeeuser=uName apigeepassword=pWord apigeeprotocol=http://

        其中 uName:pWord 是代码库用户名和密码。

  3. 使用 apigee-service 更新 apigee-setup 实用程序,如以下示例所示:

    /opt/apigee/apigee-service/bin/apigee-service apigee-setup update
  4. 更新管理服务器上的 apigee-validate 实用程序,如以下示例所示:

    /opt/apigee/apigee-service/bin/apigee-service apigee-validate update
  5. 更新管理服务器上的 apigee-provision 实用程序,如以下示例所示:

    /opt/apigee/apigee-service/bin/apigee-service apigee-provision update
  6. 按照机器更新顺序中所述的顺序,在节点上运行 update 实用程序:

    /opt/apigee/apigee-setup/bin/update.sh -c component -f configFile

    其中:

    • component 是要更新的 Edge 组件。可能的值包括:

      • edge:除新 Edge 界面之外的所有 Edge 组件:Management Server、消息处理器、Router、QPID Server、Postgres Server

      • ldap:OpenLDAP

      • ue:新 Edge 界面

      • qpid:Apigee Qpid

      • ps:Apigee Postgresql

      • zk:ZooKeeper

      • cs:Cassandra

    • configFile 是您在 4.53.00(或)4.53.01 安装期间用于定义 Edge 组件的同一配置文件。

      注意:配置文件必须可供“apigee”用户读取。如需更改所有者,请使用以下命令:

      chown apigee:apigee configFile

    您可以通过将 component 设置为“all”来针对所有组件运行 update.sh,但前提是您具有 Edge 一体化 (AIO) 安装配置文件。例如:

    /opt/apigee/apigee-setup/bin/update.sh -c all -f configFile
  7. 在运行界面组件的所有节点上重启界面组件(如果您尚未这样做):

    /opt/apigee/apigee-service/bin/apigee-service edge-management-ui restart
  8. 如测试安装中所述,通过在管理服务器上运行 apigee-validate 实用程序来测试更新。

如果您稍后决定回滚更新,请使用回滚 4.54.00 中所述的过程。

机器更新顺序

在 Edge 安装中更新机器的顺序非常重要。请按以下顺序升级组件。

  1. 使用 -c edge 选项升级所有数据中心内的所有路由器和消息处理器节点。

  2. 使用 -c edge 选项升级所有数据中心的所有管理服务器节点。

  3. 升级所有数据中心内的所有 LDAP 节点。如果您要从 Edge for Private Cloud 4.53.00 升级,则需要按照LDAP 升级的特殊步骤中的说明执行额外的步骤

  4. 在所有数据中心升级界面和 Apigee SSO(如果已安装):

    1. 如果未安装 apigee-sso:请按照选项 1:升级界面(不使用 Apigee SSO)中的说明升级到新版 Edge 界面。

    2. 如果已安装 apigee-sso:请按照选项 2:升级界面(使用 Apigee SSO)中的步骤升级到新版 Edge 界面和 Apigee SSO。

  5. 按照 Qpid 的特殊步骤,升级所有数据中心的所有 Qpid 和 edge-qpid-server 组件。

  6. 按照 Postgres 的特殊步骤,升级所有数据中心内的所有 Postgresql 和 edge-postgres-server 组件

  7. 按照 Zookeeper 升级的特殊步骤,升级所有数据中心内的所有 Zookeeper 组件。

  8. 按照 Cassandra 升级的特殊步骤,升级所有数据中心中的所有 Cassandra 组件。

  9. 无需单独执行更新创收的步骤。当您指定 -c edge 选项时,系统会更新此值。

单节点独立升级

如需将单节点独立配置升级到 4.54.00,请执行以下操作:

从 Edge for Private Cloud 4.53.00 升级时,必须先按照从 4.53.00 升级到 4.54.00 的步骤升级 LDAP,然后再开始升级所有组件。

  1. 更新所有组件:

    /opt/apigee/apigee-setup/bin/update.sh -c all -f configFile
  2. (如果您安装了 apigee-adminapi)更新 apigee-adminapi 实用程序:

    /opt/apigee/apigee-service/bin/apigee-service apigee-adminapi update

2 节点独立升级

对于 2 节点独立安装,请更新以下组件:

如需查看 Edge 拓扑和节点编号的列表,请参阅安装拓扑。

  1. 更新机器 1 上的 Edge 组件:

    /opt/apigee/apigee-setup/bin/update.sh -c edge -f configFile
  2. 在机器 1 上更新 LDAP:

    /opt/apigee/apigee-setup/bin/update.sh -c ldap -f configFile
  3. 在机器 1 上更新 New Edge 界面:

    /opt/apigee/apigee-setup/bin/update.sh -c ue -f configFile
  4. 在机器 2 上更新 Edge 组件:

    /opt/apigee/apigee-setup/bin/update.sh -c edge -f configFile
  5. 在机器 2 上更新 Qpid:

    /opt/apigee/apigee-setup/bin/update.sh -c qpid -f configFile
  6. 更新机器 2 上的 Postgres:

    /opt/apigee/apigee-setup/bin/update.sh -c ps -f configFile
  7. 在机器 1 上更新 Cassandra 和 ZooKeeper:

    /opt/apigee/apigee-setup/bin/update.sh -c zk,cs -f configFile
  8. (如果您安装了 apigee-adminapi)在机器 1 上更新 apigee-adminapi 实用程序:

    /opt/apigee/apigee-service/bin/apigee-service apigee-adminapi update

5 节点升级

为 5 节点安装更新以下组件:

如需查看 Edge 拓扑和节点编号的列表,请参阅安装拓扑。

  1. 更新机器 2、3、1 上的 Edge 组件:

    /opt/apigee/apigee-setup/bin/update.sh -c edge -f configFile
  2. 在机器 1 上更新 LDAP:

    /opt/apigee/apigee-setup/bin/update.sh -c ldap -f configFile
  3. 在机器 1 中更新 New Edge 界面:

    /opt/apigee/apigee-setup/bin/update.sh -c ue -f configFile
  4. 更新机器 4、5 上的 Edge 组件:

    /opt/apigee/apigee-setup/bin/update.sh -c edge -f configFile
  5. 在机器 4 和 5 上更新 Qpid:

    /opt/apigee/apigee-setup/bin/update.sh -c qpid -f configFile
  6. 更新机器 4、5 上的 Postgres:

    /opt/apigee/apigee-setup/bin/update.sh -c ps -f configFile
  7. 在机器 1、2 和 3 上更新 Cassandra 和 ZooKeeper:

    /opt/apigee/apigee-setup/bin/update.sh -c zk,cs -f configFile
  8. (如果您安装了 apigee-adminapi)在机器 1 上更新 apigee-adminapi 实用程序:

    /opt/apigee/apigee-service/bin/apigee-service apigee-adminapi update

9 节点集群升级

为 9 节点集群安装更新以下组件:

如需查看 Edge 拓扑和节点编号的列表,请参阅安装拓扑。

  1. 按以下顺序更新机器 4、5 和 1(路由器、消息处理器和管理服务器)上的 Edge 组件:

    /opt/apigee/apigee-setup/bin/update.sh -c edge -f configFile
  2. 在机器 1 上更新 LDAP:

    /opt/apigee/apigee-setup/bin/update.sh -c ldap -f configFile
  3. 在机器 1 中更新新版 Edge 界面:

    /opt/apigee/apigee-setup/bin/update.sh -c ue -f configFile
  4. 按顺序更新机器 6、7、8 和 9 上的 Edge 组件:

    /opt/apigee/apigee-setup/bin/update.sh -c edge -f configFile
  5. 在机器 6 和 7 上更新 Qpid:

    /opt/apigee/apigee-setup/bin/update.sh -c qpid -f configFile
  6. 在机器 8 上更新 Postgres:

    /opt/apigee/apigee-setup/bin/update.sh -c ps -f configFile
  7. 更新机器 9 上的 Postgres:

    /opt/apigee/apigee-setup/bin/update.sh -c ps -f configFile
  8. 在机器 1、2 和 3 上更新 Cassandra 和 ZooKeeper:

    /opt/apigee/apigee-setup/bin/update.sh -c zk,cs -f configFile
  9. (如果您安装了 apigee-adminapi)在机器 1 上更新 apigee-adminapi 实用程序:

    /opt/apigee/apigee-service/bin/apigee-service apigee-adminapi update

13 节点集群升级

为 13 节点集群安装更新以下组件:

如需查看 Edge 拓扑和节点编号的列表,请参阅安装拓扑。

  1. 按以下顺序更新机器 10、11、6 和 7 上的 Edge 组件:

    /opt/apigee/apigee-setup/bin/update.sh -c edge -f configFile
  2. 在机器 4 和 5 上更新 LDAP:

    /opt/apigee/apigee-setup/bin/update.sh -c ldap -f configFile
  3. 在机器 6、7 中更新新版 Edge 界面:

    /opt/apigee/apigee-setup/bin/update.sh -c ue -f configFile
  4. 按顺序更新机器 12、13、8 和 9 上的 Edge 组件:

    /opt/apigee/apigee-setup/bin/update.sh -c edge -f configFile
  5. 在机器 12 和 13 上更新 Qpid:

    /opt/apigee/apigee-setup/bin/update.sh -c qpid -f configFile
  6. 更新机器 8 上的 Postgres:

    /opt/apigee/apigee-setup/bin/update.sh -c ps -f configFile
  7. 在机器 9 上更新 Postgres:

    /opt/apigee/apigee-setup/bin/update.sh -c ps -f configFile
  8. 在机器 1、2 和 3 上更新 Cassandra 和 ZooKeeper:

    /opt/apigee/apigee-setup/bin/update.sh -c zk,cs -f configFile
  9. (如果您安装了 apigee-adminapi)在机器 6 和 7 上更新 apigee-adminapi 实用程序:

    /opt/apigee/apigee-service/bin/apigee-service apigee-adminapi update

12 节点集群升级

对于 12 节点集群安装,请更新以下组件:

如需查看 Edge 拓扑和节点编号的列表,请参阅安装拓扑。

  1. 更新 Edge(路由器和消息处理器)组件:

    • 在数据中心 1 的机器 2、3 上:

      /opt/apigee/apigee-setup/bin/update.sh -c edge -f configFile
    • 在数据中心 2 的机器 8、9 上:

      /opt/apigee/apigee-setup/bin/update.sh -c edge -f configFile
  2. 更新 Edge(管理服务器)组件:

    • 在数据中心 1 的机器 1 上:

      /opt/apigee/apigee-setup/bin/update.sh -c edge -f configFile
    • 在数据中心 2 的机器 7 上:

      /opt/apigee/apigee-setup/bin/update.sh -c edge -f configFile
  3. 更新 LDAP:

    • 数据中心 1 中的机器 1:

      /opt/apigee/apigee-setup/bin/update.sh -c ldap -f configFile
    • 数据中心 2 中的机器 7:

      /opt/apigee/apigee-setup/bin/update.sh -c ldap -f configFile
  4. 更新了新版 Edge 界面组件:

    • 在数据中心 1 的机器 1 上:

      /opt/apigee/apigee-setup/bin/update.sh -c ue -f configFile
    • 在数据中心 2 的机器 7 上:

      /opt/apigee/apigee-setup/bin/update.sh -c ue -f configFile
  5. 更新 Edge 组件:

    • 数据中心 1 中的机器 4、5、6:

      /opt/apigee/apigee-setup/bin/update.sh -c edge -f configFile
    • 数据中心 2 中的机器 10、11、12:

      /opt/apigee/apigee-setup/bin/update.sh -c edge -f configFile
  6. 更新 qpidd:

    • 数据中心 1 中的机器 4、5:

      /opt/apigee/apigee-setup/bin/update.sh -c qpid -f configFile
    • 数据中心 2 中的机器 10、11:

      /opt/apigee/apigee-setup/bin/update.sh -c qpid -f configFile
  7. 更新 Postgres:

    • 数据中心 1 中的机器 6:

      /opt/apigee/apigee-setup/bin/update.sh -c ps -f configFile
    • 数据中心 2 中的机器 12:

      /opt/apigee/apigee-setup/bin/update.sh -c ps -f configFile
  8. 更新 Cassandra 和 ZooKeeper:

    • 数据中心 1 中的机器 1、2 和 3:

      /opt/apigee/apigee-setup/bin/update.sh -c zk,cs -f configFile
    • 在数据中心 2 的机器 7、8 和 9 上:

      /opt/apigee/apigee-setup/bin/update.sh -c zk,cs -f configFile
  9. (如果您安装了 apigee-adminapi)更新 apigee-adminapi 实用程序:

    • 数据中心 1 中的机器 1:

      /opt/apigee/apigee-service/bin/apigee-service apigee-adminapi update
    • 数据中心 2 中的机器 7:

      /opt/apigee/apigee-service/bin/apigee-service apigee-adminapi update

对于非标准配置

如果您使用的是非标准配置,请按以下顺序更新 Edge 组件:

  1. 路由器

  2. 消息处理器

  3. 管理服务器

  4. LDAP

  5. 界面(传统版界面或新版界面)

  6. 单点登录 (SSO)(如果适用)

  7. Qpid 和 edge-qpid-server

  8. Postgres 和 edge-postgres-server

  9. ZooKeeper

  10. Cassandra

  11. apigee-adminapi