本頁說明您和 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 版本,或同時更新兩者。使用標準叢集時,節點升級也可稱為「節點集區升級」,因為 GKE 會使用單一作業升級節點集區的節點。
叢集更新或更新一詞較為廣義,是指任何類型的控制層或節點變更,包括更新版本。GKE 會執行升級、其他類型的更新和必要維護作業,主動管理叢集環境。這些動作可確保叢集維持高效能、安全無虞,並取得最新功能和錯誤修正。GKE 會使用節點升級策略和維護政策等工具,盡可能減少這些程序造成的中斷。
規劃節點更新中斷
某些類型的叢集變更 (主要是節點變更) 可能會導致中斷。
GKE 會使用節點升級策略,以最適合工作負載需求的方式,更新 Autopilot 節點或 Standard 叢集節點集區。這些策略適用於版本升級,以及其他類型的節點變更。這些策略可讓 GKE 在執行節點更新時,盡可能減少中斷情形,這對於維持叢集功能和效能至關重要。
您可以透過維護期間和排除時段,選擇叢集維護作業的執行時間,並為標準叢集選擇最符合工作負載設定檔和資源限制的節點升級策略。
無論是手動或自動啟動的節點變更,GKE 都會依據下列一般特性進行變更:
變更通常會遵守維護政策:當 GKE 對節點進行變更時,這些變更通常會遵守 GKE 維護政策。部分例外狀況包括特定類型節點 (例如搭載 GPU 和 TPU 的節點) 的主機維護作業。
如果您手動發起變更,需要重新建立節點集區中的所有節點,請注意下列事項:
變更通常會使用節點升級策略:當 GKE 對節點套用大部分自動或手動啟動的變更 (包括版本升級以外的節點更新) 時,GKE 會選擇節點升級策略:節點數擴充升級、藍綠升級或自動調整藍綠升級 (預先發布版)。Autopilot 一律會使用節點數擴充升級。變更標準叢集節點集區時,通常會使用大量升級,但如果您已設定藍綠升級或自動調整藍綠升級,並進行特定類型的變更,則不在此限。如要進一步瞭解節點集區設定的策略,請參閱「檢查節點集區的升級設定」。
變更需要足夠的資源:當 GKE 使用節點升級策略套用變更時,視策略及其設定而定,這項變更需要一定量的資源。叢集所屬專案必須有足夠的資源配額、資源可用性,以及預留容量 (適用於具有特定預留親和性的節點集區)。詳情請參閱「確保節點升級的資源」。
如需特定變更及其特徵的詳細清單,請參閱本頁的「GKE 叢集變更類型」。
做好準備,因應可能造成中斷的變更,盡可能提高工作負載可用性
為盡可能提高 GKE 叢集上執行的工作負載可用性,建議您採取下列各節所述的行動:
選擇叢集可用性
如果控制層可用性是首要考量,請選擇 Autopilot 叢集或區域 Standard 叢集,而非可用區 Standard 叢集。詳情請參閱「關於叢集設定選項」。
使用 GKE 工具控管升級作業
您可以使用下列工具,控管 GKE 升級叢集的時間和方式,以便實施最佳做法:
- 發布管道: 選擇發布管道,在功能可用性和穩定性之間權衡,為叢集選用合適的版本。
- 維護期間:指定可執行特定類型 GKE 叢集維護作業 (例如升級) 的週期性時間範圍。
- 維護作業排除條件: 防止叢集在特定時間範圍內進行維護作業。
- 叢集中斷預算:自訂特定類型叢集升級作業 (包括修補程式或子版本升級) 之間的最短時間間隔。
- 節點升級策略: 如果使用標準節點集區,請選擇節點的更新方式 (大量、藍綠或自動調度藍綠 (搶先版) 升級),盡量減少工作負載中斷。此外,選擇 GKE 在叢集中同時自動升級的節點集區數量。
- 推出作業排序:在 GKE 升級正式環境叢集之前,先在試產環境中檢驗升級。
- 手動升級: 手動升級叢集,並執行取消、繼續、回溯及完成自動或手動升級等動作。
管理及監控叢集
為管理叢集可能中斷的問題,請持續執行下列工作:
- 使用 GKE 的觀測能力套件監控叢集。
- 請參閱 GKE 版本資訊公告。
- 查看叢集通知,例如升級開始或完成、新版本推出、安全性公告和支援終止日期。
- 掌握叢集升級作業的進度,瞭解叢集的升級狀態。
- 請查看 GKE 發布時間表,瞭解子版本何時可供升級,以及何時終止支援。
- 根據識別出的潛在最佳化商機,以及叢集用量的最佳化方式,取得具指導性的建議,包括功能和 API 淘汰的相關建議。
準備工作負載
盡可能提高工作負載的服務中斷復原能力,以管理服務中斷:
- 執行工作負載的副本,確保備援並避免單點故障。
- 使用 Pod 中斷預算,為應用程式指定中斷預算。
- 為工作負載設定適當長度的終止寬限期,以便安全關閉。
- 如果工作負載使用 GPU 或 TPU,請按照操作說明管理 GPU 和 TPU 的 GKE 節點中斷情形。
- 有狀態應用程式通常需要時間才能完全停止 I/O 並從儲存空間卸載,因此請按照「確保有狀態工作負載已做好中斷準備」一節的步驟操作。
如需這些主題的一般討論,請參閱「GKE 最佳做法:確保業務持續運作的第 2 天作業」網誌文章的「管理中斷情形」一節。
GKE 叢集的變更類型
下表列出叢集最常見的重大異動類型,包括異動的特性,例如頻率和中斷程度。
升級類型
請參閱下表,瞭解升級作業可能對叢集環境造成的影響。
| 變更 | 自動或手動啟動 | 遵循維護政策 | 頻率 | 中斷類型 | 中斷程度 |
|---|---|---|---|---|---|
| 控制層升級 | 自動或手動 |
在支援期結束前,自動升級作業會遵循維護政策,但極少數情況下,系統會視需要進行緊急修正。 維護政策不會禁止手動升級。 |
修補程式升級,頻率可能高達每週一次,具體取決於發布管道。 每四個月左右進行一次小幅升級。 如果是延長版叢集,只有在子版本即將結束支援時,才會升級子版本。 |
控制層 |
如果是 Autopilot 和區域性 Standard 叢集,控制層仍可使用。 對於區域 Standard 叢集,您會有幾分鐘無法與控制層通訊,也就是說,您在這段時間內無法設定叢集、節點和工作負載。 |
| 節點升級 | 自動或手動 |
在支援期結束前,自動升級作業會遵循維護政策,但極少數情況下,系統會視需要進行緊急修正。 維護政策不會禁止手動升級。 |
通常與控制層升級作業相同。 如果叢集未註冊至發布管道,且您停用節點自動升級功能,則必須手動升級叢集的節點集區。 |
Autopilot 叢集的所有節點,或一或多個 Standard 叢集節點集區。 |
節點必須關閉才能重新建立,Pod 則必須替換。 GKE 會對 Autopilot 使用突波升級,或對 Standard 叢集使用設定的節點升級策略 (突波、藍綠或自動調整藍綠 (預先發布版))。 |
手動變更,使用節點升級策略重新建立節點,並遵守維護政策
請參閱下表,瞭解這些手動變更如何干擾叢集環境。這份清單包含遵循 GKE 維護政策的手動變更等。
| 變更 | 自動或手動啟動 | 遵循維護政策 | 頻率 | 中斷類型 | 干擾程度 |
|---|---|---|---|---|---|
| 停用 kubelet 唯讀通訊埠 | 手動啟動 | 不遵循維護政策,立即進行變更。 | 每次變更這類資訊時。 | Autopilot 叢集中的所有節點 標準叢集節點集區中的所有節點。 |
節點必須關閉才能重新建立。必須更換 Pod。 無論是否啟用維護政策,GKE 都會立即使用大量升級功能重建節點。無論是否設定其他節點升級策略 (例如藍綠升級),GKE 都會使用節點數擴充升級。 |
| 輪替叢集憑證 | 如果叢集憑證即將在 30 天內到期,系統會自動啟動更新程序,您也可以手動啟動。 | 遵守維護政策。不過,GKE 可能會在憑證到期前 30 天內,覆寫維護政策。在 30 天內,GKE 會忽略第一步 (開始輪替) 的維護可用性。此外,如果您在第一個步驟後手動觸發特定作業,該作業不會遵守維護政策。 | 這類手動變更每執行一次,或視自動啟動的叢集憑證生命週期而定。您可以手動叫用輪替程序中特定步驟的操作。 | 部分步驟需要控制層。其他步驟:Autopilot 叢集的所有節點,以及每個標準叢集節點集區的所有節點。 |
重新建立節點時,中斷程度如下:
|
| 輪替控制層的 IP 位址 | 手動啟動 | 但如果您在第一個步驟後手動觸發特定作業,該作業就不會遵守維護政策。 | 每次手動變更這類設定時,您可以手動叫用輪替程序中特定步驟的操作。 | 部分步驟需要控制層。其他步驟:Autopilot 叢集的所有節點,以及每個標準叢集節點集區的所有節點。 |
重新建立節點時,中斷程度如下:
|
| 設定受保護的節點 | 手動啟動 |
重新建立控制層時,系統不會遵循維護政策,而是立即套用變更。 重新建立節點時,系統會遵循維護政策。 |
每次變更這類資訊時 |
控制層已更新。 控制層更新後,必須重新建立每個 Standard 叢集節點集區中的所有節點。 |
重新建立控制層時,中斷程度如下:
重新建立節點時,中斷程度如下:
|
| 設定網路政策 | 手動啟動 | 遵循維護政策 | 每次變更這類資訊時 | Autopilot 叢集的所有節點,以及每個標準叢集節點集區中的所有節點。 |
節點必須關閉才能重新建立,Pod 則必須替換。 GKE 會使用節點數擴充升級功能重建節點。 無論是否設定其他節點升級策略 (例如藍綠升級),GKE 都會使用節點數擴充升級。 |
| 設定節點內瀏覽權限 | 手動啟動 | 遵循維護政策 | 每次變更這類資訊時 | Autopilot 叢集的所有節點,以及每個標準叢集節點集區中的所有節點。 |
節點必須關閉才能重新建立,Pod 則必須替換。 GKE 會使用節點數擴充升級功能重建節點。 無論是否設定其他節點升級策略 (例如藍綠升級),GKE 都會使用節點數擴充升級。 |
| 設定 NodeLocal DNSCache | 手動啟動 | 遵循維護政策 | 每次變更這類資訊時 | Standard 叢集節點集區中的所有節點都必須更新。 |
節點必須關機才能重新建立,Pod 則必須更換。 GKE 會使用節點數擴充升級功能重新建立節點。 無論是否設定其他節點升級策略 (例如藍綠升級),GKE 都會使用節點數擴充升級。 |
| 啟用圖片串流 | 手動啟動 |
在叢集層級更新時,會遵守維護政策。 更新個別節點集區時,不遵循維護政策。 |
每次變更這種類型時 |
如果是在節點集區層級切換,則為標準叢集節點集區中的所有節點。 如果是在叢集層級切換,則適用於您尚未個別啟用或停用節點集區設定的任何 Standard 叢集節點集區節點。 |
GKE 會使用節點數擴充升級功能,重新建立節點集區的節點。 無論是否設定其他節點升級策略 (例如藍綠升級),GKE 都會使用節點數擴充升級。 |
不遵循維護政策的自動維護
請參閱下表,瞭解自動維護作業未遵守維護政策時,可能會對叢集環境造成哪些影響。
| 變更 | 自動或手動啟動 | 遵循維護政策 | 頻率 | 中斷類型 | 干擾程度 |
|---|---|---|---|---|---|
| 控制層維修或調整大小 | 自動 | 不遵守維護政策 |
控制層修復頻率為隨機,但不會影響 Autopilot 和區域性 Standard 叢集。 控制層調整大小的頻率不高,但會隨著叢集資源調度事件而增加,而且不會影響 Autopilot 和區域 Standard 叢集。 |
控制層 |
如果是 Autopilot 和區域性 Standard 叢集,控制層仍可使用。 對於區域 Standard 叢集,您會有幾分鐘無法與控制層通訊,也就是說,您在這段時間內無法設定叢集、節點和工作負載。 |
| 主機維護事件 | 自動 | 不遵守維護政策 | 如要瞭解大致頻率,請參閱「維護事件」。 | 一個節點 |
對大多數類型的節點影響極小。 部分節點 (包括含有 GPU 或 TPU 的節點) 可能會受到較大影響。詳情請參閱「其他 Google Cloud 維護作業」。 |
| 節點自動修復 | 自動 | 不遵守維護政策 | 節點自動修復頻率是隨機的。 |
一個節點 | 節點會重新啟動,因此在節點上執行的任何 Pod 都會中斷。 |
| 回收 Spot VM 和先占 VM | 自動 | 不遵循維護政策 |
先占 VM:至少每 24 小時一次。 如果 Compute Engine 需要在其他位置使用資源,就會終止 Spot VM。 |
一個節點 | 請參閱終止和正常關閉 Spot VM,以及終止和正常關閉先占 VM 的詳細資料。 |
| 維護以 Spanner 為基礎的叢集狀態資料庫 | 自動 | 不遵循維護政策 | 事件會隨機發生,不會影響叢集或工作負載。 | 無,以 Spanner 為基礎的資料庫會在 Google 基礎架構中,與叢集控制層和節點分開執行。 | 無,系統會為所有類型的叢集複製以 Spanner 為基礎的資料庫,並在維護期間保持可用。 |
手動變更,使用節點升級策略重新建立節點,但不遵守維護政策
請參閱下表,瞭解這些手動變更如何干擾叢集環境。這份清單包含GKE 使用突波升級和 GKE 使用藍綠升級時的變更,這些變更未納入其他章節,因為這些變更不遵守維護政策。
| 變更 | 自動或手動啟動 | 遵循維護政策 | 頻率 | 中斷類型 | 干擾程度 |
|---|---|---|---|---|---|
| 控制層記錄檔收集方式異動 | 手動啟動 | 不遵守維護政策,立即進行變更。 | 每次變更這種類型時 | 控制層已更新。 | 重新建立控制層時,中斷程度如下:
|
| 更新節點集區標籤 | 手動啟動 | 不遵守維護政策,立即進行變更。 | 每次變更這類資訊時 | 標準叢集節點集區中的所有節點 | 無論現行維護政策為何,只要更新現有節點集區的節點標籤,GKE 就會立即使用突波升級功能重新建立節點集區。無論是否設定其他節點升級策略 (例如藍綠升級),GKE 都會使用節點數擴充升級。 |
| 變更節點機器屬性,垂直調整節點資源配置 | 手動啟動 | 不遵守維護政策,立即進行變更。 | 每次變更這類資訊時 | 標準叢集節點集區中的所有節點 | GKE 會立即使用節點數擴充升級,在現有節點集區中重新建立節點,無論是否有任何有效的維護政策。無論是否設定其他節點升級策略 (例如藍綠升級),GKE 一律會使用節點數擴充升級。 |
| 圖片類型變更 | 手動啟動 | 不遵守維護政策,立即進行變更。 | 每次變更這類資訊時 | Standard 叢集節點集區中的所有節點 |
節點必須關閉才能重新建立,Pod 則必須更換。 GKE 會針對 Standard 叢集,使用設定的節點升級策略 (激增、藍綠或自動調度資源藍綠 (預先發布版))。 |
| 在 Standard 叢集節點集區中新增或取代儲存空間集區 | 手動啟動 | 不遵守維護政策,立即進行變更。 | 每次變更這類資訊時 | Standard 叢集節點集區中的所有節點 |
節點必須關閉才能重新建立,Pod 則必須替換。 GKE 會針對 Standard 叢集使用已設定的節點升級策略 (突增、藍綠或自動調整藍綠 (預先發布版))。 |
| 啟用圖片串流 | 手動啟動 |
在叢集層級更新時,會遵守維護政策。 更新個別節點集區時,不遵循維護政策。 |
每次變更這種類型時 |
如果是在節點集區層級切換,則為標準叢集節點集區中的所有節點。 如果在叢集層級切換,則會套用至任何 Standard 叢集節點集區的節點,前提是您未個別啟用或停用該節點集區的設定。 |
GKE 會使用節點數擴充升級功能,重新建立節點集區的節點。無論是否設定其他節點升級策略 (例如藍綠升級),GKE 都會使用節點數擴充升級。 |
| 網路效能設定更新 | 手動啟動 | 不遵守維護政策,立即進行變更。 | 每次變更這類資訊時 | Standard 叢集節點集區中的所有節點 |
節點必須關閉才能重新建立,Pod 則必須替換。 無論現行維護政策為何,GKE 都會立即使用突波升級功能,在現有節點集區中重建節點。無論是否設定其他節點升級策略 (例如藍綠升級),GKE 都會使用節點數擴充升級。 |
| 啟用 gVNIC | 手動啟動 | 不遵守維護政策,立即進行變更。 | 每次變更這類資訊時 | Standard 叢集節點集區中的所有節點 |
節點必須關閉才能重新建立,Pod 則必須替換。 無論現行維護政策為何,GKE 都會立即使用突波升級功能,在現有節點集區中重建節點。無論是否設定其他節點升級策略 (例如藍綠升級),GKE 都會使用節點數擴充升級。 |
| 節點系統設定變更 | 手動啟動 | 不遵守維護政策,立即進行變更。 | 每次變更這類資訊時 | Standard 叢集節點集區中的所有節點 |
節點必須關閉才能重新建立,Pod 則必須替換。 無論現行維護政策為何,GKE 都會立即使用突波升級功能,在現有節點集區中重建節點。無論是否設定其他節點升級策略 (例如藍綠升級),GKE 都會使用節點數擴充升級。 |
| 機密節點 | 手動啟動 | 不遵守維護政策,立即進行變更。 | 每次變更這類資訊時 | Standard 叢集節點集區中的所有節點 |
節點必須關閉才能重新建立,Pod 則必須替換。 無論現行維護政策為何,GKE 都會立即使用突波升級功能,在現有節點集區中重建節點。無論是否設定其他節點升級策略 (例如藍綠升級),GKE 都會使用節點數擴充升級。 |
不需要重新建立節點的變更
請參閱下表,瞭解哪些節點設定變更不需要重新建立節點。這些變更不會造成中斷,但如果更新後的節點設定影響工作負載,仍可能造成中斷。
| 變更 | 自動或手動啟動 | 遵循維護政策 | 頻率 | 中斷類型 | 干擾程度 |
|---|---|---|---|---|---|
|
更新下列設定:
|
手動啟動 | 不遵守維護政策,立即進行變更。 | 每次變更這種類型時 | 所有相關節點都會更新。 | 節點設定更新時不會重新建立節點,因此不必更換 Pod。 |