原地升级
通过 istioctl upgrade 命令对 Istio 进行升级。
Istio 的升级指令同样可以执行回退操作。
阅读 istioctl 升级参考来了解
istioctl upgrade 指令提供的全部参数。
升级的前置条件
在您执行升级之前,请检查以下条件:
安装的 Istio 版本与升级的目标版本之间最多差一个次要版本。例如, 如果要升级到 1.7.x 版本,需要至少 1.6.0 或更高版本。
您是使用 istioctl 安装的 Istio。
升级步骤
本节所使用的所有命令应该使用新版本的 istioctl 运行,可执行文件可以在下载包的 bin/ 目录下找到。
下载新版 Istio,并且切换到该目录。
确保您的 Kubernetes 配置指向的是要升级的集群:
$ kubectl config view确保此升级与您的环境兼容:
$ 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/通过执行以下指令开始升级:
$ istioctl upgrade如果您使用了
--set参数安装 Istio,请确保使用同样的--set参数值来升级, 否则升级过程将会还原--set的参数。如果在生产环境,建议您使用配置文件而不是--set参数进行安装。如果您没有设置
-f参数,Istio 将会使用默认 profile 升级。执行几次检查后,
istioctl将会询问您是否需要继续升级。istioctl会将 Istio 的控制平面和网关升级到新版本,并显示完成状态。在
istioctl完成升级后,您必须通过重启 Pod 的 Sidecar 来手动更新 Istio 的数据平面。$ kubectl rollout restart deployment
版本回退的前置条件
在您开始进行版本回退的时候,请检查以下前置条件:
您是使用 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 的控制平面。