將 Google Cloud 上的 Knative Serving 升級至 Fleet

請參閱本指南,瞭解如何遷移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 機群安裝的新叢集。雖然這個程序相對簡單且理想,但如果工作負載提供流量,遷移至新建立的叢集會導致停機。如要執行這項遷移路徑,請在新叢集中執行下列操作:

    1. 將 Knative serving 安裝為機群元件。
    2. 將服務部署至新安裝。

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

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

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

        將 SERVICE 替換為 Knative serving 服務名稱。

      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 做為「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 的所有權限需求。

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

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

  • 僅支援特定平台。

升級 Knative serving 並遷移工作負載

為協助您升級現有的 Knative serving 安裝項目及遷移工作負載,請執行指令碼,自動執行大部分步驟,並在整個過程中提示您輸入內容。

  1. 準備升級並設定環境

  2. 解除安裝 GKE 外掛程式

  3. 遷移至 Cloud Service Mesh

  4. 安裝機群元件

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

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