更新 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 附加元件的次要版本:
-
檢視可用的 Istio 附加元件版本。
ibmcloud ks addon-versions -
檢視 Istio 附加元件變更記錄 中每個版本的變更。
-
更新「Istio」擴充功能。
ibmcloud ks cluster addon update istio --version VERSION -c CLUSTER_NAME_OR_ID -
繼續之前,請確認更新是否完成。
更新程序可能需要 20 分鐘才能完成。
- 確保 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 ``` - 確保 Istio 附加元件的 「健康狀態」 為
更新 istioctl 用戶端及 Sidecar
每當 Istio 受管理的附加元件更新時,請更新您的 istioctl 用戶端和您應用程式的 Istio sidecars。
例如,附加元件的修補程式版本可能會由 IBM Cloud Kubernetes Service 自動更新,或者您可以 更新附加元件的次要版本。 無論哪種方式,請更新您的 istioctl 用戶端及應用程式現有的 Istio Sidecar 以與 Istio 的附加程式版本相符。
-
請取得您的
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} ... -
在輸出中,比較
client version(istioctl) 與 Istio 控制平面元件的版本,例如pilot version。 如果client version和控制平面元件版本不匹配:- 請下載與控制平面元件版本相同的
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 ``` - 請下載與控制平面元件版本相同的
-
在步驟 1 的輸出中,比較每個資料平面 pod 的
pilot version與data plane version。- 如果
pilot version和data plane version相匹配,則不需要進一步更新。 - 如果
pilot version和data 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-istio1.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。