管理叢集生命週期變更,盡量減少中斷

本頁面說明您和 Google Kubernetes Engine (GKE) 如何在叢集生命週期內管理變更,盡可能提高效能和可用性,同時盡量減少工作負載中斷。

本頁面適用於平台管理員,說明如何規劃及最佳化叢集環境,盡可能減少工作負載中斷。您可以先閱讀本頁面,再瞭解如何執行「管理叢集」和「叢集管理總覽」中說明的基本叢集管理工作,也可以在瞭解後再閱讀本頁面。

代管平台和共同責任

GKE 是 Google 實作且代管的 Kubernetes 開放原始碼容器自動化調度管理平台,如「GKE 的運作方式」一文所述,GKE 叢集包含控制層 (內含執行系統元件的管理節點) 和 worker 節點 (用於部署工作負載)。

為工作負載建立最佳叢集環境,以最高效能、可用性和最低中斷率運作,是共同責任:

  • GKE 的責任是維護可靠、可用、安全且高效能的叢集環境。為此,GKE 會管理控制層、系統元件,以及 Autopilot 模式的 worker 節點。
  • 平台管理員的職責是設定叢集和管理工作負載,包括做好準備,因應中斷情形。在標準模式下,您也需要建立及管理 worker 節點,這些節點會分組為節點集區。

詳情請參閱「GKE 共同責任」。

GKE 如何管理叢集生命週期中的變更

GKE 叢集是 Kubernetes 的實作項目,由多個程序和系統組成的網路,可共同維護最佳環境,執行工作負載。為管理叢集,GKE 會執行維護工作、進行變更、啟動作業、更新元件,以及升級控制層和節點的版本。

應用程式的大部分日常運作都會在背景默默進行,讓工作負載持續運作,不會中斷。不過,某些重大變更必須以可能暫時中斷工作負載的方式完成,詳情請參閱下一節。

部分叢集變更可能會干擾工作負載

雖然 GKE 致力於讓工作負載順暢運作,但某些必要的變更類型可能會暫時中斷工作負載,主要是重新啟動執行工作負載的節點。您可以使用 GKE 和 Kubernetes 功能,指定中斷發生的時間和方式,以便在發生中斷時,工作負載能妥善處理變更。

以下各節說明 GKE 對叢集進行的變更類型、造成的干擾類型,以及如何做好準備。

透過 GKE 叢集生命週期管理功能升級及更新

在 GKE 中,叢集「升級」和叢集「更新」具有相關含義。

在 GKE 中,「叢集升級」(或簡稱「升級」) 是指更新控制層 (控制層升級) 或節點 (節點升級) 的 Kubernetes 版本,或兩者皆更新。使用 Standard 叢集時,節點升級也稱為「節點集區升級」,因為 GKE 會透過單一作業升級節點集區。

「叢集更新」(或簡稱「更新」) 是更通用的詞彙,泛指任何類型的控制層或節點變更,包括更新版本。GKE 會主動管理叢集環境,執行升級、其他類型的更新,以及必要的維護作業。這些動作可確保叢集維持高效能、安全,並取得最新功能和錯誤修正。GKE 會使用節點升級策略和維護政策等工具,盡可能減少這些程序造成的中斷。

規劃節點更新中斷

某些類型的叢集變更 (主要是節點變更) 可能會導致服務中斷。

GKE 會使用節點升級策略,以最適合工作負載需求的方式,更新 Autopilot 節點或 Standard 叢集節點集區。這些策略適用於版本升級,也適用於其他類型的節點變更。這些策略可讓 GKE 在執行節點更新時,盡可能減少中斷情形,這對於維持叢集功能和效能至關重要。

最佳做法:

您可以使用維護期間和排除時段,選擇是否要執行某些叢集維護作業。如果是 Standard 叢集,則可選擇最符合工作負載設定檔和資源限制的節點升級策略。

