4.1 KiB
| title | description | weight | keywords | owner | test | |||
|---|---|---|---|---|---|---|---|---|
| 原地升级 | 原地升级和回退。 | 20 |
|
istio/wg-environments-maintainers | no |
通过 istioctl upgrade 命令对 Istio 进行升级。
{{< tip >}} 金丝雀升级比原地升级更安全,是推荐的升级方法。 {{< /tip >}}
Istio 的升级指令同样可以执行回退操作。
阅读 istioctl 升级参考来了解
istioctl upgrade 指令提供的全部参数。
{{< warning >}}
istioctl upgrade 用于原地升级,并且与使用 --revision 参数进行的安装不兼容。
此类安装的升级将失败,并显示错误。
{{< /warning >}}
升级的前置条件
在您执行升级之前,请检查以下条件:
-
安装的 Istio 版本与升级的目标版本之间最多差一个次要版本。例如, 如果要升级到 1.7.x 版本,需要至少 1.6.0 或更高版本。
-
您是使用 {{< istioctl >}} 安装的 Istio。
升级步骤
{{< warning >}}
在升级过程中,服务可能会发生流量中断。为了最大程度的减少中断,请确保 istiod
至少有两个副本正在运行。另外,请确保 PodDisruptionBudgets
配置的最低可用性为 1。
{{< /warning >}}
本节所使用的所有命令应该使用新版本的 istioctl 运行,可执行文件可以在下载包的 bin/ 目录下找到。
-
下载新版 Istio,并且切换到该目录。
-
确保您的 Kubernetes 配置指向的是要升级的集群:
{{< text bash >}} $ kubectl config view {{< /text >}}
-
确保此升级与您的环境兼容:
{{< text bash >}} $ istioctl x precheck ✔ No issues found when checking the cluster. Istio is safe to install or upgrade! To get started, check out https://istio.io/latest/docs/setup/getting-started/ {{< /text >}}
-
通过执行以下指令开始升级:
{{< text bash >}} $ istioctl upgrade {{< /text >}}
{{< warning >}} 如果您使用
-f参数安装 Istio,那么您必须提供同样的-f参数值来执行istioctl upgrade指令。 例如:istioctl install -f <IstioOperator-custom-resource-definition-file>。{{< /warning >}}
如果您使用了
--set参数安装 Istio,请确保使用同样的--set参数值来升级, 否则升级过程将会还原--set的参数。如果在生产环境,建议您使用配置文件而不是--set参数进行安装。如果您没有设置
-f参数,Istio 将会使用默认 profile 升级。执行几次检查后,
istioctl将会询问您是否需要继续升级。 -
istioctl会将 Istio 的控制平面和网关升级到新版本,并显示完成状态。 -
在
istioctl完成升级后,您必须通过重启 Pod 的 Sidecar 来手动更新 Istio 的数据平面。{{< text bash >}} $ kubectl rollout restart deployment {{< /text >}}
版本回退的前置条件
在您开始进行版本回退的时候,请检查以下前置条件:
-
您是使用 {{< istioctl >}} 安装的 Istio。
-
安装的 Istio 版本与回退的目标版本之间最多差一个次要版本。例如,您可以从 1.7.x 版本降级到最小 1.6.0 版本。
-
回退需要使用回退目标版本的二进制
istioctl指令完成。例如,如果您要从 Istio 1.7 降级到 1.6.5,请使用 1.6.5 的istioctl。
回退版本操作步骤
您可以使用 istioctl upgrade 来回退 Istio 到低版本。回退步骤与上一步中所述的升级过程相同,
不过需要使用较低版本(例如 1.6.5)的 istioctl 二进制文件。完成后,Istio 将会更新到低版本。
另外,istioctl install 可用于安装旧版 istio 的控制平面。