更新 Istio

请勿使用 istioctl 更新托管附加组件安装的 Istio 版本。 更新时,管理的 Istio 附加组件也包括 Istio 版本的更新。 Istio 的支持版本已通过 IBM Cloud 测试,并获准在 IBM Cloud Kubernetes Service 中使用。

准备工作

  • 每次只能手动更新 Istio 附加组件的一个版本。 要更新 Istio 附加组件的两个或更多版本,可以重复手动更新过程,或者 卸载 附加组件,然后 安装 后续版本。

  • 您无法将受管理的 Istio 附加组件恢复到以前的版本。 要恢复到较早的次版本,必须 卸载 附加组件,然后 安装 较早的版本。

  • 当您将 istio-system 命名空间中的 Istio 控制组件更新到最新的次版本时,可能会遇到干扰性变化。 查看次版本更新过程中发生的以下更改。

    • 随着控制平面 pod 的更新推出,pod 也会重新创建。 Istio 控制平面在更新完成后才能完全可用。
    • Istio 数据平面在更新期间继续运行。 不过,服务网格中应用程序的部分流量可能会在短时间内中断。
    • istio-ingressgateway 负载均衡器的外部 IP 地址在更新期间或更新后都不会更改。

更新至 Istio 附加组件的次要版本

开始之前:

查看适用于所有版本更新的 前提条件

更新 Istio 附加组件的次版本:

  1. 查看可用的 Istio 附加版本。

    ibmcloud ks addon-versions
    
  2. Istio 附加组件更改日志 中查看每个版本的更改。

  3. 更新 Istio 插件。

    ibmcloud ks cluster addon update istio --version VERSION -c CLUSTER_NAME_OR_ID
    
  4. 在继续之前,请确认更新已完成。

    更新过程最多可能需要 20 分钟才能完成。

    1. 确保 Istio 附加组件的“健康状态”为 normal,“健康状况”为 Addon Ready。 如果状态为 updating,则更新尚未完成。
        ibmcloud ks cluster addon ls --cluster CLUSTER_NAME_OR_ID
        ```
    2. 确保 `istio-system` 命名空间中的控制平面组件 pod 的 **STATUS** 为 `Running`。
    ```sh {: pre}
        kubectl get pods -n istio-system
        ```
        ```sh {: screen}
        NAME                                                     READY   STATUS    RESTARTS   AGE
        istio-system    istio-egressgateway-6d4667f999-gjh94     1/1     Running     0          61m
        istio-system    istio-egressgateway-6d4667f999-txh56     1/1     Running     0          61m
        istio-system    istio-ingressgateway-7bbf8d885-b9xgp     1/1     Running     0          61m
        istio-system    istio-ingressgateway-7bbf8d885-xhkv6     1/1     Running     0          61m
        istio-system    istiod-5b9b5bfbb7-jvcjz                  1/1     Running     0          60m
        istio-system    istiod-5b9b5bfbb7-khcht                  1/1     Running     0          60m
        ```
    
  5. 更新 istioctl 客户端和侧边栏

更新 istioctl 客户机和侧柜

每当 Istio 受管理的附加组件更新时,请更新您的 istioctl 客户端和您应用程序的 Istio sidecars。

例如,附加组件的补丁版本可能会由 IBM Cloud Kubernetes Service 自动更新,您也可以 更新附加组件的次要版本。 无论哪种情况,都请更新 istioctl 客户机以及应用程序的现有 Istio 侧柜,以匹配附加组件的 Istio 版本。

  1. 获取您的 istioctl 客户端以及 Istio 附加组件控制平面组件的版本信息。

    istioctl version --short=false
    

    示例输出

    client version: version.BuildInfo{Version:"1.11.2"}
    pilot version: version.BuildInfo{Version:1.29.5}
    pilot version: version.BuildInfo{Version:1.29.5}
    data plane version: version.ProxyInfo{ID:"istio-egressgateway-77bf75c5c-vp97p.istio-system", IstioVersion:1.29.5}
    data plane version: version.ProxyInfo{ID:"istio-egressgateway-77bf75c5c-qkhgm.istio-system", IstioVersion:1.29.5}
    data plane version: version.ProxyInfo{ID:"istio-ingressgateway-6dcb67b64d-dffhq.istio-system", IstioVersion:1.29.5}
    data plane version: version.ProxyInfo{ID:"httpbin-74fb669cc6-svc8x.default", IstioVersion:1.29.5}
    data plane version: version.ProxyInfo{ID:"istio-ingressgateway-6dcb67b64d-cs9r9.istio-system", IstioVersion:1.29.5}
    ...
    
  2. 在输出中,将 client version (istioctl) 与 Istio 控制平面组件(如 pilot version )的版本进行比较。 如果 client version 和控制平面组件版本不匹配:

    1. 下载与控制平面组件版本相同的 istioctl 客户端。
        curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.29.5 sh -
        ```
    2. 导航至 Istio 包目录。
    
    ```sh {: pre}
        cd istio-1.29.5
        ```
    3. Linux 和 用户:将 客户端添加到 系统变量中。macOS `istioctl` `PATH`
    
    ```sh {: pre}
        export PATH=$PWD/bin:$PATH
        ```
    
  3. 在步骤 1 的输出中,比较每个数据平面 pod 的 pilot versiondata plane version

    • 如果 pilot versiondata plane version 匹配,则无需进一步更新。
    • 如果 pilot versiondata plane version 不匹配,请重新启动运行旧版本的数据平面 pod 的部署。 pod 名称和命名空间以 data plane version: version.ProxyInfo{ID:"<pod_name>.<namespace>", IstioVersion:"1.8.4"} 的形式列在每个条目中。
    kubectl rollout restart deployment <deployment> -n <namespace>
    

    addon-istio 1.24 及更高版本中,如果您有自定义网关部署,您还需要负责更新它们,以获取更新的 istio/proxyv2 映像。 自定义网关显示在数据平面 pod 列表中,可以通过重新启动更新。

从 Istio 附加组件的不支持版本升级

Istio 组件 更新到 IBM Cloud Kubernetes Service 支持的最新补丁版本。

addon-istio 1.26.8 该功能将于2026年8月10日停止支持。 在此日期之前,请更新至 IBM Cloud Kubernetes Service 所支持的 addon-istio 最新补丁版本 1.29。

addon-istio 1.29 该功能可在以下 版本中使用并受到支持:、和。IBM Cloud Kubernetes Service 1.33 1.34 1.35 若要从 1.26 升级至 1.29,请按照 《更新至 Istio 附加组件的小版本》中的 说明,依次完成所有小版本升级:从 1.26 升级至 1.27,从 1.27 升级至 1.28,以及从 1.28 升级至 1.29。