無論是手動或自動啟動的節點變更,GKE 都會依據下列一般特性進行變更:

  • 變更通常會遵循維護政策:GKE 對節點進行變更時,通常會遵循 GKE 維護政策。部分例外狀況包括特定類型節點 (例如搭載 GPU 和 TPU 的節點) 的主機維護作業。

    如果您手動啟動的變更需要重新建立節點集區中的所有節點,請考量下列事項:

    • 對於某些變更,GKE 會遵循維護政策,直到維護時段才會套用您提交的變更。如果 GKE 正在等待維護時段,而變更很緊急,您可以手動套用變更,立即套用新設定。
    • 如果是其他手動變更,包括手動升級,GKE 則不會遵循維護政策。進行這些手動變更時,請確保工作負載已做好立即中斷的準備。
  • 變更通常會使用節點升級策略:GKE 對節點套用大多數自動或手動啟動的變更 (包括版本升級以外的節點更新) 時,會選擇節點升級策略:大量升級、藍綠升級或自動調度資源藍綠升級 (預先發布版)。Autopilot 一律會使用激增升級。Standard 叢集節點集區的變更通常會使用激增升級,除非您已設定藍綠或自動調度資源藍綠升級,並進行特定類型的變更。如要進一步瞭解節點集區設定的策略,請參閱「檢查節點集區的升級設定」。

  • 變更需要足夠的資源:GKE 使用節點升級策略套用變更時,這項變更需要一定數量的資源,具體取決於策略和設定。叢集所屬專案必須有足夠的資源配額、資源可用性和預留容量 (適用於具有特定預留相似度的節點集區)。詳情請參閱「確保節點升級作業有足夠資源」。

如需特定變更及其特性的詳細清單,請參閱本頁的「GKE 叢集的變更類型」。

為破壞性異動做好準備,盡可能提高工作負載可用性

為盡可能提高 GKE 叢集上執行的工作負載可用性,建議您採取下列各節所述的動作:

選擇叢集可用性

如果控制層可用性是優先考量,請選擇 Autopilot 叢集或區域性 Standard 叢集,而非可用區 Standard 叢集。詳情請參閱「關於叢集設定選項」。

使用 GKE 工具控管升級作業

您可以使用下列工具,控管 GKE 升級叢集的時間和方式,以便實施最佳做法:

管理及監控叢集

為管理叢集可能中斷的問題,請持續執行下列工作:

準備工作負載

盡可能提高工作負載對中斷的韌性,藉此管理中斷情形:

如需這些主題的一般討論,請參閱「GKE 最佳做法:第 2 天作業,確保業務持續運作」網誌文章的「管理中斷情形」一節。

GKE 叢集的變更類型

下表列出叢集最常見的重大變更類型,包括這些變更的特性,例如頻率和中斷程度。

升級授權類型

請參閱下表,瞭解升級作業如何中斷叢集環境。

變更 自動或手動啟動 遵循維護政策 頻率 服務中斷類型 干擾程度
控制層升級 自動或手動

在支援期結束前,自動升級作業會遵循維護政策,但極少數情況下,系統會視需要進行緊急修正。

維護政策不會阻擋手動升級。

修補程式升級,頻率可能高達每週一次,具體取決於發布管道。

大約每四個月進行一次小幅升級。

如果是延長版叢集,只有在子版本即將停止支援時,才會執行子版本升級作業。

控制層

如果是 Autopilot 和區域性 Standard 叢集,控制層仍可使用。

如果是可用區 Standard 叢集,您會有幾分鐘無法與控制層通訊,也就是說,您在這段期間無法設定叢集、節點和工作負載。

節點升級 自動或手動

在支援期結束前,自動升級作業會遵循維護政策,但極少數情況下,系統會視需要進行緊急修正。

維護政策不會阻擋手動升級。

通常與控制層升級相同。

如果叢集未註冊至發布管道,且您停用節點自動升級功能,就必須手動升級叢集的節點集區。

Autopilot 叢集的所有節點,或一或多個 Standard 叢集節點集區。

節點必須關閉才能重新建立,Pod 則必須更換。

GKE 會對 Autopilot 叢集使用激增升級,或對 Standard 叢集使用設定的節點升級策略 (激增、藍綠或自動調度資源藍綠 (預先發布版))。

手動變更,使用節點升級策略重新建立節點,並遵守維護政策

請參閱下表,瞭解這些手動變更如何干擾叢集環境。這份清單包含遵循 GKE 維護政策的手動變更等其他變更。

