如果您在更新到 Edge 4.52.02 期间遇到错误,可以回滚 组件,然后再次尝试更新。
您可以将 Edge 4.52.02 回滚到以下主要发布版本:
- 版本 4.52.01
- 版本 4.52.00
- 版本 4.51.00
回滚版本涉及回滚您可能已升级的每个组件。此外,根据您最初的版本,在回滚某些软件组件之前,您可能需要考虑特殊注意事项。下表列出了在回滚期间可能需要执行特殊步骤的各种软件:
回滚到版本 | 软件的特别注意事项 |
---|---|
4.52.01 | Cassandra |
4.52.00 | Cassandra、Zookeeper、Qpid |
4.51.00 | Cassandra、Zookeeper、Qpid、Postgres |
在以下两种情况下,您可能需要执行回滚:
- 回滚到上一个主要或次要版本。例如, 4.52.02 至 4.52.00。
- 在 Google Cloud 控制台中 发布版本。例如,从 4.52.00.02 到 4.52.00.01。
如需了解详情,请参阅 Apigee Edge 版本 过程。
回滚顺序
组件的回滚应按照它们的升级顺序进行,但管理服务器应在 Cassandra 之后回滚。
Private Cloud 4.52.02 的典型常规回滚顺序如下所示:
- 回滚 Postgres、Qpid 和其他分析相关组件
- 回滚路由器和消息处理器
- 回滚 Cassandra、Zookeeper
- 回滚管理服务器
例如,假设您已将整个 Cassandra 集群、所有管理服务器和一些 RMP 从版本 4.52.01 升级到版本 4.52.02,并希望回滚。在这种情况下,您可以执行以下操作:
- 逐个回滚所有 RMP
- 使用备份回滚整个 Cassandra 集群
- 逐个回滚边缘管理服务器节点
谁可以执行回滚
执行回滚的用户应与最初更新 Edge 的用户相同,或者 以 root 身份运行的用户。
默认情况下,Edge 组件以用户“apigee”的身份运行。在某些情况下,您可能使用的是 不同的用户例如,如果路由器必须访问 则您必须以 root 或具有访问权限的用户身份运行路由器 端口。或者,您可以以一个用户身份运行一个组件,以另一个用户身份运行另一个组件。
具有通用代码的组件
以下 Edge 组件具有相同的代码。因此,如果要回滚 因此您必须回滚该节点上的所有这些组件。
edge-management-server
(管理服务器)edge-message-processor
(消息处理器)edge-router
(路由器)edge-postgres-server
(Postgres 服务器)edge-qpid-server
(Qpid 服务器)
例如,如果您在 Google Cloud 上安装了管理服务器、路由器和消息处理器, 因此,如果要回滚其中任何一个,则必须同时回滚所有三个。
Cassandra 回滚
在特定 Cassandra 节点上对 Cassandra 进行重大升级时,Cassandra 会修改该节点上所存储数据的架构,导致直接回滚不可行。回滚的方法有两种。请根据您回滚的升级的状态使用其中一种方法。
回滚方法
擦除并使用集群中的现有节点重新构建节点
如果集群中至少有一个功能齐全的数据中心仍在旧版 Cassandra (Cassandra 2.1.22) 上,则可以遵循此流程。如果您已升级整个 Cassandra 集群并想要回滚,则必须按照擦除并恢复备份或虚拟机快照中的步骤操作。
回滚步骤
- 从要回滚的节点开始:
<ph type="x-smartling-placeholder">
- </ph>
- 在节点上停止 Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra stop
- 从节点卸载 Cassandra 软件:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra uninstall
- 从节点中移除数据目录:
rm -rf /opt/apigee/data/apigee-cassandra
- 下载并运行您要回滚到的适用于私有云的旧版 Edge 的引导加载程序。
示例:如需回滚到 4.52.01,
- 下载 4.52.01 的引导加载程序:
curl https://software.apigee.com/bootstrap_4.52.01.sh -o /tmp/bootstrap_4.52.01.sh -u ‘uName:pWord’
- 执行 4.52.01 的引导加载程序:
sudo bash /tmp/bootstrap_4.52.01.sh apigeeuser=uName apigeepassword=pWord
- 在节点上设置 Cassandra:
/opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile
- 通过提供正常运行的数据中心的名称,在节点上执行重建:
/opt/apigee/apigee-cassandra/bin/nodetool rebuild -h <node-IP> <functional-dc>
- 在要回滚的每个节点上重复上述步骤,一次一个。
- 在节点上停止 Cassandra:
- 在所有节点回滚并重新构建后:
<ph type="x-smartling-placeholder">
- </ph>
- 运行任何管理服务器节点的设置。确保管理服务器为回滚版本。否则,请同时回滚管理服务器。
- 停止管理服务器:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server stop
- 如果您使用了创收功能,也请卸载创收功能:
/opt/apigee/apigee-service/bin/apigee-service edge-mint-gateway uninstall
- 卸载管理服务器:
/opt/apigee/apigee-service/bin/apigee-service edge-gateway uninstall
- 下载并执行旧版本的引导加载程序。例如,执行以下步骤即可下载并执行 4.52.01 版本的引导加载程序:
curl https://software.apigee.com/bootstrap_4.52.01.sh -o /tmp/bootstrap_4.52.01.sh -u ‘uName:pWord’
sudo bash /tmp/bootstrap_4.52.01.sh apigeeuser=uName apigeepassword=pWord - 运行一个管理服务器节点的设置:
/opt/apigee/apigee-setup/bin/setup.sh -p mt -f configFile
重建后的优化
在上面的步骤中,在重建过程中,节点中的所有数据都是从远程数据中心流式传输的。将所有副本流式传输到本地数据中心后,您可以使用修复来优化此过程。这可避免跨 DC 流式传输,并且应该比从远程 DC 重新构建所有节点更快。
示例:假设您的本地数据中心中有 6 个 Cassandra 节点。默认情况下,Apigee 的复制因子为 3,因此每个节点可拥有 50% 的数据。在这种情况下,您可以按照上面的过程重新构建节点 1 和 4。对于节点 2、3、5 和 6,请按照以下步骤恢复备份并运行修复。
- 按照说明在本地数据中心重新构建副本的步骤执行第六步。
- 对于其余节点,请在剩余的每个节点上逐一执行以下步骤。
- 恢复您在此节点上捕获的备份(注意:此备份可能是在您开始 Cassandra 升级之前进行的,因此数据可能已过时):
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restore backup_file
- 如果您有节点的虚拟机快照,则可以恢复快照,而不是恢复 Cassandra 备份。
- 恢复备份后,在节点上启动 Cassandra 服务:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra start
- 在节点上执行修复,以便从现有数据中心流式传输最新数据:
/opt/apigee/apigee-cassandra/bin/nodetool -h <node-IP> repair -dc <local-dc-name>
- 对要修复的每个节点重复第 3-6 步。
- 恢复您在此节点上捕获的备份(注意:此备份可能是在您开始 Cassandra 升级之前进行的,因此数据可能已过时):
擦除和恢复备份/虚拟机快照
如果您已升级整个 Cassandra 集群并希望回滚,则此过程是唯一可用的过程。
此外,Apigee 备份因节点而异。您无法将从一个节点获取的备份恢复到另一个节点。Cassandra 备份包含节点元数据信息(例如 IP 地址、铃声位置等)。
- 从集群中的 1 个 Cassandra 节点开始:
<ph type="x-smartling-placeholder">
- </ph>
- 在节点上停止 Cassandra 服务:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra stop
- 从节点卸载 Cassandra 软件:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra uninstall
- 从节点中移除数据目录:
rm -rf /opt/apigee/data/apigee-cassandra
- 下载并运行您要回滚到的适用于私有云的旧版 Edge 的引导加载程序。
示例:回滚到 4.52.01
- 下载 4.52.01 的引导加载程序:
curl https://software.apigee.com/bootstrap_4.52.01.sh -o /tmp/bootstrap_4.52.01.sh -u ‘uName:pWord’
- 执行 4.52.01 的引导加载程序:
sudo bash /tmp/bootstrap_4.52.01.sh apigeeuser=uName apigeepassword=pWord
- 在节点上设置 Cassandra:
/opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile
- 按照使用备份进行恢复中的步骤恢复节点上的备份。
- 在节点上停止 Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra stop
- 删除数据目录:
rm -rf /opt/apigee/data/apigee-cassandra/data
- 恢复备份:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restore backup_file
- 在节点上启动 Cassandra 服务:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra start
- 在每个 Cassandra 节点上重复执行步骤,一次一个。
- 逐个节点运行修复:
/opt/apigee/apigee-cassandra/bin/nodetool -h <node-IP> repair -pr
- 在节点上停止 Cassandra 服务:
回滚 ZooKeeper 3.8.3 更新
如果您要回滚到 4.52.00 或 4.51.00 版本,则需要在回滚 ZooKeeper 之前参考一些特殊步骤。回滚中列出了这些步骤。
如果您要回滚到 4.52.01 版,请按照下文回滚到之前的主要或次要版本部分所述,像回滚所有软件一样回滚 ZooKeeper。
回滚 Qpid
如果您要回滚到 4.52.00 或 4.51.00 版本,则需要在回滚 Qpid 之前参考一些特殊步骤。回滚中列出了这些步骤。
如果您要回滚到版本 4.52.01,请像回滚回滚到之前的主要版本或次要版本部分中列出的任何软件一样回滚 Qpid。
回滚 Postgres 10.17 更新
如果您要回滚到 4.51.00 版,则需要在回滚 Postgres 之前参考一些特殊步骤。回滚中列出了这些步骤。
如果您要回滚到 4.52.01 或 4.52.00 版,请按照下文回滚到前一个主要版本或次要版本部分中的说明回滚 Postgres,就像回滚任何软件一样。
回滚到上一个主要或次要版本
要回滚到之前的主要或次要版本,请在托管 组件:
-
下载您要回滚到的版本对应的
bootstrap.sh
文件 返回:- 如需回滚到 4.51.00,请下载
bootstrap_4.51.00.sh
:curl https://software.apigee.com/bootstrap_4.51.00.sh -o /tmp/bootstrap_4.51.00.sh
- 如需回滚到 4.51.00,请下载
- 停止要回滚的组件:
<ph type="x-smartling-placeholder">
- </ph>
- 要回滚设备上任何具有通用代码的组件,请执行以下操作:
则必须停止所有节点,如以下示例所示:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server stop
/opt/apigee/apigee-service/bin/apigee-service edge-router stop
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor stop
/opt/apigee/apigee-service/bin/apigee-service edge-qpid-server stop
/opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
- 要回滚节点上的任何其他组件,只需停止该组件即可:
<ph type="x-smartling-placeholder">
- </ph>
/opt/apigee/apigee-service/bin/apigee-service component stop
- 要回滚设备上任何具有通用代码的组件,请执行以下操作:
则必须停止所有节点,如以下示例所示:
- 如果您要回滚创收功能,请将其从所有管理服务器和邮件中卸载
处理器节点:
/opt/apigee/apigee-service/bin/apigee-service edge-mint-gateway uninstall
- 卸载该组件以在节点上进行回滚:
<ph type="x-smartling-placeholder">
- </ph>
- 要回滚设备上任何具有通用代码的组件,请执行以下操作:
节点,则必须通过卸载
edge-gateway
组件来将其全部卸载 组,如以下示例所示:/opt/apigee/apigee-service/bin/apigee-service edge-gateway uninstall
- 要回滚节点上的其他任何组件,只需卸载该组件,因为
如下例所示:
/opt/apigee/apigee-service/bin/apigee-service component uninstall
其中 component 是组件名称。
- 要回滚边缘路由器,您必须删除
/opt/nginx/conf.d
文件。edge-gateway
组件组:cd /opt/nginx/conf.d
rm -rf *
- 要回滚设备上任何具有通用代码的组件,请执行以下操作:
节点,则必须通过卸载
- 卸载 4.52.02 版的
apigee-setup
:/opt/apigee/apigee-service/bin/apigee-service apigee-setup uninstall
- 安装 4.51.00 版的
apigee-service
实用程序及其依赖项。以下示例将安装 4.51.00 版apigee-service
:sudo bash /tmp/bootstrap_4.51.00.sh apigeeuser=uName apigeepassword=pWord
其中,uName 和 pWord 是您收到的用户名和密码 如果您省略 pWord,系统会提示您输入。
如果您收到错误消息,请确保已在第 4 步中下载了
bootstrap.sh
文件 1. - 安装
apigee-setup
:/opt/apigee/apigee-service/bin/apigee-service apigee-setup install
- 安装旧版组件:
/opt/apigee/apigee-setup/bin/setup.sh -p component -f configFile
其中,component 是要安装的组件,configFile 是指要安装的组件 旧版本的配置文件。
- 如果要回滚 Qpid,请清空 iptables:
sudo iptables -F
- 对托管要回滚的组件的每个节点重复此过程。
回滚到上一个补丁版本
如需将组件回滚到特定补丁版本,请在每个节点上执行以下操作 托管组件的容器:
- 下载特定的组件版本:
/opt/apigee/apigee-service/bin/apigee-service component_version install
其中 component_version 是要安装的组件和补丁版本。例如:
/opt/apigee/apigee-service/bin/apigee-service edge-ui-4.51.05-0.0.3749 install
如果您使用的是 Apigee 在线代码库,则可以确定可用的组件 可以使用以下命令:
yum --showduplicates list comp
例如:
yum --showduplicates list edge-ui
- 使用
apigee-setup
安装组件:/opt/apigee/apigee-setup/bin/setup.sh -p comp -f configFile
例如:
/opt/apigee/apigee-setup/bin/setup.sh -p ui -f configFile
请注意,您在安装组件时仅指定组件名称,而不指定版本。
- 对托管要回滚的组件的每个节点重复此过程。
回滚 mTLS
如需回滚 mTLS 更新,请在所有主机上执行以下步骤:
- 停止 Apigee:
apigee-all stop
- 停用 mTLS:
apigee-service apigee-mtls uninstall
- 重新安装 mTLS:
apigee-service apigee-mtls install
apigee-service apigee-mtls setup -f /opt/silent.conf