热升级

    Istio 的升级指令同样可以执行将回退操作。

    阅读 istioctl 升级参考来了解 istoictl upgrade 指令提供的全部参数。

    istioctl upgrade 用于热升级,并且与使用 --revision 参数进行的安装不兼容。此类安装的升级将失败,并显示错误。

    在您执行升级之前,请检查以下条件:

    • 您是的 Istio.

    在升级过程中,服务可能会发生流量中断。为了最大程度的减少中断,请确保每个组件(Citadel 除外)至少有两个副本正在运行。另外,请确保 PodDisruptionBudgets 配置的最低可用行为1。

    1. ,并且切换到该目录。

    2. 确保您的 Kubernetes 配置指向的是要升级的集群:

    3. 通过该执行进行升级:

      如果您使用 -f 参数安装 Istio,那么您必须提供同样的 -f 参数值来执行 指令。例如:istioctl install -f <IstioOperator-custom-resource-definition-file>

      如果您使用了 --set 参数安装 Istio,请确保使用同样的 --set 参数值来升级,否则升级过程将会还原 --set 的参数。如果在生产环境,建议您使用配置文件而不是 --set 参数进行安装。

      如果您没有设置 -f 参数,Istio 将会使用默认 profile 升级。

      执行几次检查后,istioctl 将会询问您是否需要继续升级。

    4. istioctl 完成升级后,您必须通过重启 Pod 的 Sidecar 来手动更新 Istio 的数据平面。

    在您开始进行版本回退的时候,请检查以下前置条件:

    • 您是使用 istioctl 安装的 Istio.

    • 安装的 Istio 版本与回退的目标版本之间至最多差一个 minor 版本。例如,您可以从 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 的控制平面,但是不建议将使用,因为这个过程不会执行任何检查。例如,用于配置集群的配置文件的某些默认值可能会发生变动,但是不会发出任何警告。