解除安裝 Cloud Service Mesh
本頁說明如何解除安裝 Cloud Service Mesh。
解除安裝 Cloud Service Mesh
使用下列指令解除安裝所有 Cloud Service Mesh 元件。這些指令也會刪除 istio-system 命名空間和所有自訂資源定義 (CRD),包括您套用的任何 CRD。
為避免應用程式流量中斷:
- 將所有 STRICT mTLS 政策降級為 PERMISSIVE。
- 移除可能封鎖流量的 AuthorizationPolicy。
在這個叢集上停用自動管理功能 (無論您是直接套用,還是使用機群預設設定):
gcloud container fleet mesh update --management manual如果已啟用,請在命名空間中停用補充資訊自動插入功能。執行下列指令,顯示命名空間標籤:
kubectl get namespace YOUR_NAMESPACE --show-labels輸出結果會與下列內容相似:
NAME STATUS AGE LABELS demo Active 4d17h istio.io/rev=asm-181-5
如果輸出內容的
LABELS欄下方顯示istio.io/rev=,請移除該欄:kubectl label namespace YOUR_NAMESPACE istio.io/rev-如果輸出內容的
LABELS欄下方顯示istio-injection,請移除該欄:kubectl label namespace YOUR_NAMESPACE istio-injection-如果沒有看到
istio.io/rev或istio-injection標籤,表示命名空間未啟用自動插入功能。重新啟動已注入 Sidecar 的工作負載,移除 Proxy。
如果您使用代管 Cloud Service Mesh,請移除叢集中的所有
controlplanerevision資源:kubectl delete controlplanerevision RELEASE_CHANNEL -n istio-system其中 RELEASE_CHANNEL 是您佈建的發布管道,例如
asm-managed、asm-managed-rapid或asm-managed-stable。從叢集刪除 Webhook (如有)。
叢集內 Cloud Service Mesh
刪除
validatingwebhooksconfiguration和mutatingwebhookconfiguration。kubectl delete validatingwebhookconfiguration,mutatingwebhookconfiguration -l operator.istio.io/component=Pilot代管 Cloud Service Mesh
A. 刪除
validatingwebhooksconfiguration。kubectl delete validatingwebhookconfiguration istiod-istio-system-mcpB. 刪除
mutatingwebhookconfiguration。kubectl delete mutatingwebhookconfiguration istiod-RELEASE_CHANNEL所有工作負載啟動後,如果沒有觀察到任何 Proxy,即可安全地刪除叢集內控制層,停止計費。如果您部署了受管理控制層,系統會在先前的步驟中自動刪除該層。
如要移除叢集內控制層,請執行下列指令:
istioctl x uninstall --purge如果沒有其他控制平面,可以刪除
istio-system命名空間,移除所有 Cloud Service Mesh 資源。否則,請刪除與 Cloud Service Mesh 修訂版本對應的服務。這樣可避免刪除共用資源,例如 CRD。刪除
istio-system和asm-system命名空間:kubectl delete namespace istio-system asm-system --ignore-not-found=true確認刪除作業是否成功:
kubectl get ns輸出內容應指出
Terminating狀態並傳回如下所示的內容,否則您可能必須手動刪除命名空間中剩餘的資源,然後再試一次。NAME STATUS AGE istio-system Terminating 71m asm-system Terminating 71m- 如果您要刪除叢集 (或已刪除),請確保每個叢集都已從機群取消註冊。
如果您已啟用受管理 Cloud Service Mesh 機群預設設定,且想為日後的叢集停用這項設定,請停用。如果只從單一叢集解除安裝,可以略過這個步驟。
gcloud container hub mesh disable --fleet-default-member-config --project FLEET_PROJECT_ID其中 FLEET_PROJECT_ID 是車隊主專案的 ID。
如果您使用代管 Cloud Service Mesh,請刪除
mdp-controller部署作業:kubectl delete deployment mdp-controller -n kube-system檢查
istio-cni-plugin-configconfigmap 是否存在:kubectl get configmap istio-cni-plugin-config -n kube-system如果有的話,請刪除
istio-cni-plugin-configconfigmap:kubectl delete configmap istio-cni-plugin-config -n kube-system刪除
istio-cni-nodeDaemonSet:kubectl delete daemonset istio-cni-node -n kube-system
完成這些步驟後,系統會從叢集中移除所有 Cloud Service Mesh 元件,包括 Proxy、叢內憑證授權單位,以及 RBAC 角色和繫結。安裝過程中,系統會授予 Google 擁有的服務帳戶必要權限,在叢集內建立服務網格資源。這些解除安裝操作說明不會撤銷這些權限,因此日後可順利重新啟用 Cloud Service Mesh。