代管控制層現代化

總覽

Google 會逐步更新現有車隊,將原本使用的ISTIOD控管型控制層實作方式,改為使用TRAFFIC_DIRECTOR實作方式。Google 預設會自動遷移車隊,但您也可以選擇自行遷移。如要查看機群使用的控制層,請參閱「檢查控制層實作」。

準備翻新機群時,請考量下列事項:

  1. 如要準備進行現代化作業,您可以透過兩種方式控管程序:

    • Google 驅動的自動遷移 (預設) - 您可以按照Google 驅動的現代化操作說明,自訂叢集現代化的順序。

    • 由客戶主導的遷移作業 (選用) - 您可以選擇自行標記車隊,按照「由客戶主導的現代化」一文中的操作說明,完成車隊現代化作業。

  2. 如要自動評估機群是否支援特定功能,並在現代化作業前找出潛在的阻礙缺口,請參閱「瞭解 Cloud Service Mesh 相容性」指南。

  3. 預設為 Google 驅動的現代化。選用這個選項後,Google 會判斷機群何時適合翻新。Google 會安排車隊現代化升級作業,並在開始前通知您。

  4. 如果工作負載有 Proxy,叢集現代化後會重新啟動。如果遵循 Kubernetes 最佳做法,應該不會造成停機。此外,如果您已設定維護期間,Google 會在該期間觸發現代化作業。一旦開始,系統就會執行到完成,並在標示為最終版本前,額外進行 6 天的浸泡時間。 如果監控功能偵測到問題,您可以要求復原。

  5. 如要進行客戶主導的現代化作業,請參閱「瞭解 Cloud Service Mesh 相容性」指南,判斷是否與 TRAFFIC_DIRECTOR 控制層實作項目相容。然後選擇何時觸發車隊現代化。

  6. 機群完成現代化後,Google 會移除所有以 Istiod 為基礎的元件。

  7. TRAFFIC_DIRECTOR 控制平面實作需要將叢集註冊至已啟用網格功能的機群。如果您是使用舊版工具加入,Google 會使用 gkehub.googleapis.com Membership API,自動將叢集註冊至專案的 Fleet。如果您有任何會取消註冊叢集的自動化程序,請先移除該程序,再進行現代化作業。

Google 驅動的現代化

如果您未標記車隊,以利顧客主導的現代化作業,系統會預設採用這個選項。Google 會監控車隊,判斷何時可安全地進行現代化升級。當機構中所有支援網狀網路的車隊都準備就緒,系統就會安排機構進行現代化升級。

多個車隊

如果貴機構有多個車隊,且使用受管理 Cloud Service Mesh,您可以設定專案標籤 mesh-modernization-order 為下列其中一個值:earlydefaultlate,藉此控管 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 叢集標籤設為 earlydefaultlate,控制 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 日前開始。

系統會同時通知貴機構中的每個車隊 (不包括您選擇客戶主導式現代化的車隊)。

這項通知會顯示在車隊層級的功能狀態條件 (MODERNIZATION_WILL_BE_SCHEDULED) 中。如要瞭解如何檢查條件,請參閱「檢查現代化狀態」。

叢集層級通知:排定現代化作業

在叢集層級,您會收到叢集預估的 Google 驅動式現代化開始日期通知,至少會在叢集現代化開始前 1 天收到通知。

繼車隊層級通知後,這項功能可提供更精確的個別叢集現代化時間。

這項通知會顯示在叢集層級的功能狀態條件 (MODERNIZATION_SCHEDULED) 中。如要瞭解如何檢查條件,請參閱「檢查現代化狀態」。

主動進行現代化,以利 Google 驅動的遷移作業

本節說明 Google 驅動的現代化步驟。

翻新機群

Google 會為貴機構的每個車隊啟動現代化程序。 也就是說,系統會針對每個車隊執行下列步驟:

  1. 使用 earlymesh-modernization-order,將所有叢集現代化。
  2. 將所有叢集更新為 mesh-modernization-orderdefault 或未指定。
  3. 使用 latemesh-modernization-order,將所有叢集現代化。
  4. 等待每個叢集的現代化作業標示為完成。也就是說,您必須等待至少 6 個工作天,才能重新啟動這個機群中任何叢集的最後一個 Pod。
  5. 完成這個車隊的現代化作業,最終移除以 Istiod 為基礎的元件。

