此过程包括从 Apigee Hybrid 1.9.x 版升级到 Apigee Hybrid 1.10.5 版,以及从先前 Hybrid 1.10.x 版升级到 1.10.5 版。
次要版本升级(例如,1.9 版到 1.10 版)和补丁版本升级(例如 1.10.0 版到 1.10.5 版)使用相同的过程。
升级到 1.10.5 版概览
以下各部分介绍升级 Apigee Hybrid 的过程:
前提条件
以下升级说明假定您已安装 Apigee Hybrid 1.9.x 版,并且希望将其升级到 1.10.5 版。如果您要从更低版本进行更新,请参阅将 Apigee Hybrid 升级到 1.9 版的说明。
准备升级到 1.10 版
备份 Hybrid 安装(推荐)
- 这些说明将环境变量 APIGEECTL_HOME 用于文件系统中已安装
apigeectl
的目录。如果需要,请切换到apigeectl
目录,然后使用以下命令定义变量:export APIGEECTL_HOME=$PWD
echo $APIGEECTL_HOME
export APIGEECTL_HOME=$PWD
echo $APIGEECTL_HOME
set APIGEECTL_HOME=%CD%
echo %APIGEECTL_HOME%
- 创建 1.9 版
$APIGEECTL_HOME/
目录的备份副本。例如:tar -czvf $APIGEECTL_HOME/../apigeectl-v1.9-backup.tar.gz $APIGEECTL_HOME
- 按照 Cassandra 备份和恢复中的说明备份 Cassandra 数据库。
升级 Kubernetes 版本
检查您的 Kubernetes 平台版本,并根据需要将 Kubernetes 平台升级到 Hybrid 1.9 和 Hybrid 1.10 均支持的版本。如需帮助,请参阅该平台的相关文档。
点击即可展开支持的平台列表
1.10
|
1.11 | 1.12 | |||
---|---|---|---|---|---|
GKE on Google Cloud | 1.24.x
1.25.x 1.26.x 1.27.x(≥ 1.10.5) 1.28.x(≥ 1.10.5) |
1.25.x
1.26.x 1.27.x 1.28.x(≥ 1.11.2) 1.29.x(≥ 1.11.2) |
1.26.x
1.27.x 1.28.x 1.29.x(≥ 1.12.1) |
||
GKE on AWS | 1.13.x (K8s v1.24.x)
1.14.x (K8s v1.25.x) 1.26.x(12) 1.27.x(≥ 1.10.5) 1.28.x(≥ 1.10.5) |
1.14.x (K8s v1.25.x)
1.26.x(12) 1.27.x 1.28.x(≥ 1.11.2) 1.29.x(≥ 1.11.2) |
1.26.x(12)
1.27.x 1.28.x 1.29.x(≥ 1.12.1) |
||
GKE on Azure | 1.13.x
1.14.x 1.26.x(12) 1.27.x(≥ 1.10.5) 1.28.x(≥ 1.10.5) |
1.14.x
1.26.x(12) 1.27.x 1.28.x(≥ 1.11.2) 1.29.x(≥ 1.11.2) |
1.26.x(12)
1.27.x 1.28.x 1.29.x(≥ 1.12.1) |
||
Google Distributed Cloud on VMware(纯软件) (1) (13) | 1.13.x
1.14.x 1.15.x (K8s v1.26.x) 1.16.x (K8s v1.27.x) 1.27.x(≥ 1.10.5) 1.28.x(≥ 1.10.5) |
1.14.x
1.15.x (K8s v1.26.x) 1.16.x (K8s v1.27.x) 1.28.x(≥ 1.11.2) 1.29.x(≥ 1.11.2) |
1.15.x (K8s v1.26.x)
1.16.x (K8s v1.27.x) 1.28.x(12) 1.29.x(≥ 1.12.1) |
||
Google Distributed Cloud on Bare Metal(纯软件)(1) | 1.13.x
1.14.x (K8s v1.25.x) 1.15.x (K8s v1.26.x) 1.16.x (K8s v1.27.x) 1.27.x(12)(≥ 1.10.5) 1.28.x(≥ 1.10.5) |
1.14.x
1.15.x (K8s v1.26.x) 1.16.x (K8s v1.27.x) 1.28.x(12)(≥ 1.11.2) 1.29.x(≥ 1.11.2) |
1.15.x (K8s v1.26.x)
1.16.x (K8s v1.27.x) 1.28.x(12) 1.29.x(≥ 1.12.1) |
||
EKS(7) | 1.24.x
1.25.x 1.26.x 1.27.x(≥ 1.10.5) 1.28.x(≥ 1.10.5) |
1.25.x
1.26.x 1.27.x 1.28.x(≥ 1.11.2) 1.29.x(≥ 1.11.2) |
1.26.x
1.27.x 1.28.x 1.29.x(≥ 1.12.1) |
||
AKS(7) | 1.24.x
1.25.x 1.26.x 1.27.x(≥ 1.10.5) 1.28.x(≥ 1.10.5) |
1.25.x
1.26.x 1.27.x 1.28.x(≥ 1.11.2) 1.29.x(≥ 1.11.2) |
1.26.x
1.27.x 1.28.x 1.29.x(≥ 1.12.1) |
||
OpenShift(7) | 4.11
4.12 4.14(≥ 1.10.5) 4.15(≥ 1.10.5) |
4.12
4.13 4.14 4.15(≥ 1.11.2) 4.16(≥ 1.11.2) |
4.12
4.13 4.14 4.15 4.16(≥ 1.12.1) |
||
Rancher Kubernetes Engine (RKE) |
v1.26.2+rke2r1
1.27.x(≥ 1.10.5) 1.28.x(≥ 1.10.5) |
v1.26.2+rke2r1
v1.27.x 1.28.x(≥ 1.11.2) 1.29.x(≥ 1.11.2) |
v1.26.2+rke2r1 v1.27.x 1.28.x 1.29.x(≥ 1.12.1) |
||
VMware Tanzu | 不适用 | 不适用 | v1.26.x | ||
组件 |
1.10 | 1.11 | 1.12 | ||
Anthos Service Mesh | 1.17.x(10) | 1.18.x(10) | 1.19.x(10) | ||
JDK | JDK 11 | JDK 11 | JDK 11 | ||
cert-manager |
1.10.x 1.11.x 1.12.x |
1.11.x 1.12.x 1.13.x |
1.11.x 1.12.x 1.13.x |
||
Cassandra | 3.11 | 3.11 | 4.0 | ||
Kubernetes | 1.24.x 1.25.x 1.26.x |
1.25.x 1.26.x 1.27.x |
1.26.x 1.27.x 1.28.x |
||
kubectl | 1.27.x 1.28.x 1.29.x |
||||
Helm | 3.10+ | 3.10+ | 3.14.2+ | ||
Secret Store CSI 驱动程序 | 1.3.4 | 1.4.1 | |||
保险柜 | 1.13.x | 1.15.2 | |||
(1) 在本地 Anthos (Google Distributed Cloud) 1.13 版上,请按照以下说明操作以避免与 (2) Apigee Hybrid 1.7.2 版及更高版本提供支持。 (3) Apigee Hybrid 1.10 版及更低版本已达到官方服务终止 (EOL) 日期。定期每月发布的补丁将不再提供。这些版本不再受官方支持,除非客户有明确的官方例外要求继续支持。其他客户必须升级。 (4)Anthos 本地 (Google Distributed Cloud) 1.12 版及更低版本不再受支持。请参阅 Distributed Cloud on Bare Metal 版本支持政策和 Distributed Cloud on VMware 支持的版本列表。 (5) Google Distributed Cloud on Bare Metal 或 Google Distributed Cloud on VMware 需要 Anthos Service Mesh 1.14 或更高版本。我们建议您升级到 Hybrid v1.8 并切换到 Apigee 入站流量网关,该网关不再需要您在 Hybrid 集群上安装 Anthos Service Mesh。 (6) Apigee Hybrid 1.8.4 版及更高版本提供支持。 (7) Apigee Hybrid 1.8.4 版及更高版本不支持。 (8)Apigee Hybrid 1.7.6 版及更高版本提供支持。 (9) Apigee Hybrid 1.8.5 版及更高版本不支持。 (10) Anthos Service Mesh 会自动与 Apigee Hybrid 1.9 及更高版本一起安装。 (11) Apigee Hybrid 1.9.2 版及更高版本提供支持。 (12) GKE on AWS 版本号现在反映了 Kubernetes 版本。请参阅 GKE Enterprise 版本和升级支持以了解版本详细信息和推荐的补丁。 (13) 保险柜未在 Google Distributed Cloud for VMware 上认证。 (14) Apigee Hybrid 1.10.5 版及更高版本提供支持。 (15) Apigee Hybrid 1.11.2 版及更高版本提供支持。 (16) Apigee Hybrid 1.12.1 版及更高版本提供支持。 |
关联集群简介
对于 Apigee Hybrid 1.7.x 版及更低版本,如果您要在 Elastic Kubernetes Service (EKS)、Azure Kubernetes Service (AKS) 或其他受支持的第三方 Kubernetes 服务提供商的多云环境中运行 Apigee Hybrid,则必须使用 GKE 关联集群。集群关联可让 Google 衡量 Anthos Service Mesh 的使用情况。
对于 Apigee Hybrid 1.8.x 版,如果您要将 Anthos Service Mesh 用于入站流量网关,则 GKE 关联集群是必需的。如果您使用的是 Apigee 入站流量网关,则关联集群是可选的。
安装 Hybrid 1.10.5 运行时
- 确保您位于 Hybrid 基本目录中(
apigeectl
可执行文件所在目录的父级目录):cd $APIGEECTL_HOME/..
-
使用以下命令下载适用于您的操作系统的软件包版本。请务必在下表中选择您的平台:
Linux 64 位:
curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.10.5/apigeectl_linux_64.tar.gz
Mac 64 位:
curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.10.5/apigeectl_mac_64.tar.gz
Windows 64 位
curl -LO ^ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.10.5/apigeectl_windows_64.zip
- 将当前
apigeectl/
目录重命名为备份目录名称。例如:mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.9/
mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.9/
rename %APIGEECTL_HOME% %APIGEECTL_HOME%-v1.9
-
将下载的 gzip 文件内容解压缩到 Hybrid 基本目录中。 Hybrid 基本目录是重命名后的
apigeectl-v1.9
目录所在的目录:tar xvzf
filename .tar.gz -C ./tar xvzf
filename .tar.gz -C ./tar xvzf
filename .zip -C ./ -
默认情况下,tar 内容会扩展到其名称中包含版本和平台的目录。例如:
./apigeectl_1.10.5-xxxxxxx_linux_64
。使用以下命令将该目录重命名为apigeectl
:mv
apigeectl_1.10.5-xxxxxxx_linux_64 apigeectlmv
apigeectl_1.10.5-xxxxxxx_mac_64 apigeectlrename
apigeectl_1.10.5-xxxxxxx_windows_64 apigeectl -
切换到
apigeectl
目录:cd ./apigeectl
此目录是
apigeectl
主目录。它是apigeectl
可执行命令所在的位置。 - 以下说明将环境变量
$APIGEECTL_HOME
用于文件系统中安装apigeectl
实用程序的目录。如果需要,请切换到apigeectl
目录,然后使用以下命令定义变量:export APIGEECTL_HOME=$PWD
echo $APIGEECTL_HOME
export APIGEECTL_HOME=$PWD
echo $APIGEECTL_HOME
set APIGEECTL_HOME=%CD%
echo %APIGEECTL_HOME%
- 使用
version
命令验证apigeectl
的版本:./apigeectl version
Version: 1.10.5
- 创建
hybrid-base-directory/hybrid-files
目录,然后移至该目录。hybrid-files
目录是替换文件、证书和服务账号等配置文件所在的位置。例如:mkdir $APIGEECTL_HOME/../hybrid-files
cd $APIGEECTL_HOME/../hybrid-files
mkdir $APIGEECTL_HOME/../hybrid-files
cd $APIGEECTL_HOME/../hybrid-files
mkdir %APIGEECTL_HOME%/../hybrid-files
cd %APIGEECTL_HOME%/../hybrid-files
- 使用以下命令验证
kubectl
是否设置为正确的上下文。当前上下文应设置为您要在其中升级 Apigee Hybrid 的集群。kubectl config get-contexts | grep \*
- 在
hybrid-files
目录中:-
将以下符号链接更新为
$APIGEECTL_HOME
。这些链接使您可以从hybrid-files
目录中运行新安装的apigeectl
命令:ln -nfs
$APIGEECTL_HOME
/tools toolsln -nfs
$APIGEECTL_HOME
/config configln -nfs
$APIGEECTL_HOME
/templates templatesln -nfs
$APIGEECTL_HOME
/plugins plugins - 要检查符号链接是否正确创建,请执行以下命令,并确保链接路径指向正确的位置:
ls -l | grep ^l
-
将以下符号链接更新为
- 对 overrides.yaml 文件进行以下更改,以启用
apigee-operator
图表或使用正确的标记1.10.5-hotfix.1
:ao: image: url: "gcr.io/apigee-release/hybrid/apigee-operators" tag: "1.10.5-hotfix.1"
- 执行试运行初始化以检查是否存在错误:
${APIGEECTL_HOME}/apigeectl init -f
OVERRIDES_FILE --dry-run=client其中,OVERRIDES_FILE 是替换文件的名称,例如
./overrides/overrides.yaml
。 - 如果没有错误,请初始化 Hybrid 1.10.5:
$APIGEECTL_HOME/apigeectl init -f
OVERRIDES_FILE - 检查初始化状态:
$APIGEECTL_HOME/apigeectl check-ready -f
OVERRIDES_FILE 成功后,输出会显示
All containers ready.
:kubectl describe apigeeds -n apigee
在输出中,查找
State: running
。 - 使用
--dry-run
标志,通过试运行apply
命令检查是否存在错误:$APIGEECTL_HOME/apigeectl apply -f
OVERRIDES_FILE --dry-run=client - 如果没有错误,则应用替换文件。选择生产环境或非生产环境的相关说明并按照这些说明操作,具体取决于您的安装。
对于生产环境,请单独升级每个 Hybrid 组件,并检查升级后的组件的状态,再继续升级下一个组件。
- 确保您位于
hybrid-files
目录中。 - 应用替换文件以升级 Cassandra:
$APIGEECTL_HOME/apigeectl apply -f
OVERRIDES_FILE --datastore - 检查完成情况:
$APIGEECTL_HOME/apigeectl check-ready -f
OVERRIDES_FILE 仅当 Pod 准备就绪后,才继续执行下一步。
- 应用替换文件以升级遥测组件和检查完成情况:
$APIGEECTL_HOME/apigeectl apply -f
OVERRIDES_FILE --telemetry$APIGEECTL_HOME/apigeectl check-ready -f
OVERRIDES_FILE - 启动 Redis 组件:
$APIGEECTL_HOME/apigeectl apply -f
OVERRIDES_FILE --redis - 应用替换文件以升级组织层级组件(MART、Watcher 和 Apigee Connect)并检查完成情况:
$APIGEECTL_HOME/apigeectl apply -f
OVERRIDES_FILE --org$APIGEECTL_HOME/apigeectl check-ready -f
OVERRIDES_FILE - 应用替换文件以升级您的环境。您有以下两种选择:
- 对每个环境逐一应用:每次将替换文件应用于一个环境,然后检查完成情况。对每个环境重复执行此步骤:
$APIGEECTL_HOME/apigeectl apply -f
OVERRIDES_FILE --envENV_NAME $APIGEECTL_HOME/apigeectl check-ready -f
OVERRIDES_FILE 其中,ENV_NAME 是您要升级的环境的名称。
- 同时应用于所有环境:将替换文件同时应用于所有环境,然后检查完成情况:
$APIGEECTL_HOME/apigeectl apply -f
OVERRIDES_FILE --all-envs$APIGEECTL_HOME/apigeectl check-ready -f
OVERRIDES_FILE
- 对每个环境逐一应用:每次将替换文件应用于一个环境,然后检查完成情况。对每个环境重复执行此步骤:
- 应用替换文件以升级
virtualhosts
组件并检查完成情况:$APIGEECTL_HOME/apigeectl apply -f
OVERRIDES_FILE --settings virtualhosts$APIGEECTL_HOME/apigeectl check-ready -f
OVERRIDES_FILE
在大多数非生产、演示或实验环境中,您可以将替换文件同时应用于所有组件。如果您的非生产环境大且复杂或非常类似于生产环境,则可能需要使用升级生产环境的说明。
- 确保您位于
hybrid-files
目录中。 $APIGEECTL_HOME/apigeectl apply -f
OVERRIDES_FILE - 检查状态:
$APIGEECTL_HOME/apigeectl check-ready -f
OVERRIDES_FILE
- 确保您位于
回滚升级
要回滚以前的升级,请按以下步骤操作:
- 清理混合运行时命名空间的已完成作业,其中 NAMESPACE 是替换文件中指定的命名空间(如果您指定了命名空间)。如果没有,则默认命名空间为
apigee
:kubectl delete job -n
NAMESPACE \ $(kubectl get job -nNAMESPACE \ -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}') - 为
apigee-system
命名空间清理已完成作业:kubectl delete job -n apigee-system \ $(kubectl get job -n apigee-system \ -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}')
- 更改
APIGEECTL_HOME
变量,使其指向包含先前版本apigeectl
的目录。例如:export APIGEECTL_HOME=
PATH_TO_PREVIOUS_APIGEECTL_DIRECTORY - 在要回滚到的安装的根目录中,运行
apigeectl apply
,检查 pod 的状态,然后运行apigeectl init
。对于要回滚到的版本,请务必使用原始替换文件:- 在 hybrid-files 目录中,运行
apigeectl apply
:$APIGEECTL_HOME
/apigeectl apply -fORIGINAL_OVERRIDES_FILE 其中,ORIGINAL_OVERRIDES_FILE 是先前 Hybrid 安装版本的替换文件的相对路径和文件名,例如
./overrides/overrides1.9.yaml
。 - 检查您的 Pod 的状态:
kubectl -n
NAMESPACE get pods其中,NAMESPACE 是您的 Apigee Hybrid 命名空间。
- 检查
apigeeds
的状态:kubectl describe apigeeds -n apigee
输出应如下所示:
Status: Cassandra Data Replication: Cassandra Pod Ips: 10.8.2.204 Cassandra Ready Replicas: 1 Components: Cassandra: Last Successfully Released Version: Revision: v1-f8aa9a82b9f69613 Version: v1 Replicas: Available: 1 Ready: 1 Total: 1 Updated: 1 State: running Scaling: In Progress: false Operation: Requested Replicas: 0 State: running
仅当
apigeeds
pod 正在运行时才继续执行下一步。 - 运行以下命令,记下升级后消息处理器的新副本计数值。如果这些值与您之前设置的值不匹配,请更改替换文件中的值,以与先前的配置匹配。
apigeectl apply -f
ORIGINAL_OVERRIDES_FILE --dry-run=client --print-yaml --env ENV_NAME 2>/dev/null |grep "runtime:" -A 25 -B 1| grep "autoScaler" -A 2输出应如下所示:
autoScaler: minReplicas: 2 maxReplicas: 10
- 运行
apigeectl init
:$APIGEECTL_HOME
/apigeectl init -fORIGINAL_OVERRIDES_FILE
- 在 hybrid-files 目录中,运行