更新 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 用戶端和 sidecars

更新 istioctl 用戶端及 Sidecar

每當 Istio 受管理的附加元件更新時,請更新您的 istioctl 用戶端和您應用程式的 Istio sidecars。

例如,附加元件的修補程式版本可能會由 IBM Cloud Kubernetes Service 自動更新,或者您可以 更新附加元件的次要版本。 無論哪種方式,請更新您的 istioctl 用戶端及應用程式現有的 Istio Sidecar 以與 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 日停止支援。 在該日期之前,請將 addon-istio 升級至 IBM Cloud Kubernetes Service 所支援的最新修補程式版本 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。