規劃升級作業
Google Cloud 詳情請參閱「Cloud Service Mesh 總覽」。本頁面提供資訊,協助您規劃 Cloud Service Mesh 升級作業。建議您一併參閱 Istio 升級說明。
關於初期測試版本升級
建議您先執行新控制層的測試群組部署作業,再升級 Cloud Service Mesh。透過 Canary 升級,asmcli
會在舊控制層旁安裝控制層的新修訂版本。舊控制層和新控制層都會標示 revision
標籤,做為控制層的 ID。
如要將工作負載遷移至新控制層,請按照下列步驟操作:
在其中一個命名空間中設定新控制層的
revision
標籤。執行滾動式重新啟動。重新啟動會在 Pod 中重新注入附屬 Proxy,讓 Proxy 使用新的控制平面。
監控升級對工作負載的影響。如需測試應用程式,請重複上述步驟。
測試應用程式後,您可以將所有流量遷移至新的控制層,或回溯至舊控制層。
與原地升級相比,可疑升級的安全性更高,因為可疑升級會將新控制層取代舊控制層。如需詳細步驟,請參閱「切換至新控制層」。
自訂控制層
如果您在先前的安裝作業中進行自訂,升級 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 已在網格中啟用,請執行下列指令:
取得其中一個命名空間的 Pod 清單:
kubectl get pods -n NAMESPACE
在下列指令中,將
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。