共用方式為


更新多個成員叢集的協調流程

管理大量叢集的平台管理員經常會煩惱如何以安全且可預測的方式,規劃多個叢集的更新 (例如,升級節點 OS 映像版本、升級 Kubernetes 版本)。 為解決這個難題,Azure Kubernetes 機群管理員 (機群) 可讓您使用更新執行、暫存、群組和策略,協調多個叢集的更新。

顯示升級執行的圖表,其中包含兩個更新階段,每個階段都包含兩個具有兩個成員叢集的更新群組。

  • 更新執行:更新執行代表套用至 AKS 叢集集合的更新,其中包含更新目標和順序。 更新目標代表所需的更新 (例如升級至 Kubernetes 1.28.3 版)。 更新順序代表將更新套用至多個成員叢集的確切順序,使用階段和群組表示。 如果未指定,則所有成員叢集都會循序更新。 更新執行可以停止及啟動。
  • 更新階段:更新執行分為多個階段,皆會依序套用。 例如,第一個更新階段可能會更新測試環境成員叢集,而第二個更新階段則會接著更新實際執行環境成員叢集。 您可以指定等候時間,在套用後續更新階段之間設定延遲。
  • 更新群組:每個更新階段都包含一個或多個更新群組,用來選取要更新的成員叢集。 更新群組也可用來排序成員叢集更新的套用。 在更新階段內,更新會以平行方式套用至所有不同的更新群組;在更新群組內,成員叢集會循序更新。 機群的每個成員叢集都只能屬於一個更新群組。
  • 更新策略:更新策略代表具有階段和群組的更新順序。 您可以在更新執行中重複使用策略,而不是在每個執行中重複定義順序。

目前,叢集上支援的更新作業是升級。 有三種類型的升級可供您選擇:

  • 升級 Kubernetes 控制平面和節點的 Kubernetes 版本 (包括升級節點映像)。
  • 僅升級叢集控制平面的 Kubernetes 版本
  • 只升級節點映像。

您可以指定要升級的目標 Kubernetes 版本,但無法指定確切的目標節點映像版本,因為最新的可用節點映像版本可能會因叢集的區域而有所不同 (如需詳細資訊,請查看版本追蹤器)。 系統會根據您的偏好設定自動為您選取目標節點映像版本:

  • Latest:當叢集升級啟動時,使用叢集區域中可用的最新節點映像。 因此,根據叢集所在的區域,以及其升級實際啟動的時間,可能會使用不同的映像版本。
  • Consistent:更新執行啟動時,即會在此執行中的成員叢集區域之間挑選最新通用的映像版本,如此一來,所有叢集就會使用相同且一致的映像版本。

您應該選擇 Latest 來使用較新的映像版本,將安全性風險降到最低,並選擇 Consistent 來改善可靠性,先在較早的階段中使用及驗證叢集中的映像,再將其用於稍後的叢集中。

預定的維修

更新執行會接受您在 Azure Kubernetes Service (AKS) 叢集層級設定的計劃性維護時段

在更新執行中 (針對循序階段類型的更新執行),更新執行會依下列順序排列升級叢集的優先順序:

  1. 具有進行中維護時段的成員。
  2. 在未來四小時後開啟維護時段的成員。
  3. 沒有維護時段的成員。
  4. 具有已關閉維護時段的成員。

更新執行狀態

更新執行可以是下列其中一種狀態:

  • NotStarted:啟動更新之前執行的狀態。

  • Running:更新執行中至少有一個叢集正在進行升級。

  • Pending

    • 成員叢集:成員叢集可能因為下列原因而處於擱置狀態 (顯示在訊息欄位底下)。
      • 維護時段未開啟。 訊息會指出下一次開啟時間。
      • 成員區域中尚未提供目標 Kubernetes 版本。 版本追蹤器的訊息連結,讓您可以檢查跨區域版本的狀態。
      • 成員區域中尚未提供目標節點映像版本。 版本追蹤器的訊息連結,讓您可以檢查跨區域版本的狀態。
    • 群組:如果群組中的所有成員處於 Pending 狀態或未啟動,則群組會處於 Pending 狀態。 當成員移至 Pending 時,更新執行會嘗試升級群組中的下一個成員。 如果所有成員都處於 Pending 狀態,群組就會移至 Pending 狀態。 所有群組都必須處於終端狀態,才能移至下一個階段。 也就是說,如果群組處於 Pending 狀態,更新執行會先等候其完成,然後再繼續執行下一個階段。
    • 階段:如果某個階段下的所有群組處於 Pending 狀態或未啟動,則該階段處於 Pending 狀態。
    • 執行:如果應該在執行中的目前階段處於 Pending 狀態,則執行處於 Pending 狀態。
  • 略過:更新執行的所有層級都可以略過,而且這可能是系統偵測到或使用者起始的。

    • 成員
      • 您已略過成員或成員其中一個父代的升級。
      • 成員叢集已是目標 Kubernetes 版本 (如果更新執行模式為 FullControlPlaneOnly)。
      • 成員叢集已是目標 Kubernetes 版本,而且所有節點集區都是目標節點映像版本。
      • 為升級執行選擇一致的節點映像時,如果找不到其中一個節點集區的目標映像版本,則會略過該叢集的升級。 例如,在更新執行啟動之後,新增具有新 VM SKU 的新節點集區。
    • 群組
      • 系統偵測到所有成員叢集的狀態為 Skipped
      • 您在群組層級上起始略過。
    • 階段
      • 系統偵測到階段中的所有群組都是 Skipped 狀態。
      • 您在階段層級上起始略過。
    • 執行
      • 系統偵測到所有階段的狀態為 Skipped
  • 停止:更新執行的所有層級都可以停止。 進入停止狀態的可能性有兩種:

    • 您停止更新執行,此時更新執行會停止追蹤所有作業。 如果更新執行已起始作業 (例如,叢集升級正在進行中),則不會針對該個別叢集中止該作業。
    • 如果在更新執行期間遇到失敗 (例如其中一個叢集上的升級失敗),則整個更新執行會進入停止狀態,而且不會針對更新執行中的任何後續叢集嘗試進行作業。
  • 失敗:升級叢集失敗會導致下列動作:

    • 在成員叢集上將 MemberUpdateStatus 標示為 Failed
    • 將所有父代 (群組 -> 階段 -> 執行) 標示為 Failed,並顯示錯誤訊息摘要。
    • 停止進一步執行更新。

下一步