Istio 服務網格附加元件次要修訂升級疑難解答
本文討論Microsoft Azure Kubernetes Service (AKS) 中 Istio 服務網格附加元件次要修訂升級和復原程式中的疑難解答案例和限制。
注意
Istio 使用「修訂」一詞來實作 Canary 升級程式,並區分版本。 每個修訂指定 (以 x-y 撰寫) 都會對應到 major.minor 版本指定 (x.y)。 您可以控制控制平面修訂,但無法控制修訂範圍中的特定修補程式版本。
必要條件
Kubernetes kubectl 工具,或連線至叢集的類似工具。 若要使用 Azure CLI 安裝 kubectl,請執行 az aks install-cli 命令。
疑難解答矩陣
下表列出各種問題,以及這些問題的不同案例和解決方案。
案例 | 問題 | 解決方案 |
---|---|---|
數據平面工作負載會從網格卸除。 | 在您完成或回復升級之前,數據平面和控制平面修訂並未對應。 | 執行下列步驟:
|
控制平面 Pod 處於擱置狀態。 | Pod 缺少容量。 | 執行 kubectl describe 命令來確認 Pod 的狀態。 如果容量是問題,您可以相應增加叢集以新增另一個節點。 如需詳細資訊,請參閱 在 Azure Kubernetes Service (AKS) 叢集中手動調整節點計數。 |
az aks mesh get-upgrades 命令不會傳回任何可用的升級。 | 最新的 Istio 修訂可能與目前的 AKS 叢集版本不相容。 | 您可以使用 az aks mesh get-revisions 命令來探索較新的 Istio 修訂是否存在。 輸出包含每個 Istio 修訂的相容叢集版本清單。 因此,您可以判斷是否需要叢集升級。 |
注意
為了避免非預期的行為和中斷的功能,也請確定您收到安全性弱點的更新,強烈建議您升級至支援的和最新的 AKS 版本 和 Istio 附加元件修訂。 請記住,附加元件修訂也應該位於指定 AKS 叢集支援的 Kubernetes 版本範圍內。 如 Istio 升級文章的次要修訂升級一節所強調,您可以執行 az aks mesh get-revisions
和 az aks mesh get-upgrades
命令來瞭解可用的附加元件修訂、升級和相容性資訊。
限制
不允許降級為較舊的修訂(在 Canary 回復程式之外)。
只有在 AKS 不再支援目前的修訂和下一個升級修訂時,才允許從一個修訂略過至非連續修訂。 此時,唯一可用的升級是最低支援的修訂。
Istio 標籤不會為 Istio
sidecar.istio.io/inject
附加元件啟用側車插入。 當您在 Canary 升級期間標記和重新標記命名空間時,必須使用標籤命名空間時,必須使用標籤istio.io/rev
。卷標必須發生在命名空間層級上,而不是在每個部署層級上。 如果您想要能夠個別變換 Pod,您可以選擇重新啟動個別部署,而不是使用 Pod 標籤。
如果您使用 Istio 附加元件 Shared MeshConfig,您必須先將 MeshConfig 設定複製到新的 ConfigMap,才能進行 Canary 升級。 如需詳細資訊,請參閱 Mesh 組態和升級。
Istio 附加元件會部署 Istio 輸入閘道 Pod 和每個修訂的部署。 如果您要進行 Canary 升級,並在叢集中安裝兩個控制平面修訂,您可能必須針對這兩個修訂中的多個輸入閘道 Pod 進行疑難解答。
參考資料
協力廠商資訊免責聲明
本文提及的協力廠商產品是由與 Microsoft 無關的獨立廠商所製造。 Microsoft 不以默示或其他方式,提供與這些產品的效能或可靠性有關的擔保。
協力廠商連絡資訊免責聲明
Microsoft 提供協力廠商連絡資訊,以協助您尋找有關此主題的其他資訊。 此連絡資訊可能會變更而不另行通知。 Microsoft 不保證協力廠商連絡資訊的準確性。
與我們連絡,以取得說明
如果您有問題或需要相關協助,請建立支援要求,或詢問 Azure community 支援。 您也可以向 Azure 意見反應社群提交產品意見反應。