本頁面說明您和 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 對節點套用大多數自動或手動啟動的變更 (包括版本升級以外的節點更新) 時,會選擇節點升級策略:大量升級、藍綠升級或自動調度資源藍綠升級 (預先發布版)。Autopilot 一律會使用激增升級。Standard 叢集節點集區的變更通常會使用激增升級,除非您已設定藍綠或自動調度資源藍綠升級,並進行特定類型的變更。如要進一步瞭解節點集區設定的策略,請參閱「檢查節點集區的升級設定」。
變更需要足夠的資源:GKE 使用節點升級策略套用變更時,這項變更需要一定數量的資源,具體取決於策略和設定。叢集所屬專案必須有足夠的資源配額、資源可用性和預留容量 (適用於具有特定預留相似度的節點集區)。詳情請參閱「確保節點升級作業有足夠資源」。
如需特定變更及其特性的詳細清單,請參閱本頁的「GKE 叢集的變更類型」。
為破壞性異動做好準備,盡可能提高工作負載可用性
為盡可能提高 GKE 叢集上執行的工作負載可用性,建議您採取下列各節所述的動作:
選擇叢集可用性
如果控制層可用性是優先考量,請選擇 Autopilot 叢集或區域性 Standard 叢集,而非可用區 Standard 叢集。詳情請參閱「關於叢集設定選項」。
使用 GKE 工具控管升級作業
您可以使用下列工具,控管 GKE 升級叢集的時間和方式,以便實施最佳做法:
- 發布管道:選擇發布管道,在可用功能與穩定性之間權衡,取得合適的叢集版本。
- 維護期間:指定週期性時間範圍,允許系統執行特定類型的 GKE 叢集維護作業,例如升級。
- 維護作業排除:防止在特定時間範圍內執行叢集維護作業。
- 叢集 disruption budget:自訂特定類型叢集升級作業 (包括修補程式或子版本升級) 之間的最短時間間隔。
- 節點升級策略:如果使用 Standard 節點集區,請選擇節點更新方式 (激增、藍綠或自動調度資源藍綠 (預先發布版) 升級),盡可能減少工作負載中斷。此外,您也可以選擇 GKE 在叢集中同時自動升級的節點集區數量。
- 推出作業排序:在 GKE 升級正式環境叢集之前,先在試產環境中檢驗升級。
- 手動升級:手動升級叢集,並執行取消、繼續、復原及完成自動或手動升級等動作。
管理及監控叢集
為管理叢集可能中斷的問題,請持續執行下列工作:
- 使用 GKE 的觀測能力套件監控叢集。
- 請參閱 GKE 版本資訊,瞭解最新公告。
- 查看叢集通知,例如升級開始或完成、新版本推出、安全性公告和支援終止日期。
- 查看叢集升級狀態,瞭解叢集的升級狀態。
- 請查看 GKE 發布時間表,瞭解子版本何時可供升級,以及何時終止支援。
- 使用規範性指南,找出潛在的最佳化商機,並瞭解如何最佳化叢集用量,包括功能和 API 淘汰指南。
準備工作負載
盡可能提高工作負載對中斷的韌性,藉此管理中斷情形:
- 執行工作負載的副本,確保備援並避免單點故障。
- 使用 Pod disruption budget 指定應用程式的中斷預算。
- 設定適當長度的終止寬限期,讓工作負載能正常關閉。
- 如果工作負載使用 GPU 或 TPU,請按照操作說明管理 GPU 和 TPU 的 GKE 節點中斷情形。
- 有狀態應用程式通常需要時間才能完全停止 I/O 並從儲存空間卸載,因此請按照「確保有狀態工作負載已做好中斷準備」一節的步驟操作。
如需這些主題的一般討論,請參閱「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 叢集節點集區中的所有節點。 |
重新建立節點時,中斷程度如下:
|
| 輪替控制層的 IP 位址 | 手動啟動 | 遵循維護政策,但如果您在第一步後手動觸發特定作業,該作業不會遵循維護政策。 | 每次手動變更這種類型時,您可以手動叫用輪替程序中特定步驟的操作。 | 在某些步驟中,控制層會其他步驟:Autopilot 叢集的所有節點、各個 Standard 叢集節點集區中的所有節點。 |
重新建立節點時,中斷程度如下:
|
| 設定受防護的節點 | 手動啟動 |
重新建立控制層時,系統不會遵循維護政策,而是立即套用變更。 重新建立節點時,系統會遵循維護政策。 |
每次變更這種類型時 |
控制層已更新。 控制層更新後,每個 Standard 叢集節點集區中的所有節點都必須重新建立。 |
重新建立控制層時,中斷程度如下:
重新建立節點時,中斷程度如下:
|
| 設定網路政策 | 手動啟動 | 遵循維護政策 | 每次變更這種類型時 | 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 使用藍綠升級時的變更,這些變更不包含在其他部分,因為不符合維護政策。
| 變更 | 自動或手動啟動 | 遵循維護政策 | 頻率 | 服務中斷類型 | 干擾程度 |
|---|---|---|---|---|---|
| 控制層記錄收集異動 | 手動啟動 | 不遵循維護政策,立即進行變更。 | 每次變更這種類型時 | 控制層已更新。 | 重新建立控制層時,中斷程度如下:
|
| 更新節點集區標籤 | 手動啟動 | 不遵循維護政策,立即進行變更。 | 每次變更這種類型時 | 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 無需替換。 |