變更 自動或手動啟動 遵循維護政策 頻率 服務中斷類型 干擾程度
停用 kubelet 唯讀通訊埠 手動啟動 不遵循維護政策,立即進行變更。 這類變更每次只會觸發一次。 Autopilot 叢集中的所有節點
Standard 叢集節點集區中的所有節點。

節點必須關閉才能重新建立。必須更換 Pod。

無論是否有任何有效的維護政策,GKE 都會立即使用激增升級功能重新建立節點。無論是否設定其他節點升級策略 (例如藍綠升級),GKE 都會使用節點數擴充升級。

輪替叢集憑證 如果叢集憑證將在 30 天內到期,系統會自動輪替,您也可以手動啟動。 遵循維護政策。不過,GKE 可能會在憑證到期前 30 天內覆寫維護政策。在 30 天內,GKE 會忽略第一步 (開始輪換) 的維護可用性。此外,如果您在第一步之後手動觸發特定作業,該作業不會遵循維護政策。 每次手動變更這種類型時,或取決於叢集憑證生命週期,系統會自動啟動。您可以手動叫用輪替程序中特定步驟的操作。 在某些步驟中,控制層會其他步驟:Autopilot 叢集的所有節點、各個 Standard 叢集節點集區中的所有節點。

啟動輪替和完成輪替時,中斷程度如下:

  • 如果是 Autopilot 和區域性 Standard 叢集,控制層仍可使用。
  • 如果是可用區 Standard 叢集,這兩項作業都會導致短暫停機,也就是有幾分鐘無法與控制層通訊,執行設定叢集、節點和工作負載等作業。

重新建立節點時,中斷程度如下:

  • 節點必須關閉才能重新建立,Pod 則必須更換。
  • GKE 會使用節點數擴充升級功能重新建立節點。 無論是否設定其他節點升級策略 (例如藍綠升級),GKE 都會使用節點數擴充升級。
輪替控制層的 IP 位址 手動啟動 遵循維護政策,但如果您在第一步後手動觸發特定作業,該作業不會遵循維護政策。 每次手動變更這種類型時,您可以手動叫用輪替程序中特定步驟的操作。 在某些步驟中,控制層會其他步驟:Autopilot 叢集的所有節點、各個 Standard 叢集節點集區中的所有節點。

啟動輪替和完成輪替時,中斷程度如下:

  • 如果是 Autopilot 和區域性 Standard 叢集,控制層仍可使用。
  • 如果是可用區 Standard 叢集,這兩項作業都會導致短暫停機,也就是有幾分鐘無法與控制層通訊,執行設定叢集、節點和工作負載等作業。

重新建立節點時,中斷程度如下:

  • 節點必須關閉才能重新建立,Pod 則必須更換。
  • GKE 會使用節點數擴充升級功能重新建立節點。無論是否設定其他節點升級策略 (例如藍綠升級),GKE 都會使用節點數擴充升級。
設定受防護的節點 手動啟動

重新建立控制層時,系統不會遵循維護政策,而是立即套用變更。

重新建立節點時,系統會遵循維護政策。

每次變更這種類型時

控制層已更新。

控制層更新後,每個 Standard 叢集節點集區中的所有節點都必須重新建立。

重新建立控制層時,中斷程度如下:

  • 如果是 Autopilot 和區域性 Standard 叢集,控制層仍可使用。
  • 如果是可用區 Standard 叢集,這兩項作業都會導致短暫停機,也就是有幾分鐘無法與控制層通訊,執行設定叢集、節點和工作負載等作業。

重新建立節點時,中斷程度如下:

  • 節點必須關閉才能重新建立,Pod 則必須更換。
  • GKE 會使用節點數擴充升級功能重新建立節點。 無論是否設定其他節點升級策略 (例如藍綠升級),GKE 都會使用節點數擴充升級。
設定網路政策 手動啟動 遵循維護政策 每次變更這種類型時 Autopilot 叢集的所有節點,以及每個 Standard 叢集節點集區中的所有節點。

節點必須關閉才能重新建立,Pod 則必須更換。

GKE 會使用節點數擴充升級功能重新建立節點。無論是否設定其他節點升級策略 (例如藍綠升級),GKE 都會使用節點數擴充升級。

設定節點內瀏覽權限 手動啟動 遵循維護政策 每次變更這種類型時 Autopilot 叢集的所有節點,以及每個 Standard 叢集節點集區中的所有節點。

