規劃升級作業

本頁面提供資訊,協助您規劃 Cloud Service Mesh 升級作業。建議您一併參閱 Istio 升級說明

關於初期測試版本升級

建議您先執行新控制層的測試群組部署作業,再升級 Cloud Service Mesh。透過 Canary 升級,asmcli 會在舊控制層旁安裝控制層的新修訂版本。舊控制層和新控制層都會標示 revision 標籤,做為控制層的 ID。

如要將工作負載遷移至新控制層,請按照下列步驟操作:

  1. 在其中一個命名空間中設定新控制層的 revision 標籤。

  2. 執行滾動式重新啟動。重新啟動會在 Pod 中重新注入附屬 Proxy,讓 Proxy 使用新的控制平面。

  3. 監控升級對工作負載的影響。如需測試應用程式,請重複上述步驟。

  4. 測試應用程式後,您可以將所有流量遷移至新的控制層,或回溯至舊控制層。

與原地升級相比,可疑升級的安全性更高,因為可疑升級會將新控制層取代舊控制層。如需詳細步驟,請參閱「切換至新控制層」。

自訂控制層

如果您在先前的安裝作業中進行自訂,升級 Cloud Service Mesh 時就必須進行相同的自訂。如果您透過在 istioctl install 中加入 --set values 標記來自訂安裝作業,則必須將這些設定加入 IstioOperator YAML 檔案 (稱為疊加檔案)。執行 asmcli 時,請使用 --custom_overlay 選項搭配檔案名稱,指定疊加檔案。

GitHub 中的 asmcli 目錄包含許多疊加層檔案。這些檔案包含預設設定的常見自訂項目。您可以直接使用這些檔案,也可以視需要進行額外變更。您必須提供部分檔案,才能啟用選用的 Cloud Service Mesh 功能。執行 asmcli驗證專案和叢集時,系統會下載 anthos-service-mesh 套件。

使用 asmcli install 安裝 Cloud Service Mesh 時,您可以使用 --option--custom_overlay 指定一或多個覆蓋檔案。如果您不需要對 anthos-service-mesh 存放區中的檔案進行任何變更,可以使用 --option,這個指令碼會為您從 GitHub 擷取檔案。否則,您可以修改重疊檔案,然後使用 --custom_overlay 選項將其傳遞至 asmcli

選擇憑證授權單位

如果您目前的 Cloud Service Mesh 安裝作業使用 Cloud Service Mesh 憑證授權單位做為發出相互 TLS (mTLS) 憑證的憑證授權單位 (CA),建議您繼續使用 Cloud Service Mesh 憑證授權單位,原因如下:

  • Cloud Service Mesh 憑證授權單位是一項可靠度高且可擴充的服務,可針對動態調整的工作負載進行最佳化。
  • 透過 Cloud Service Mesh 憑證授權單位,Google 會管理 CA 後端的安全性和可用性。
  • Cloud Service Mesh 憑證授權單位可讓您在叢集之間使用單一信任根。

如果您目前的 Cloud Service Mesh 安裝作業使用 Istio CA (先前稱為「Citadel」),您可以在升級時切換至 Cloud Service Mesh 憑證授權單位,但需要安排停機時間。升級期間,mTLS 流量會中斷,直到所有工作負載都切換為使用搭配 Cloud Service Mesh 憑證授權單位的新控制平面為止。

Cloud Service Mesh 憑證授權單位的憑證包含應用程式服務的下列資料:

  • Google Cloud 專案 ID
  • GKE 命名空間
  • GKE 服務帳戶名稱

找出 CA

執行 asmcli install 進行升級時,請指定 asmcli 應在新的控制層啟用的 CA。

變更 CA 會導致在將工作負載部署至新控制層時發生停機情形。如果無法排定停機時間,請務必為新控制平面指定舊控制平面使用的 CA。如果不確定哪個 CA 已在網格中啟用,請執行下列指令:

  1. 取得其中一個命名空間的 Pod 清單:

    kubectl get pods -n NAMESPACE
    
  2. 在下列指令中,將 POD_NAME 替換為其中一個 Pod 的名稱:

    kubectl get pod POD_NAME -n NAMESPACE -o yaml | grep CA_ADDR -A 1
    

    如果已在命名空間中啟用 Cloud Service Mesh 憑證授權機構,您會看到以下輸出內容:

    - name: CA_ADDR
      value: meshca.googleapis.com:443
    

準備閘道設定

Cloud Service Mesh 可讓您選擇部署及管理服務網格中的閘道。閘道是指在邊緣運作的負載平衡器,用於接收或傳送 HTTP/TCP 連線。閘道是 Envoy 代理程式,可讓您精細控管進入及離開網格的流量。

asmcli 不會安裝 istio-ingressgateway。建議您分別部署及管理控制層和閘道。詳情請參閱「安裝及升級閘道」。

升級平台 (選用)

最佳做法是將 Cloud Service Mesh 升級至最新的支援版本同時支援目前的平台。接著,請升級環境,使其符合支援的平台和 Kubernetes 版本範圍。最後,如有需要,請升級至最新的支援版本 Cloud Service Mesh。

後續步驟