本文將說明可搭配 Google Kubernetes Engine (GKE) 叢集使用的節點升級策略。
在 GKE Standard 叢集中,您可以為每個 Standard 節點集區設定下列其中一種節點升級策略:
- 節點數擴充升級:節點會在滾動週期內升級。您可以控管一次升級的節點數量,以及升級作業對工作負載的干擾程度。
- 藍綠升級:現有節點會保持可用狀態,以便在新的節點設定上驗證工作負載時進行回溯。
- 自動調度資源的藍綠升級 (搶先版): 工作負載可以執行更久,同時盡量減少閒置或未充分利用節點所造成的成本。
GKE 會針對下列特定情境選擇策略:
- 在 Autopilot 叢集中,GKE 會使用突波升級。詳情請參閱 Autopilot 叢集升級文件中的「升級期間的節點數量增加」一節。
- 在標準叢集中,如果節點集區由 Autopilot 管理,GKE 會使用突增升級。您無法選取其他策略或變更設定。
- 對於使用彈性啟動型 VM 的節點,GKE 會使用短期升級。彈性啟動搭配佇列式佈建,支援彈性啟動預先發布版推出的新旗標。彈性啟動功能採用 Dynamic Workload Scheduler。
您可以為標準節點集區選擇升級策略,挑選合適的程序,在速度、工作負載中斷、風險降低和最佳成本效益之間達到平衡。如要進一步瞭解適合您環境的節點升級策略,請參閱下列內容:
您可以根據環境需求,透過這些策略設定升級設定,進一步最佳化升級程序。詳情請參閱「設定所選升級策略」。請確認您有足夠的配額、資源可用性或預留容量,可使用所選策略升級節點。詳情請參閱「確保節點升級作業有足夠資源」。
使用加速器並執行 AI/機器學習工作負載的節點集區,會進行破壞性升級
由於具備加速器 (GPU 或 TPU) 的 Compute Engine 執行個體不支援即時遷移,Compute Engine 必須在主機維護期間關閉並重新建立節點。這個程序可能會中斷 AI/機器學習訓練或推論工作等工作負載。為盡可能減少服務中斷,請同時執行 Compute Engine 主機維護和 GKE 節點升級。詳情請參閱「為執行訓練和推論工作負載的節點執行主機維護作業」。
節點數擴充升級
突波升級是預設的升級策略,最適合可處理增量變更的應用程式。突波升級會使用滾動式方法升級節點,順序未定義。選擇可建立的新節點數 (maxSurge) 和可同時中斷的現有節點數 (maxUnavailable),在速度和中斷之間取得最佳平衡,打造適合您環境的升級程序。
節點數擴充升級功能也與叢集自動配置器搭配運作,可防止升級中的節點發生變更。
何時為環境選擇大量升級
如果您重視成本效益,且工作負載可容忍在 60 分鐘內關閉,建議為節點集區選擇突增升級。
節點數擴充升級最適合下列情境:
- 如要盡量加快升級速度。
- 如果工作負載更能容忍中斷,且可接受最多 60 分鐘的正常終止時間。
- 如要盡量減少建立新節點,藉此控管費用。
GKE 使用節點數擴充升級的時機
如果啟用,GKE 會在發生下列類型的變更時,使用節點數擴充升級:
- 版本變更 (升級)
- 變更節點機器屬性,垂直調度節點資源,包括機型、磁碟類型和磁碟大小
- 圖片類型變更
- IP 輪替
- 憑證輪換
- 建立網路政策
- 啟用映像檔串流
- 網路效能設定更新
- 啟用 gVNIC
- 節點系統設定變更
- 機密節點
其他變更 (包括將更新套用至現有節點集區的節點標籤和汙點) 不會使用突增升級,因為不需要重新建立節點。
瞭解節點數擴充升級設定
使用節點數擴充升級設定,在叢集維護期間,為節點集區選擇適當的速度和中斷程度平衡。您可以變更 Standard 節點集區的節點數擴充升級參數,調整 GKE 嘗試一次升級的節點數量。
節點數擴充升級行為取決於 maxSurge 和 maxUnavailable 設定,這些設定會決定在上述步驟的滾動週期中,同時升級的節點數量。
maxSurge:GKE 會先建立新的節點數擴充節點,再移除現有節點
設定 maxSurge,選擇可在升級期間新增至節點集區的節點數擴充上限 (每個可用區),提高現有節點上執行的工作負載立即遷移至新節點的可能性。預設值為 1。如要升級一個節點,GKE 會執行下列步驟:
- 佈建新節點。
- 等待新節點準備就緒。
- 限制現有節點。
- 排空現有節點,並遵守 PodDisruptionBudget 和 GracefulTerminationPeriod 設定,最多一小時。一小時後,系統會強制淘汰所有剩餘的 Pod,以便繼續升級。
- 刪除現有節點。
如要讓 GKE 建立大量節點,專案必須有資源可暫時建立額外節點。如果沒有額外容量,GKE 會等到資源可用時,才開始升級節點。詳情請參閱「尖峰升級資源」。
maxUnavailable:GKE 會讓現有節點無法使用,以便重新建立節點
設定 maxUnavailable,選擇每個可用區在升級期間可同時無法使用的節點數量上限。預設值為零。如果沒有其他節點有容量,現有節點上執行的工作負載可能需要等待現有節點升級。如要升級單一節點,GKE 會執行下列步驟:
- 限制現有節點。
- 排空現有節點,並遵守 PodDisruptionBudget 和 GracefulTerminationPeriod 設定,最多一小時。一小時後,系統會強制淘汰所有剩餘的 Pod,以便繼續升級。
- 使用新設定重新建立現有節點。
- 等待現有節點準備就緒。
- 取消現有升級節點的封鎖。
GKE 重新建立現有節點時,如果節點的容量並非來自預留項目,GKE 會暫時釋出該節點的容量。也就是說,如果容量有限,您可能會失去現有容量。因此,如果環境的資源有限,只有在使用預留節點時,才建議使用這項設定。詳情請參閱「在資源受限的環境中升級」。
使用 maxSurge 和 maxUnavailable 設定的範例
舉例來說,GKE 叢集有一個單一可用區節點集區,其中包含 5 個節點,並採用下列節點數擴充升級設定:maxSurge=2;maxUnavailable=1。
在這個節點集區中進行節點數擴充升級時,GKE 會在滾動週期內建立兩個升級後的節點,並一次中斷最多一個現有節點。升級後的節點準備就緒後,GKE 最多會關閉三個現有節點。在升級過程中,節點集區會包含四到七個節點。
節點數擴充升級設定的注意事項
設定突波升級設定前,請先考量以下資訊:
- 擴充升級建立的節點會受到 Google Cloud 資源配額、資源可用性和預留容量的限制,適用於具有特定預留項目親和性的節點集區。如果環境資源有限,請參閱「在資源有限的環境中升級」。
- GKE 同時升級的節點數量是
maxSurge和maxUnavailable的總和。在 Autopilot 模式下,一次最多可升級 20 個節點;在標準模式下,一次最多可升級 100 個節點。此外,突波升級功能也適用於叢集自動配置器,可防止升級中的節點發生變更。 - GKE 會一次升級一個可用區的多可用區節點集區。升級參數僅適用於區域中的節點數量。可平行升級的節點數量上限不得高於
maxSurge加maxUnavailable的總和,也不得高於區域中的節點數量。 - 如果節點集區使用 Spot VM,GKE 會建立具有 Spot VM 的湧現節點,但不會等待 Spot VM 準備就緒,就先封鎖並排空現有節點。詳情請參閱「使用 Spot VM 升級標準節點集區」。
調整大量升級設定,在速度和中斷之間取得平衡
下表列出四種不同的升級設定檔做為範例,協助您瞭解不同的設定:
| 說明 | 設定 | 常見用途 |
|---|---|---|
| 平衡 (預設):速度較慢,但干擾程度最低 | maxSurge=1 maxUnavailable=0 |
大部分的工作負載 |
| 快速、無尖峰資源、最擾人 | maxSurge=0 maxUnavailable=100 |
工作完成後的大型節點集區 |
| 速度快、資源最多,干擾最少 | maxSurge=100 maxUnavailable=0 |
大型節點集區 |
| 最慢、中斷、無激增資源 | maxSurge=0 maxUnavailable=1 |
資源受限的節點集區 (含預留項目) |
平衡 (預設)
如要充分運用升級功能,最簡單的方法是使用預設設定 maxSurge=1;maxUnavailable=0.。使用這項設定時,升級作業會緩慢進行,一次只會新增一個升級節點,也就是一次只升級一個節點。Pod 可以立即在新的激增節點上重新啟動。這項設定只需要資源暫時建立一個新節點。
快速且無突波資源
如果節點集區較大,且工作負載不受中斷影響 (例如已執行至完成的批次工作),請使用下列設定,在不使用任何額外資源的情況下,盡可能提高速度:maxSurge=0;maxUnavailable=100。這項設定不會產生額外的突波節點,且可同時升級 100 個節點。
快速且干擾較少
如果工作負載容易受到中斷影響,且您已設定 PodDisruptionBudgets (PDB),但未使用 externalTrafficPolicy: Local (不適用於平行節點排空),則可使用 maxSurge=100;maxUnavailable=0 加快升級速度。這項設定會平行升級 100 個節點,而 PDB 會限制在特定時間可排空的 Pod 數量。雖然 Pod 中斷預算的設定可能有所不同,但如果您為節點集區中執行的一或多個工作負載建立 Pod 中斷預算,則一次只能逐出這些工作負載的一個 Pod,進而限制整個升級作業的平行處理能力。maxUnavailable=1這項設定需要資源暫時建立 100 個新節點。
緩慢但沒有尖峰資源
如果無法使用任何額外資源,可以透過 maxSurge=0;maxUnavailable=1 一次重建一個節點。
控管進行中的尖峰升級
使用升級急升功能時,您可以在升級過程中透過指令進行部分控制。如要進一步控管升級程序,建議使用藍綠升級。
取消 (暫停) 升級至尖峰時段方案
升級過程中,隨時可以取消進行中的升級作業。取消升級會暫停升級作業,GKE 不會升級新節點,但不會自動還原已升級節點的升級作業。取消升級後,您可以繼續或復原。
取消升級時,GKE 會對每個節點執行下列操作:
- 已開始升級的節點會完成升級。
- 尚未開始升級的節點不會升級。
- 已成功完成升級的節點不會受到影響,也不會復原。
這表示節點集區最終可能會處於節點執行兩個不同版本的狀態。如果節點集區已啟用自動升級,系統可能會再次排定節點集區的自動升級作業,將節點集區中執行舊版的所有節點升級。
瞭解如何取消節點集區升級作業。
繼續進行大量升級
如果取消節點集區升級作業,且升級作業只完成一部分,您可以繼續升級,完成節點集區的升級程序。這會升級原始作業中未升級的任何剩餘節點。瞭解如何繼續升級節點集區。
復原節點數擴充升級
如果節點集區只升級了一部分,您可以將節點集區復原為先前的狀態。節點集區成功升級後,就無法復原。尚未開始升級的節點不受影響。 瞭解如何復原節點集區升級。
如要在升級完成後將節點集區降級回先前的版本,請參閱「降級節點集區」。
藍綠升級
藍綠升級是預設的突波升級策略以外的替代升級策略。採用藍綠升級時,GKE 會先使用新的節點設定建立一組新的節點資源 (「綠色」節點),然後才從原始資源 (「藍色」節點) 移除任何工作負載。如果需要,GKE 會保留「藍色」資源,以供工作負載回溯,直到浸泡時間結束為止。您可以根據環境需求調整升級步調和浸泡時間。
採用這項策略時,您可以進一步控管升級程序。如有需要,您可以復原進行中的升級作業,因為升級期間會保留原始環境。不過,這項升級策略也更耗費資源。由於系統會複製原始環境,升級期間節點集區使用的資源數量會是兩倍。
何時為環境選擇藍綠升級
如果您的正式環境工作負載可用性高,且在無法容忍升級時需要快速復原,而且您能接受暫時增加費用,建議您為節點集區選擇藍綠升級。
藍綠升級最適合下列情境:
- 如果想逐步推出,以盡量降低風險控管,且需要超過 60 分鐘的正常終止時間。
- 如果工作負載較無法容忍中斷。
- 如果可以接受因資源用量增加而暫時提高費用。
如果藍綠升級作業超出維護期間,系統會繼續執行,直到完成為止。詳情請參閱「節點升級策略如何與維護時段搭配運作」。
GKE 何時會使用藍綠升級
對於 GKE 節點,有不同類型的設定變更需要重新建立節點。啟用後,如果發生下列類型的變更,GKE 會使用藍綠升級:
- 版本變更 (升級)
- 變更節點機器屬性,垂直調度節點資源,包括機型、磁碟類型和磁碟大小
- 圖片類型變更
- 在節點集區中新增或更換儲存空間集區
節點數擴充升級功能則用於需要重新建立節點的其他更新。詳情請參閱「使用尖峰升級時」。
藍綠升級階段
您可以透過下列方式,自訂及控管藍綠升級程序:
本節說明升級程序的各個階段。您可以使用升級設定調整階段的運作方式,並使用指令控制升級程序。
階段 1:建立綠色集區
在這個階段,系統會為目標集區下的每個可用區,建立一組新的代管執行個體群組 (MIG),也就是「綠色」集區,並採用新的節點設定 (新版本或映像檔類型)。
系統會在開始佈建新的綠色資源前,檢查Quota。
在這個階段,原始 MIG (稱為藍色集區) 的叢集自動調度資源功能會停止擴充或縮減。綠色集區只能在這個階段擴大。
在這個階段,您可以視需要取消升級。取消藍綠升級時,升級作業會在目前階段暫停。取消後,您可以繼續或復原。在這個階段,回溯會刪除綠色集區。
第 2 階段:隔離藍色集區
在這個階段,藍色集區 (現有 MIG) 中的所有原始節點都會遭到隔離 (標示為無法排程)。現有工作負載會繼續執行,但系統不會在現有節點上排定新的工作負載。
在這個階段,您可以視需要取消升級。取消藍綠升級時,升級作業會在目前階段暫停。取消後,您可以繼續或回溯。在這個階段,系統會取消藍色集區的封鎖,並刪除綠色集區。
階段 3:排空藍色水池
在這個階段,藍色集區 (現有 MIG) 中的原始節點會分批排空。Kubernetes 清空節點時,會將驅逐要求傳送至節點上執行的所有 Pod。系統會重新排定 Pod。如果 Pod 違反 PodDisruptionBudget,或在排空期間 terminationGracePeriodSeconds 過長,系統會在刪除節點時,於「Delete blue pool」階段刪除這些 Pod。您可以透過本文和下一節所述的 BATCH_SOAK_DURATION 和 NODE_POOL_SOAK_DURATION,延長 Pod 刪除前的期限。
您可以透過下列任一設定控制批次大小:
BATCH_NODE_COUNT:批次作業中要排除的節點數量絕對值。BATCH_PERCENT:批次作業中要排除的節點百分比,以 0 到 1 (含) 之間的小數表示。如果百分比不是整數,GKE 會將節點數無條件捨去為最接近的百分比,但至少會保留 1 個節點。
如果這兩項設定都設為零,GKE 就會略過這個階段,直接進入「浸泡節點集區」階段。
此外,您也可以使用 BATCH_SOAK_DURATION 控制每個批次耗盡作業的浸泡時間。這個時間長度以秒為單位,預設為零秒。
在這個階段,您仍可視需要取消升級。取消藍綠升級作業時,升級作業會在目前階段暫停。取消後,您可以繼續或回溯。如果前一批節點已排空,而您繼續升級,系統可能會立即處理下一批節點,而不會遵守該批節點的 BATCH_SOAK_DURATION。在這個階段回溯,會停止排空藍色集區,並取消其節點排空。接著,工作負載可以重新排定在藍色集區 (不保證),綠色集區則會清空並刪除。
第 4 階段:浸泡節點集區
藍色集區節點清空後,您可以在這個階段驗證工作負載的健康狀態。
浸泡時間以秒為單位,並透過 NODE_POOL_SOAK_DURATION 設定。預設值為一小時 (3600 秒)。如果總浸泡時間達到 7 天 (604,800 秒),系統會立即開始刪除藍色集區階段。
總浸泡時間是 NODE_POOL_SOAK_DURATION 的總和,加上 BATCH_SOAK_DURATION 乘以批次數,批次數由 BATCH_NODE_COUNT 或 BATCH_PERCENT 決定。
在這個階段,您可以完成升級,略過所有剩餘的浸泡時間。這會立即開始移除藍色集區節點。
如有需要,您還是可以取消升級。 取消藍綠升級時,升級作業會在目前階段暫停。取消後,您可以繼續或回溯。
在這個階段,叢集自動配置器可以正常擴充或縮減綠色集區。
階段 5:刪除藍色集區
浸泡時間到期後,系統會從目標集區移除藍色集區節點。這個階段無法暫停。此外,這個階段不會使用淘汰機制,而是嘗試刪除 Pod。與逐出不同,刪除作業不會遵守 PDB,而是強制刪除 Pod。刪除作業會將 Pod 的 terminationGracePeriodSeconds 限制在 60 分鐘內。系統會嘗試最後一次刪除其餘 Pod,然後從節點集區刪除藍色集區節點。
這個階段完成後,節點集區只會包含具有更新設定 (版本或映像檔類型) 的新節點。
叢集自動調度器如何搭配藍綠升級運作
在藍綠升級階段,原始的「藍色」集區不會擴充或縮減。建立新的「綠色」集區後,只能在浸泡節點集區階段之前擴充,在這個階段可以擴充或縮減。如果回溯升級,原始「藍色」集區可能會在這個過程中擴充,以因應額外容量需求。
控管進行中的藍綠升級作業
採用藍綠升級時,您可以在升級期間使用指令控管升級作業。舉例來說,如果您判斷工作負載需要回溯至舊節點設定,就能高度控管程序。
取消 (暫停) 藍綠升級
取消藍綠升級作業時,升級作業會在目前階段暫停。除了「刪除藍色集區」階段外,這個指令適用於所有階段。取消後,節點集區會根據發出要求的階段,暫停在中間狀態。
瞭解如何取消節點集區升級。
繼續藍綠升級
如果確定可以繼續升級,請繼續操作。
如果繼續,升級程序會從暫停時的中間階段繼續進行。如要瞭解如何繼續升級節點集區,請參閱「繼續升級節點集區」。
復原藍綠升級
如果您確定不應繼續升級,並想將節點集區恢復至原始狀態,可以復原。如要瞭解如何復原節點集區升級作業,請參閱復原節點集區升級作業。
復原工作流程會反向執行,將節點集區還原至原始狀態。藍色集區會解除封鎖,以便重新排定工作負載。在此期間,叢集自動配置器可能會視需要擴充藍色集區。綠色集區會清空並刪除。
如果升級完成後想將節點集區降級回先前的版本,請參閱「降級節點集區」。
完成藍綠升級
在浸泡階段,如果您判斷工作負載不需要在新節點設定上進一步驗證,且可以移除舊節點,即可完成升級。完成升級後,系統會跳過其餘的浸泡階段,並進入刪除藍色集區階段。
如要進一步瞭解如何使用 complete 指令,請參閱「完成藍綠節點集區升級」。
自動調整藍綠升級
自動調度資源藍綠升級是另一種升級策略,可盡量延長不容中斷的工作負載遭到驅逐的時間,同時降低成本。這項策略衍生自標準的藍綠升級。不過,如果使用自動調整藍綠升級,GKE 最多會在節點遭封鎖後七天內,排空標示為不適合排空的工作負載節點。
以下章節說明何時應選擇這項策略、這項策略的藍綠升級實作方式與標準藍綠升級有何不同,以及使用這項策略時應遵循的最佳做法。
如要使用自動調度資源的藍綠升級功能,請參閱「設定自動調度資源的藍綠升級功能」。
何時應為環境選擇自動調度資源的藍綠升級
如果工作負載需要盡量延長遭驅逐前的時間,但不需要盡快重新排定時間,建議您為節點集區選擇自動調整藍綠升級。
如果符合下列情況,自動調整規模的藍綠升級功能會很適合你:
- 您有必須執行完成的批次工作負載。
- 您希望盡可能減少閒置或未充分利用的節點,將成本降至低於標準藍綠升級。
- 您不需要 Pod 立即重新排程,或立即復原至先前的節點設定。
如要盡量縮短將工作負載重新排程至新節點的時間,並回溯至先前的節點設定,請選擇標準藍綠升級。
如果自動調度資源的藍綠升級作業超出維護期間,系統會繼續執行,直到完成為止,就像標準藍綠升級作業一樣。詳情請參閱「節點升級策略如何與維護時段搭配運作」。
自動調整規模的藍綠升級階段
如果 GKE 升級的節點集區已啟用自動調度藍綠升級功能,升級階段會與標準藍綠升級不同。如要瞭解標準升級策略的階段,請參閱「藍綠升級階段」。
啟用自動調度資源的藍綠升級政策後,GKE 會在作業期間執行下列步驟:
- GKE 會建立 green 集區。不過,綠色集區一開始沒有任何節點。當 GKE 在後續階段從藍色集區逐出 Pod 時,叢集自動配置器會擴充綠色集區,以執行這些 Pod。
- GKE 會封鎖藍色集區。
GKE 會等待一段時間,您可以將這段時間設定為零到七天 (預設為三天)。在這段期間,GKE 會執行下列動作:
- 叢集自動配置器會縮減未充分運用的藍色集區節點,除非這些節點有執行
"cluster-autoscaler.kubernetes.io/safe-to-evict": "false"註解的 Pod。這項註解可確保需要最長時間才能停止運作的工作負載能繼續執行。如果叢集自動配置器未主動縮減未充分運用的節點,請參閱「排解叢集自動配置器未縮減節點的問題」和「考量 Pod 排程和中斷」。 - 縮減藍色集區時,GKE 會忽略
--min-nodes和--total-min-nodes參數的自動調度資源限制。如果所有藍色集區節點都在這段時間結束前縮減,GKE 會立即進入刪除藍色集區的階段。
- 叢集自動配置器會縮減未充分運用的藍色集區節點,除非這些節點有執行
GKE 會排空藍色集區,一次最多可平行排空 20 個剩餘的藍色集區節點。GKE 最多會保留 1 小時的
PodDisruptionBudget設定,以及最多 24 小時的terminationGracePeriodSeconds設定。GKE 會略過浸泡節點集區階段。
GKE 會刪除藍色集區。
自動調整藍綠升級的最佳做法
下列各節提供叢集、節點集區和 Pod 的最佳做法,有助於在自動調度藍綠升級期間,盡量減少工作負載中斷。
叢集與節點集區設定
- GKE 會在調度綠色集區資源時,遵守自動調度資源限制。將
--max-nodes或--total-max-nodes參數設得夠高,當 GKE 將工作負載從藍色集區重新排程至綠色集區時,叢集自動配置器就能擴充綠色集區。縮減藍色集區時,GKE 不會遵循--min-nodes或--total-min-nodes參數。 - 如要讓 GKE 更積極地縮減藍色集區中未充分利用的節點,請設定
optimize-utilization自動調度資源設定檔。詳情請參閱「自動調度資源設定檔」。 - 請勿更新以節點自動佈建功能建立的節點集區,改用自動調度資源的藍綠升級功能。此外,請勿將叢集設為針對新的自動佈建節點集區,使用自動調度資源的藍綠升級。
Pod 設定
- 為確保 Pod 不會在排空藍色集區前暫停期間遭到逐出,請將
"cluster-autoscaler.kubernetes.io/safe-to-evict": "false"註解新增至這些 Pod。如果 Pod 的節點未充分利用,這項註解可防止叢集自動調度器撤銷 Pod。 - 與標準藍綠升級一樣,為確保從藍色集區節點逐出的 Pod 只會重新排定至綠色集區節點,請為工作負載新增
cloud.google.com/gke-nodepool:NODE_POOL_NAME標籤的 nodeSelector。如果省略這個標籤,且叢集中有其他節點集區,遭撤銷的 Pod 可能會排定至這些其他節點集區的節點。
自動調度資源藍綠升級的限制
- 您可以取消並繼續自動調度資源的藍綠升級,但無法復原已取消的升級。
- 藍色集區遭到封鎖並排空後,如果叢集自動配置器因配額和限制或資源可用性而無法向上擴充綠色集區,Pod 可能會暫時無法排程,因為綠色集區是以零個節點建立。
- 只有在叢集控制層執行 1.34.0-gke.2201000 以上版本,且已啟用叢集自動配置器時,您才能使用自動調度藍綠升級功能升級節點集區。
GKE 使用自動調整的藍綠升級
GKE 會針對與標準藍綠升級相同的變更類型,使用自動調度資源的藍綠升級。如要進一步瞭解 GKE 使用標準藍綠升級策略的變更類型,請參閱「GKE 何時會使用藍綠升級」。
叢集自動配置器如何與自動調度資源的藍綠升級搭配運作
如要設定自動調度資源的藍綠升級,您也必須設定叢集自動調度器。
如果您使用自動調度資源的藍綠升級,叢集自動配置器會執行下列操作:
- 在 GKE 等待排空藍色集區的階段,藍色集區不會擴充,只有在節點使用率不足時,叢集自動配置器才會縮減藍色集區。叢集自動配置器可以將藍色集區縮減至零,而不考慮
--min-nodes或--total-min-nodes參數。在其他所有階段,叢集自動配置器都不會擴充或縮減藍色集區。 - 在升級策略的所有階段中,叢集自動配置器會視需要將綠色集區從零個節點擴充,或縮減至
--min-nodes設定。
短期升級 (僅限彈性啟動和佇列式佈建)
短期升級是節點升級策略,專門用於使用彈性啟動型 VM 的節點,以及使用佇列式佈建的節點 (1.32.2-gke.1652000 以上版本),這兩者都採用 Dynamic Workload Scheduler。如要進一步瞭解使用短期升級的節點,請參閱「關於使用彈性啟動模式的 GPU、TPU 和 H4D 用量」。
GKE 會對 Standard 節點集區和 Autopilot 叢集中的節點群組,採用短期升級策略。
採用這項策略時,GKE 會升級這些受限的執行階段節點,且現有的工作負載不會中斷。這項策略的運作方式如下:
- 現有節點會持續運作,直到發生先占情形。
- 新節點會使用新的節點設定。
- 節點最多會在七天內,從執行現有設定轉換為執行新設定。
對於使用彈性啟動型 VM 的節點,GKE 會自動設定這項策略。這項策略沒有任何設定。
GKE 使用短期升級時機
GKE 會自動將使用彈性啟動型 VM 的節點設為套用短期升級。如果節點只使用佇列式佈建,但執行於 GKE 1.32.2-gke.1652000 以上版本的叢集,也會使用短期升級。
對於使用短期升級的 Autopilot 叢集中的標準節點集區和節點群組,GKE 會在原本使用突增升級的情況下採用這項策略。除了節點升級 (版本變更) 之外,GKE 也會使用短期升級來更新其他類型的節點,做法與節點數擴充升級類似。詳情請參閱「使用尖峰升級的時機」。
後續步驟
- 瞭解如何手動升級叢集或節點集區。
- 瞭解如何設定節點集區升級策略。
- 瞭解如何設定節點自動升級。
- 進一步瞭解維護期間和排除時段。
- 進一步瞭解升級叢集的最佳做法。