節點必須關閉才能重新建立,Pod 則必須更換。

GKE 會使用節點數擴充升級功能重新建立節點。無論是否設定其他節點升級策略 (例如藍綠升級),GKE 都會使用節點數擴充升級。

設定 NodeLocal DNSCache 手動啟動 遵循維護政策 每次變更這種類型時 更新標準叢集節點集區時,必須更新集區中的所有節點。

節點必須關閉才能重新建立,Pod 則必須更換。

GKE 會使用節點數擴充升級功能重新建立節點。無論是否設定其他節點升級策略 (例如藍綠升級),GKE 都會使用節點數擴充升級。

啟用映像檔串流 手動啟動

在叢集層級更新時,會遵循維護政策。

更新個別節點集區時,不遵循維護政策。

每次變更這種類型時

如果在節點集區層級切換,則會套用至 Standard 叢集節點集區中的所有節點。

如果在叢集層級切換,則會套用至任何 Standard 叢集節點集區的節點,前提是您未個別啟用或停用該節點集區的設定。

GKE 會使用節點數擴充升級功能,重新建立節點集區的節點。無論是否設定其他節點升級策略 (例如藍綠升級),GKE 都會使用節點數擴充升級。

不遵循維護政策的自動維護

請參閱下表,瞭解不遵循維護政策的自動維護作業如何中斷叢集環境。

變更 自動或手動啟動 遵循維護政策 頻率 服務中斷類型 干擾程度
修復或調整控制層大小 自動 不遵循維護政策

控制層修復頻率為隨機,但不會影響 Autopilot 和區域性 Standard 叢集。

控制層調整大小的頻率不高,但會隨著叢集資源調度事件而增加,而且不會影響 Autopilot 和區域性 Standard 叢集。

控制層

如果是 Autopilot 和區域性 Standard 叢集,控制層仍可使用。

如果是可用區 Standard 叢集,您會有幾分鐘無法與控制層通訊,也就是說,您在這段期間無法設定叢集、節點和工作負載。

主機維護事件 自動 不遵循維護政策 如要瞭解大致頻率,請參閱「維護事件」。 一個節點

對大多數類型的節點影響極小。

部分節點 (包括含有 GPU 或 TPU 的節點) 可能會受到較大影響。詳情請參閱「其他 Google Cloud 維護作業」。

節點自動修復 自動 不遵循維護政策

節點自動修復頻率是隨機的。

一個節點 節點會重新啟動,因此在節點上執行的任何 Pod 都會中斷。
回收 Spot VM 和先占 VM 自動 不遵循維護政策

如果是先占 VM,則至少每 24 小時一次。

如果是 Spot VM,則會在 Compute Engine 需要在其他位置使用資源時終止。

一個節點 請參閱終止和正常關閉 Spot VM,以及終止和正常關閉先占 VM 的詳細資料。
維護以 Spanner 為基礎的叢集狀態資料庫 自動 不遵循維護政策 事件會隨機發生,不會影響叢集或工作負載。 無,Spanner 資料庫與 Google 基礎架構中的叢集控制層和節點分開運作。 無,所有類型的叢集都會複製 Spanner 資料庫,且在維護期間仍可使用。

手動變更:使用節點升級策略重新建立節點,不遵循維護政策

請參閱下表,瞭解這些手動變更如何干擾叢集環境。這份清單包含 GKE 使用激增升級和 GKE 使用藍綠升級時的變更,這些變更不包含在其他部分,因為不符合維護政策。

變更 自動或手動啟動 遵循維護政策 頻率 服務中斷類型 干擾程度
控制層記錄收集異動 手動啟動 不遵循維護政策,立即進行變更。 每次變更這種類型時 控制層已更新。

重新建立控制層時,中斷程度如下:

  • 如果是 Autopilot 和區域性 Standard 叢集,控制層仍可使用。
  • 如果是可用區 Standard 叢集,控制層會停機,也就是說,您有幾分鐘的時間無法與控制層通訊,無法執行設定叢集、節點和工作負載等作業。