如要監控車隊的現行現代化狀態,請參閱「查看現代化狀態」。

叢集現代化

在叢集現代化作業進行期間,兩種控制層實作方式會暫時並行運作,並以安全且受控管的方式處理下列工作:

  1. 啟用新的控制層實作方式。如果您已為叢集設定維護期間,且使用 Google 驅動的現代化功能,這個步驟會在維護期間開始,並持續進行直到完成。請注意下列詳細資料:
    • 如要啟用健康狀態檢查,系統會在叢集的 kube-system 命名空間中建立 snk daemonset,並建立每個叢集的防火牆規則。
    • 如要啟用網路端點群組 (NEG) 擷取作業,請將 cloud.google.com/neg 註解新增至所有 Kubernetes 服務。
    • 系統會在叢集中建立 Google Cloud 新的資源,例如網格路徑後端服務健康狀態檢查
    • 部分新資源設有配額限制。您可以查看配額,並視需要申請增加配額
    • 在進入下一個步驟前,我們會先在浸泡時間內監控叢集。
  2. 將流量轉移至新的控制層實作。如果您為叢集設定維護期間,並使用 Google 驅動的現代化功能,這個步驟會在維護期間開始,並持續進行直到完成。請注意下列詳細資料:
    • Kubernetes Deployment 管理的 Pod (含有 Cloud Service Mesh Proxy) 會重新啟動,因此會重新連線至新的控制層。
    • Pod 會以越來越大的波次重新啟動,每個波次後都有浸泡時間,方便監控。
  3. 叢集現代化作業至少需要 6 個工作天的浸泡時間,才能標示為完成。

如要監控叢集的現行現代化狀態,請參閱「查看現代化狀態」。

以客戶為導向的現代化

您可以選擇在車隊層級自行控管現代化的確切時間。如要這麼做,請使用下列指令,在機群主機專案中套用標籤

gcloud alpha projects update FLEET_PROJECT_ID \
  --update-labels="mesh-modernization-mode=manual"

請注意,如果貴機構有多個車隊,系統會為任何未標示的車隊安排 Google 驅動的現代化升級。 Google Cloud

機群符合現代化升級資格後,您會在機群層級功能狀態中收到通知。您必須在收到這則通知後的 3 個月內,觸發現代化程序。

請參閱下列必要設定最佳做法,為叢集現代化做好準備。訂閱 Cloud Service Mesh 版本資訊動態消息,即可收到通知。

查看現代化狀態

您可以查看功能狀態條件,監控機群和叢集的現代化狀態。使用下列 Google Cloud CLI 指令:

gcloud alpha container fleet mesh describe --project FLEET_PROJECT_ID

機群層級條件

查看機群狀態時,您可能會在 state.servicemesh.conditions 下看到下列狀態:

  • MODERNIZATION_WILL_BE_SCHEDULED:我們即將排定此機群中的叢集,以進行現代化作業,改用 TRAFFIC_DIRECTOR 控制層實作項目。
  • MODERNIZATION_MODERNIZING:機群中有一或多個叢集正在進行現代化作業。
  • MODERNIZATION_MODERNIZED:機群中的所有叢集都已成功完成現代化。機群現在處於浸泡期,仍可進行回溯。
  • MODERNIZATION_FINALIZED:現代化程序已完成並定案。 無法再復原。達到這個機群狀態後,叢集就會停止回報 MODERNIZATION_COMPLETED。遷移作業完成後,系統會回報這項狀態至少 30 天。
  • MODERNIZATION_ROLLING_BACK_FLEET:正在進行車隊層級的回復作業。

叢集層級條件

檢查機群中個別叢集的狀態時,您可能會在 membershipStates.servicemesh.conditions 下看到下列情況:

  • MODERNIZATION_SCHEDULED:這個叢集已排定在條件詳細資料中指定的日期當天或之後進行現代化。
  • MODERNIZATION_IN_PROGRESS:這個叢集的現代化作業正在進行中。
  • MODERNIZATION_COMPLETED:這個叢集的現代化作業已完成。
  • MODERNIZATION_ROLLING_BACK_CLUSTER:這個叢集正在進行復原作業。
  • MODERNIZATION_ABORTED:叢集已成功回溯至舊版控制層。回溯完成後,系統會回報這個狀態 24 小時。