這些步驟適用於 Knative Serving「GKE 外掛程式」預設隨附的 Istio 套裝組合版本。
由於您在解除安裝 Knative Serving「GKE 外掛程式」時,一併解除了 Istio 的套裝版本,因此本頁的步驟會在叢集上安裝 Cloud Service Mesh,然後設定 Ingress 閘道。
事前準備
總覽
一般而言,從隨附的 Istio 版本遷移時,安裝 Cloud Service Mesh 的程序與執行乾淨的 Cloud Service Mesh 安裝程序相同。在此程序中,系統會安裝 Cloud Service Mesh 1.18 版,並使用叢集內控制層。
安裝 Cloud Service Mesh 1.18 版
您可以使用 Cloud Service Mesh 安裝說明文件安裝 Cloud Service Mesh。
事前準備:
如要遷移,必須在後續的設定步驟中,另外安裝 Ingress 閘道。安裝指令碼預設不會安裝 Ingress 閘道。
選用步驟:如果您使用 Cloud Service Mesh 憑證授權單位 (Mesh CA),也必須在 Cloud Service Mesh 安裝指令碼中加入
--ca mesh_ca
旗標。
如要安裝 Cloud Service Mesh,請按照下列步驟操作:
按照 Cloud Service Mesh 說明文件中的步驟操作: 安裝 Cloud Service Mesh 1.18 版
- 範例
以下是包含必要旗標的預設指令範例:
./asmcli install \ --project_id ${PROJECT_ID} \ --cluster_name ${CLUSTER_NAME} \ --cluster_location ${CLUSTER_LOCATION} \ --ca mesh_ca \ --output_dir DIR_PATH \ --enable_all
設定 Cloud Service Mesh Ingress
在本節中,您會使用遷移指令碼,在 gke-system
命名空間中建立 Cloud Service Mesh 輸入閘道。
為進行遷移,系統會使用 gke-system
命名空間,將 Ingress 閘道放在最近移除的「隨附 Istio」所用的命名空間中。因此,Cloud Service Mesh 輸入 Pod 可以順暢接管流量,不必對輸入服務進行任何設定變更。舉例來說,您不需要設定新的外部 IP 位址。
如要在
gke-system
命名空間中建立 Ingress 閘道,請執行下列指令來啟動遷移指令碼:./migration-addon.sh --command set-up-asm-ingress
程序期間的終端機輸出內容如下所示:
Setting up Cloud Service Mesh ingress. Note that the Cloud Service Mesh ingress is not serving traffic at this step. namespace/gke-system labeled deployment.apps/istio-ingressgateway created horizontalpodautoscaler.autoscaling/istio-ingressgateway created role.rbac.authorization.k8s.io/istio-ingressgateway-sds created rolebinding.rbac.authorization.k8s.io/istio-ingressgateway-sds created Cloud Service Mesh ingress is successfully installed.
執行下列指令,確認
istio-ingrerssgateway
進入控制器閘道是否在gke-system
命名空間中執行:kubectl get deployment istio-ingressgateway -n gke-system
請注意,
istio-ingressgateway
pod 的數量刻意設為0
。 安裝 Knative serving 機群元件後,請將所有流量遷移至 Cloud Service Mesh Ingress。
後續步驟
復原
如需還原透過上述步驟所做的變更,可以使用遷移指令碼執行下列操作:
- 刪除 Cloud Service Mesh 輸入閘道。
- 解除安裝 Cloud Service Mesh。
如要復原 Cloud Service Mesh 設定和安裝作業,請按照下列步驟操作:
執行下列指令,開始回溯作業。
./migration-addon.sh --command rollback-set-up-asm-ingress
程序期間的終端機輸出內容如下所示:
Deleting Cloud Service Mesh ingress deployment.apps "istio-ingressgateway" deleted horizontalpodautoscaler.autoscaling "istio-ingressgateway" deleted role.rbac.authorization.k8s.io "istio-ingressgateway-sds" deleted rolebinding.rbac.authorization.k8s.io "istio-ingressgateway-sds" deleted Cloud Service Mesh ingress is successfully deleted.
如要確認 Cloud Service Mesh 進入閘道已移除,請檢查
gke-system
命名空間中是否不再有istio-ingressgateway
服務:kubectl get deployment istio-ingressgateway -n gke-system
如要繼續將所有變更還原至安裝項目的原始狀態,請回溯 Knative serving「GKE 外掛程式」。