代管資料層
代管 Cloud Service Mesh 可讓您在服務網格中,自動更新 Proxy 和插入的閘道。啟用代管資料層後,Google 會重新啟動工作負載,重新插入最新版 Proxy,自動更新 Sidecar Proxy 和插入的閘道,並搭配代管控制層。這項推出作業會在控制層升級後開始,通常會在兩週內完成。
請注意,代管資料層仰賴 GKE 發布管道。如果在啟用代管資料層時變更 GKE 發布管道,代管 Cloud Service Mesh 會更新所有現有工作負載的 Proxy,就像推出代管資料層一樣。
如果停用,系統會根據叢集內 Pod 的自然生命週期,被動管理 Proxy,且使用者必須手動觸發,才能控制更新頻率。
代管資料層會逐出執行舊版 Proxy 的 Pod,藉此升級 Proxy。系統會逐步執行淘汰作業,並遵循 Pod 中斷預算和控制變更率。
部署新版 Cloud Service Mesh 資料層時
| 代管資料層 | 觸發新 Cloud Service Mesh 資料層部署作業的事件 | ||
| Cloud Service Mesh 主動更新
有新版本時主動更新。1 |
建立新的 Pod
您或水平自動調度 Pod 資源功能部署新的工作負載時 |
GKE 維護期間
在 GKE 維護期間更換節點時 |
|
| 已啟用 | |||
| 已停用 | |||
1 Cloud Service Mesh 主動更新會自動取代工作負載中的 Pods,但 StatefulSets、Jobs、DaemonSets 和手動插入的 Pods 除外。Cloud Service Mesh 主動更新會遵循 Pod 中斷預算。
- 低優先順序的主動更新會與 GKE 維護時段重疊。
- Cloud Service Mesh 為叢集提供高優先順序的主動更新後,系統會立即執行,不受 GKE 維護期間限制。高優先順序的主動更新通常至少有一個相關聯的 CVE。
如果您不想自行管理 Cloud Service Mesh 資料層的生命週期,且工作負載可容許 Pod 隨時遭到替換,請啟用代管資料層。
如要完全控管所有 Cloud Service Mesh 資料層更新的時間,請停用代管資料層。
系統預設「不會」傳送維護作業通知。詳情請參閱本文的「啟用代管資料層的維護通知」一節。
限制
代管資料層不會管理下列項目:
- 未插入的 Pod
- 手動插入的 Pod
- 工作
- StatefulSets
- DaemonSets
如果您已在舊版叢集上佈建代管 Cloud Service Mesh,可以為整個叢集啟用資料層管理功能:
kubectl annotate --overwrite controlplanerevision -n istio-system \
REVISION_LABEL \
mesh.cloud.google.com/proxy='{"managed":"true"}'
或者,您也可以使用相同註解,選擇性地為特定命名空間或 Pod 啟用代管資料層。如果您選擇性地控制個別元件,則優先順序為控制層修訂版本、命名空間,然後是 Pod。
服務最多可能需要十分鐘,才能管理叢集中的 Proxy。執行下列指令來檢查狀態:
gcloud container fleet mesh describe --project FLEET_PROJECT_ID
預期的輸出內容:
membershipStates:
projects/PROJECT_NUMBER/locations/global/memberships/CLUSTER_NAME:
servicemesh:
dataPlaneManagement:
details:
- code: OK
details: Service is running.
state: ACTIVE
state:
code: OK
description: 'Revision(s) ready for use: asm-managed-rapid.'
如果服務未在十分鐘內準備就緒,請參閱「代管資料層狀態」一文,瞭解後續步驟。
停用代管資料層 (選用)
如果您是在新叢集上佈建代管 Cloud Service Mesh,可以完全停用代管資料層,或針對個別命名空間或 Pod 停用。如果現有叢集的代管資料層預設或手動停用,則會繼續停用。
如要在叢集層級停用代管資料層,並改回自行管理 Sidecar Proxy,請找出所有 controlplanerevision,然後變更各項註解。
找出所有控制層修訂版本:
kubectl get controlplanerevisions -n istio-system變更備註:
kubectl annotate --overwrite controlplanerevision CONTROL_PLANE_REVISION_NAME -n istio-system mesh.cloud.google.com/proxy='{"managed":"false"}'針對每個控制層修訂版本重複這個步驟。
將 CONTROL_PLANE_REVISION_NAME 替換為前一個指令的輸出內容。
如要停用命名空間的代管資料層,請按照下列步驟操作:
kubectl annotate --overwrite namespace NAMESPACE \ mesh.cloud.google.com/proxy='{"managed":"false"}'如要停用 Pod 的代管資料層,請按照下列步驟操作:
kubectl annotate --overwrite pod POD_NAME \ mesh.cloud.google.com/proxy='{"managed":"false"}'
為代管資料層啟用維護期間
如果您已設定 GKE 維護期間,系統會在下一個可用的維護期間開始時,啟動升級作業,並持續進行,直到所有代管 Pod 都更新完畢為止 (通常需要 12 小時)。CVE 相關推出作業不會遵循維護期間。
Cloud Service Mesh 會使用 GKE 維護期間,與 GKE 保持一致。
啟用代管資料層的維護通知
您可以要求在排定的維護期間內,提前一週收到即將進行的代管資料層維護通知。系統預設不會傳送維護通知。您也必須設定 GKE 維護期間,才能接收通知。啟用後,系統會在升級作業前至少兩天傳送通知。
如要選擇加入代管資料層維護通知,請按照下列步驟操作:
前往「通訊」頁面。
在「Cloud Service Mesh Upgrade」(Cloud Service Mesh 升級) 列的「Email」(電子郵件) 欄下方,選取圓形按鈕,將維護通知設為「ON」(開啟)。
每位想接收通知的使用者都必須個別選擇加入。如要為這些通知設定電子郵件篩選器,主旨行如下:
Upcoming upgrade for your Cloud Service Mesh cluster "CLUSTER_LOCATION/CLUSTER_NAME"。
以下範例顯示典型的代管資料層維護通知:
主旨:Cloud Service Mesh 叢集「
<location/cluster-name>」即將升級Cloud Service Mesh 使用者,您好:
叢集 ${instance_id} (https://console.cloud.google.com/kubernetes/clusters/details/${instance_id}/details?project=${project_id}) 中的 Cloud Service Mesh 元件已排定於 ${scheduled_date_human_readable} ${scheduled_time_human_readable} 升級。
如要瞭解本次更新內容,可以查看版本資訊 (https://cloud.google.com/service-mesh/docs/release-notes)。
如果這項維護作業取消,您會收到另一封電子郵件。
祝一切順心!
Cloud Service Mesh 團隊敬上
(c) 2023 Google LLC 1600 Amphitheater Parkway, Mountain View, CA 94043, USA Google Cloud Platform 或您的帳戶有重大變更,特此發送這則公告通知您。 如要停止接收維護期間通知,可至下列網址編輯使用者偏好設定: https://console.cloud.google.com/user-preferences/communication?project=${project_id}