更新節點集區標籤 手動啟動 不遵循維護政策,立即進行變更。 每次變更這種類型時 Standard 叢集節點集區中的所有節點 當您更新現有節點集區的節點標籤時,無論是否有任何有效的維護政策,GKE 都會立即使用激增升級功能重新建立節點集區。無論是否設定其他節點升級策略 (例如藍綠升級),GKE 都會使用節點數擴充升級。
變更節點機器屬性,垂直擴充節點 手動啟動 不遵循維護政策,立即進行變更。 每次變更這種類型時 Standard 叢集節點集區中的所有節點 GKE 會立即使用激增升級,在現有節點集區中重新建立節點,不受任何現行維護政策影響。無論是否設定其他節點升級策略 (例如藍綠升級),GKE 都會使用節點數擴充升級。
映像檔類型變更 手動啟動 不遵循維護政策,立即進行變更。 每次變更這種類型時 Standard 叢集節點集區中的所有節點

節點必須關閉才能重新建立,Pod 則必須更換。

GKE 會針對 Standard 叢集,使用設定的節點升級策略 (增加、藍綠或自動調度資源藍綠 (預先發布版))。

在 Standard 叢集節點集區中新增或更換儲存空間集區 手動啟動 不遵循維護政策,立即進行變更。 每次變更這種類型時 Standard 叢集節點集區中的所有節點

節點必須關閉才能重新建立,Pod 則必須更換。

GKE 會針對 Standard 叢集,使用設定的節點升級策略 (增加、藍綠或自動調度資源藍綠 (預先發布版))。

啟用映像檔串流 手動啟動

在叢集層級更新時,會遵循維護政策。

更新個別節點集區時,不遵循維護政策。

每次變更這種類型時

如果在節點集區層級切換,則會套用至 Standard 叢集節點集區中的所有節點。

如果在叢集層級切換,則會套用至任何 Standard 叢集節點集區的節點,前提是您未個別啟用或停用該節點集區的設定。

GKE 會使用節點數擴充升級功能,重新建立節點集區的節點。無論是否設定其他節點升級策略 (例如藍綠升級),GKE 都會使用節點數擴充升級。
網路效能設定更新 手動啟動 不遵循維護政策,立即進行變更。 每次變更這種類型時 Standard 叢集節點集區中的所有節點

節點必須關閉才能重新建立,Pod 則必須更換。

GKE 會立即使用激增升級,在現有節點集區中重新建立節點,不受任何現行維護政策影響。無論是否設定其他節點升級策略 (例如藍綠升級),GKE 都會使用節點數擴充升級。

啟用 gVNIC 手動啟動 不遵循維護政策,立即進行變更。 每次變更這種類型時 Standard 叢集節點集區中的所有節點

節點必須關閉才能重新建立,Pod 則必須更換。

GKE 會立即使用激增升級,在現有節點集區中重新建立節點,無論是否有任何有效的維護政策。無論是否設定其他節點升級策略 (例如藍綠升級),GKE 都會使用節點數擴充升級。

節點系統設定變更 (使用標準升級策略) 手動啟動 不遵循維護政策,立即進行變更。 每次變更這種類型時 Standard 叢集節點集區中的所有節點

節點必須關閉才能重新建立,Pod 則必須更換。

GKE 會立即使用激增升級,在現有節點集區中重新建立節點,不受任何現行維護政策影響。無論是否設定其他節點升級策略 (例如藍綠升級),GKE 都會使用節點數擴充升級。

機密節點 手動啟動 不遵循維護政策,立即進行變更。 每次變更這種類型時 Standard 叢集節點集區中的所有節點

節點必須關閉才能重新建立,Pod 則必須更換。

GKE 會立即使用激增升級,在現有節點集區中重新建立節點,不受任何現行維護政策影響。無論是否設定其他節點升級策略 (例如藍綠升級),GKE 都會使用節點數擴充升級。

不需重新建立節點的變更

請參閱下表,瞭解哪些節點設定變更不需要重新建立節點。這些變更不會造成中斷,但如果更新後的節點設定影響工作負載,仍可能造成中斷。

變更 自動或手動啟動 遵循維護政策 頻率 服務中斷類型 干擾程度

更新下列設定:

手動啟動 不遵循維護政策,立即進行變更。 每次變更這種類型時 所有相關節點都會更新。 節點設定更新時,不必重新建立節點,因此 Pod 無需替換。

後續步驟