請參閱本指南,瞭解如何遷移Google Cloud 上現有的 Knative serving 安裝項目,以便搭配 Cloud Service Mesh 使用機群。
Knative serving 先前的「免費試用」版本 (也稱為「GKE 外掛程式」) 包含內建且精簡的 Istio 1.4 版本,自 Anthos 1.8 起不再支援。
將 Knative serving 安裝項目升級為使用機群和 Cloud Service Mesh,可提升產品升級和管理獨立性,並改善 GKE Enterprise 功能的整合。進一步瞭解新功能和異動內容。
遷移安裝作業有兩種方式:
建議程序是將工作負載從安裝舊版 Knative serving 的叢集 (「GKE 外掛程式」),遷移至已安裝並設定新版 Knative serving 機群安裝的新叢集。雖然這個程序相對簡單且理想,但如果工作負載提供流量,遷移至新建立的叢集會導致停機。如要執行這項遷移路徑,請在新叢集中執行下列操作:
- 將 Knative serving 安裝為機群元件。
將服務部署至新安裝。
舉例來說,您可以按照部署現有服務修訂版本的操作說明,個別下載各項服務的 YAML 設定檔,然後將每個 YAML 檔案部署至機群安裝 Knative serving 的新叢集:
在舊安裝中,您可以執行下列指令,下載 YAML 設定檔,例如
service.yaml:gcloud run services describe SERVICE --format export > service.yaml將 SERVICE 替換為 Knative serving 服務名稱。
在新機群元件安裝中,您可以執行下列指令來部署相同的
service.yaml:gcloud run deploy service.yaml --cluster CLUSTER_NAME --cluster-location CLUSTER_LOCATION --project PROJECT_ID更改項目:
CLUSTER_NAME:Knative serving 新機群元件安裝作業中的叢集名稱。
CLUSTER_LOCATION:Knative serving 新機群元件安裝項目中,叢集的可用區或區域。
PROJECT_ID: Google Cloud 專案 ID,該專案含有 Knative serving 的新機群元件安裝項目。
替代方案:如果使用者無法建立新叢集,且必須遷移 Knative serving 的有效安裝,可以按照本指南中的步驟操作:
- 移除先前的「GKE 外掛程式」和 Istio 資源。
- 安裝新的機群資源。
- 遷移至 Cloud Service Mesh,然後遷移流量。
- 清除所有過時和未使用的資源。
下列指南將逐步引導您完成替代程序,升級現有且有效的 Knative serving 安裝作業 (包括所有工作負載),以符合 GKE Enterprise 1.8 以上版本的需求。
事前準備
這項升級程序只能在先前安裝 Knative 做為「GKE 外掛程式」的 Google Kubernetes Engine 叢集上執行。
檢查是否已安裝「GKE 外掛程式」。
如要檢查 Knative serving 安裝項目是否為「GKE 外掛程式」,請執行下列指令:
gcloud container clusters describe \ CLUSTER_NAME \ --region CLUSTER_LOCATION \ --project PROJECT_ID --format='get(addonsConfig.cloudRunConfig)'
取代:
- CLUSTER_NAME:叢集名稱。
- CLUSTER_LOCATION:叢集所在的位置。
- 將 PROJECT_ID 替換為 Google Cloud 專案 ID。
結果:
- 未安裝「GKE 外掛程式」:
- 如果從未安裝外掛程式,終端機不會傳回任何內容。
- 如果外掛程式先前已解除安裝,則會傳回
disabled=true。
- GKE 外掛程式已安裝:如果叢集已安裝外掛程式,系統會傳回外掛程式的設定詳細資料。範例:
loadBalancerType=LOAD_BALANCER_TYPE_EXTERNAL
- 範例:
-
以下範例說明 Knative Serving 是透過「GKE 外掛程式」安裝在
my-addon-cluster叢集中,該外掛程式已設定為處理外部流量:gcloud container clusters describe my-addon-cluster \ --region us-central1-c --project my-gcp-project \ --format='get(addonsConfig.cloudRunConfig)'
回應:
loadBalancerType=LOAD_BALANCER_TYPE_EXTERNAL
您必須具備 Google Cloud 專案的適當權限,才能滿足叢集、機群和 Cloud Service Mesh 的需求:
如果您具備 Google Cloud 專案的擁有者角色,則具備建立叢集、安裝及設定 Knative serving 的必要權限。
請注意,Cloud Service Mesh 權限需求也符合安裝及設定 Knative serving 的所有權限需求。
使用其他角色和最低要求:
視貴組織而定,您也可以透過下列預先定義角色的組合,滿足權限需求:
Google Cloud 專案權限:基本編輯者角色
機群權限:GKE Hub 管理員,或包含下列權限的角色:
gkehub.features.creategkehub.features.update
叢集權限: Kubernetes Engine 管理員角色:
- Kubernetes Engine 管理員
- Kubernetes Engine 叢集管理員
-
Cloud Service Mesh 要求叢集使用的機型至少要有 4 個 vCPU,例如
e2-standard-4。如要瞭解相關規定,請參閱 Cloud Service Mesh 安裝指南。如需變更現有叢集的機器類型,請參閱「將工作負載遷移至不同的機器類型」。建議您使用 Cloud Shell 環境,在這個過程中執行指令和遷移指令碼。請注意,Cloud Service Mesh 安裝指令碼僅支援 Linux 或 Cloud Shell。
如果現有的 Knative serving 安裝作業使用 Istio on GKE 外掛程式,您必須遷移至 Cloud Service Mesh 代管控制層。目前不支援從 Istio on GKE 外掛程式遷移至 Cloud Service Mesh 叢集內控制層。
升級 Knative serving 並遷移工作負載
為協助您升級現有的 Knative serving 安裝項目及遷移工作負載,請執行指令碼,自動執行大部分步驟,並在整個過程中提示您輸入內容。