規劃升級作業

本頁面提供相關資訊,協助您規劃 Cloud Service Mesh 升級作業。建議您一併參閱 Istio 升級注意事項。

關於初期測試版本升級

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

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

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

  2. 執行滾動式重新啟動。重新啟動後,Sidecar Proxy 會重新注入 Pod,以便 Proxy 使用新的控制層。

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

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

相較於就地升級 (新控制層會取代舊控制層),Canary 升級安全許多。如需詳細步驟,請參閱「改用新的控制層」。

自訂控制層

如果您自訂了先前的安裝作業,升級 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 憑證授權單位,做為核發相互傳輸層安全標準 (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 憑證授權單位核發的憑證包含應用程式服務的下列資料:

  • 專案 ID Google Cloud
  • 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 Proxy,能讓您精細控管進出網格的流量。

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

升級平台 (選用)

最佳做法是將 Cloud Service Mesh 升級至最新支援版本,該版本也支援目前的平台。然後升級環境,使其符合支援的平台和 Kubernetes 版本範圍。最後,請視需要升級至最新支援版本的 Cloud Service Mesh。

後續步驟