將 Google Cloud 上的 Knative Serving 升級至 Fleet

請按照本指南操作,將現有的 Knative Serving 安裝項目遷移至 Cloud Service Mesh 機群。Google Cloud

Knative Serving 的舊版「免費試用」版本 (也稱為「GKE 外掛程式」),內含 Istio 1.4 的精簡版本,但 Anthos 1.8 以上版本已不再支援。

將 Knative Serving 安裝項目升級為使用機群和 Cloud Service Mesh,可改善產品升級和管理獨立性,並提升 GKE Enterprise 功能的整合程度。進一步瞭解新功能和異動內容

遷移安裝項目有兩種方式:

  • 建議的程序是將工作負載從安裝舊版 Knative Serving 的叢集 (「GKE 外掛程式」) 遷移至新叢集,並在新叢集安裝及設定新版 Knative Serving 機群。雖然這個程序相對簡單且理想,但如果工作負載會提供流量,遷移至新建立的叢集就會導致停機。如要執行這項遷移路徑,請在新叢集中執行下列操作:

    1. 將 Knative serving 安裝為機群元件
    2. 將服務部署到新安裝的項目。

      舉例來說,您可以按照部署現有服務修訂版本的指示,個別下載每個服務的 YAML 設定檔,然後將每個 YAML 檔案部署至 Knative Serving 叢集安裝作業的機群中:

      1. 舊版安裝作業中,您可以執行下列指令下載 YAML 設定檔,例如 service.yaml

        gcloud run services describe SERVICE --format export > service.yaml

        SERVICE 改為 Knative 服務名稱。

      2. 機群元件安裝作業中,您可以執行下列指令來部署相同的 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 Serving 做為「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 替換為專案的 ID。 Google Cloud

    結果:

    • 未安裝「GKE add-on
      • 如果從未安裝外掛程式,終端機不會傳回任何內容。
      • 如果先前已解除安裝外掛程式,則會傳回 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 服務。

    • 請注意,Cloud Service Mesh 權限需求也符合安裝及設定 Knative 服務的所有權限需求。

    • 使用其他角色和最低需求:

      視貴機構而定,您也可以透過下列預先定義的角色組合,滿足權限需求:

  • 僅支援 Cloud Service Mesh 1.18 版

升級 Knative serving 並遷移工作負載

如要升級現有的 Knative Serving 安裝項目並遷移工作負載,請執行指令碼,自動完成大部分步驟,並在整個過程中輸入提示。

  1. 準備升級並設定環境

  2. 解除安裝 GKE 外掛程式

  3. 遷移至 Cloud Service Mesh

  4. 安裝機群元件

  5. 將工作負載流量遷移至 Cloud Service Mesh

  6. 完成升級並執行清理工作