代管控制層現代化
總覽
Google 會逐步更新使用 ISTIOD
控管控制層實作的現有車隊,以便使用 TRAFFIC_DIRECTOR
實作。根據預設,Google 會自動遷移您的車隊,但您可以選擇自行執行遷移作業。如要查看車隊使用的控制層,請參閱「檢查控制層導入方式」。
準備機群進行翻新時,請考量以下事項:
如要準備進行現代化,您可以透過兩種方式控制程序:
Google 自動遷移 (預設):您可以按照Google 自動現代化中的操作說明,自訂叢集的現代化順序。
客戶主導遷移作業 (選用):您可以選擇自行推動車隊的現代化,方法是按照「客戶主導的現代化」一節的操作說明為車輛標記。
預設情況下,系統會採用 Google 推動的現代化方式。使用這個選項,Google 會判斷機群何時可進行翻新。Google 會安排車隊進行翻新作業,並在開始這項程序前通知你。
叢集現代化後,系統會重新啟動含有 Proxy 的工作負載。只要您遵循 Kubernetes 最佳做法,就不會造成服務中斷。此外,如果您已設定維護期間,Google 會在該期間觸發現代化作業。啟動後,系統會執行至完成,並在標示為已完成前,再額外進行 6 天的浸潤測試。如果監控功能偵測到問題,您可以要求回復。
針對客戶主導的現代化作業,Google 會在機群準備好進行現代化時通知您。接著,您可以選擇要觸發哪個叢集的現代化作業。完成後,請將每個機群現代化作業標示為完成。
車隊完成現代化後,Google 會移除所有以 Istiod 為基礎的元件。
TRAFFIC_DIRECTOR
控制層實作功能需要將叢集註冊至已啟用網格功能的機群。如果您使用舊版工具完成新手上路程序,Google 會使用gkehub.googleapis.com
會員 API 自動將叢集註冊至其專案的車隊。如果您有任何會取消叢集註冊的自動化動作,請務必在改良前移除這些動作。
Google 主導的現代化
如果您沒有為客戶導向的現代化作業標記車隊,則預設會使用這個選項。Google 會監控您的機群,判斷何時可安全地進行翻新。當貴機構中的所有支援 Mesh 的機群都就緒後,我們就會安排貴機構進行現代化。
多個機群
如果貴機構有多個車隊,且這些車隊都已納入 Cloud Service Mesh 管理,您可以將 mesh-modernization-order
專案標籤設為下列其中一個值:early
、default
、late
,藉此控制 Google 將車隊現代化的順序。Google 會先完成各群組的現代化作業,再開始處理下一個群組中的任何機群。您選擇採用以客戶為導向的現代化服務的車隊,不會列入這項排序的考量範圍。
使用下列指令,為車隊設定 mesh-modernization-order
標籤:
gcloud alpha projects update FLEET_PROJECT_ID --update-labels="mesh-modernization-order=VALUE"
如要瞭解如何使用主控台或 REST 設定專案標籤,請參閱建立及管理標籤文件。
如果您未使用 Google Cloud 組織,車隊將會個別排程及改版,您無法控制排序。
多叢集網格
如果機群中有多個使用受管理 Cloud Service Mesh 的叢集,您可以將 mesh-modernization-order
的叢集標籤設為下列其中一個值:early
、default
、late
,藉此控制 Google 將叢集現代化的順序。Google 會開始進行各個群組的現代化作業,並等待自動化現代化步驟完成,然後才會開始進行下一個群組中任何叢集的現代化作業。請注意,這項排序只會套用在機群內,不會影響機構中可能同時進行現代化的其他機群。
使用下列指令設定叢集的 mesh-modernization-order
標籤:
gcloud container clusters update CLUSTER_NAME \ --location LOCATION \ --update-labels="mesh-modernization-order=VALUE"
通知和排程
本節說明如何通知您即將進行車隊和叢集的現代化作業。
通知:系統即將安排現代化作業
首先,我們會在未來幾週內通知你,你的車隊是否已選取 Google 推動的現代化服務。
我們會在每個月的第一個美國工作天之前發出這項通知。 最早的叢集現代化開始日期是每月美國第一個工作天後的 14 天,Google 會盡力在下一個日曆月的結束前,為貴機構開始進行第一次叢集現代化作業。舉例來說,通知會在 2025 年 4 月 1 日前發布,叢集現代化作業可能會在 2025 年 4 月 15 日開始,而您應在 2025 年 5 月 31 日前開始進行第一次叢集現代化作業。
您會同時收到貴機構中每個車隊的通知 (不含您選擇由客戶主導的現代化的車隊)。
這項通知可用於機群層級功能狀態條件。使用下列 Google Cloud CLI 指令查看通知:
gcloud alpha container fleet mesh describe --project $FLEET_PROJ
車隊排程完成後,您會看到包含 code: MODERNIZATION_WILL_BE_SCHEDULED
和 details
的條件,類似以下內容:
state: servicemesh: conditions: - code: MODERNIZATION_WILL_BE_SCHEDULED details: We will soon schedule clusters in this fleet to be modernized to use the TRAFFIC_DIRECTOR control plane implementation. Please confirm your fleet and cluster preferences prior to scheduling. Cluster modernization dates will be on or after 2025-03-17. documentation_link: ... severity: INFO
叢集層級通知:已排定現代化作業
您會在叢集層級收到通知,瞭解 Google 推動的該叢集現代化作業預估開始日期,最晚會在叢集現代化作業開始前 1 天通知。
這項功能可讓您在收到機群層級通知後,更精確地掌握個別叢集的現代化時間。
通知會顯示在叢集層級地圖項目狀態條件中。使用下列 Google Cloud CLI 指令查看通知:
gcloud container hub mesh describe --project=PROJECT_ID
您會看到類似以下的結果:
membershipStates: projects/656460026795/locations/us-central1/memberships/cluster: servicemesh: conditions: - code: MODERNIZATION_SCHEDULED details: This cluster has been scheduled for modernization on or after 2025-03-17. documentationLink: ... severity: INFO
積極進行 Google 主導的遷移作業
本節將說明 Google 推動的現代化步驟。
翻新機群
Google 會啟動貴機構每個車隊的積極現代化程序。 也就是說,系統會針對每個車隊執行下列步驟:
- 使用
early
的mesh-modernization-order
將所有叢集現代化。 - 使用
default
或未指定的mesh-modernization-order
翻新所有叢集。 - 使用
late
的mesh-modernization-order
將所有叢集現代化。 - 等待每個叢集的現代化作業標示為已完成。也就是說,您必須等待至少 6 個工作天,才能重新啟動這個車隊中任何叢集中的最後一個 Pod。
- 完成這個機隊的現代化作業,並最終移除以 Istiod 為基礎的元件。
改造叢集
在叢集主動進行現代化期間,兩個控制層實作項目會暫時並行執行,並以安全受控的方式處理下列工作:
- 啟用新的控制平面實作項目。如果您為叢集設定維護期間,且使用 Google 推動的現代化功能,這個步驟會在維護期間開始,並持續執行至完成。
- 如要啟用健康狀態檢查,請在叢集的
kube-system
命名空間中建立snk
守護程式集區,並建立每個叢集的防火牆規則。- 如要啟用網路端點群組 (NEG) 攝入功能,請將註解
cloud.google.com/neg
新增至所有 Kubernetes 服務。 - 叢集會建立新的 Google Cloud 資源,例如網格、路由、後端服務和健康狀態檢查。
- 部分新資源設有配額限制。您可以查看配額,並視需要要求增加配額。
- 在進入下一個步驟前,會在測試期間監控叢集。
- 如要啟用網路端點群組 (NEG) 攝入功能,請將註解
- 如要啟用健康狀態檢查,請在叢集的
- 將流量轉移至新控制層實作項目。如果您為叢集設定維護期間,且使用 Google 主導的現代化功能,這個步驟會在維護期間開始,並持續執行至完成。
- 由 Kubernetes 部署管理的 Pod 會重新啟動,並重新連線至新的控制層,這些 Pod 會包含 Cloud Service Mesh 代理程式。
- 每個波次都會在監控後,以逐漸增加的波次重新啟動 Pod。
- 叢集的現代化作業完成後,至少需要等待 6 個工作天的測試時間,才能標示為完成。
使用下列 Google Cloud CLI 指令,查看正在進行的現代化作業狀態:
gcloud container fleet mesh describe --project FLEET_PROJECT_ID
您會在每個叢集 membershipStates
欄位中看到下列其中一個條件:
... membershipStates: projects/FLEET_PROJ/locations/us-central1/memberships/MEMBERSHIP: servicemesh: conditions: - code: MODERNIZATION_IN_PROGRESS details: ... documentationLink: ... severity: INFO ... # If you see this, see instructions provided in the details and documentationLink fields. - code: MODERNIZATION_ACTION_REQUIRED details: [details about required actions] documentationLink: [link to documentation for required actions] severity: WARNING ... - code: MODERNIZATION_COMPLETED details: ... documentationLink: ... severity: INFO
以客戶為導向的現代化
您可以選擇在車隊層級自行控制升級的確切時間。如要這麼做,請使用下列指令在機群主機專案上套用標籤:
gcloud alpha projects update FLEET_PROJECT_ID \ --update-labels="mesh-modernization-mode=manual"
請注意,如果 Google Cloud 貴機構擁有多個車隊,則所有未標示的車隊都會排定由 Google 推動的現代化作業。
當機群符合升級資格時,您會在機群層級功能狀態中收到通知。您必須在收到這則通知後的 3 個月內啟動現代化程序。
我們會更新這份文件,加入如何手動觸發現代化作業的詳細說明。訂閱 Cloud Service Mesh 版本資訊動態消息,即可收到通知。