Azure Kubernetes Service(AKS)中的藍綠節點池升級(預覽)

藍綠升級可以讓您透過新增具有更新配置(Kubernetes 及節點映像版本)的 綠色 節點到現有節點池上,同時原本的 藍 節點將繼續運作,來升級您的 AKS 節點池。 此策略讓您能在轉為使用新版本前測試並驗證新設定,並在出現問題時迅速回復舊狀態。

本文說明何時使用藍綠升級、流程、配置選項,以及使用此升級策略時的考量。

何時使用藍綠升級

備註

請注意,藍綠升級在升級過程中需要節點容量的雙倍,這可能導致成本增加和資源需求。

建議在以下情況考慮藍綠升級:

  • 你需要對工作負載進行細緻的測試和批次驗證。
  • 你需要在切換生產流量前驗證新的節點配置。
  • 你想要的是即時回滾功能,且不需要重新配置節點。
  • 你正在升級不能中斷的關鍵生產負荷。
  • 你需要測試應用程式與新版 Kubernetes 的相容性。

如果你目前使用手動藍綠部署流程來升級節點池,並想自動化這個工作流程,建議改用 AKS 藍綠節點池升級。 欲了解更多手動藍綠升級流程,請參見 手動藍綠節點池升級。

何時使用標準滾動升級

標準滾動升級在以下情境下可能更為合適:

  • 具備停機容忍度的開發或測試環境。
  • 在成本敏感的部署中,臨時加倍成本難以承受。
  • 簡單的無狀態應用程式,具備良好的中斷處理能力。
  • 配額或容量有限的環境。

先決條件

  • 擁有足夠的配額以增加節點池容量至雙倍。
  • Azure CLI 版本 2.64.0 或更高。 使用命令 az --version 查找您的版本。 如果你需要安裝或升級,請參考 安裝 Azure CLI。
  • aks-preview Azure CLI 擴充功能已安裝並更新至最新版本。
  • API 版本 2025-08-02-preview 或更新版本。
  • 叢集自動調整器 已設定(建議,但非必需)。

安裝 aks-preview Azure CLI 擴充功能

這很重要

AKS 預覽功能可透過自助服務,以加入方式使用。 預覽是「依現況」及「可用時」提供的,並不包括在服務等級協定和有限保固之內。 客戶支援部門會盡最大努力,部分支援 AKS 預覽。 因此,這些功能不適合實際執行用途。 如需詳細資訊,請參閱下列支援文章:

使用aks-preview和az extension add指令來安裝或更新az extension update擴充功能。

# Install the aks-preview extension
az extension add --name aks-preview

# Update the aks-preview extension
az extension update --name aks-preview

藍綠升級支援的功能

藍綠升級目前支援以下功能:

藍綠升級的限制與考量

藍綠色升級目前不支援以下功能:

使用藍綠升級時請考慮以下事項:

資源需求 複雜度考量 時間因素
* 升級過程中節點容量加倍,導致基礎設施成本增加。
* 你需要在 Azure 訂閱中增加額外的運算配額,以容納節點暫時加倍的情況。
* 在高峰用電時段,您可能會遇到區域容量限制。
* 需要謹慎規劃有狀態的工作負載,以確保遷移期間資料的一致性。
* 在轉換期間,藍節點與綠節點需額外監控。
* 整體升級時間較長,相較於現地升級。
* 驗證期間會增加最終剪接前的時間。

藍綠升級工作流程

藍綠升級流程為節點池版本間的安全轉換創造了平行環境。 您可以在驗證後升級並提交至新的綠色集區,或在發生問題時升級並回復至原始藍色集區。

升級與提交場景

下圖說明升級與提交的工作流程:

展示升級與提交情境工作流程的示意圖。

升級與提交流程如下:

  1. 藍色隔離節點:現有的藍色節點被標記為不可排程。
  2. 新增 綠色 節點:新增設定後的 綠色 節點會加入現有節點池。
  3. 平行操作: 藍色 與 綠色 節點同時在同一節點池中運行。
  4. 漸進遷移:工作負載會逐步從 藍色 節點抽空,並以批次方式重新排程到 綠色 節點。
  5. 驗證 綠色 節點:在遷移過程中監控並測試新節點的工作負載。
  6. 完全轉換:最終驗證期結束後, 藍色 節點被刪除, 綠色 節點成為主要節點。

升級與回復情境。

下圖說明升級與回滾的工作流程:

顯示升級與回復情境工作流程的圖表。

升級與回復流程如下:

  1. 藍色隔離節點:現有的藍色節點被標記為不可排程。
  2. 新增 綠色 節點:新增設定後的 綠色 節點會加入現有節點池。
  3. 平行操作: 藍色 與 綠色 節點同時在同一節點池中運行。
  4. 偵測問題:在 綠 節點驗證時識別問題。
  5. 執行回滾:解除 藍色節點的 封鎖,排空 綠色 節點,並將工作負載遷移回 藍色 節點。
  6. 還原狀態: 綠色 節點被刪除,節點池會回復到原始配置。

選擇你的升級策略

在建立或升級 AKS 節點池時,你可以指定要使用的升級策略(upgradeStrategy)。 可用的策略包括:

策略 Description
Rolling (預設值) 標準的滾動升級,節點一個一個更新。
BlueGreen 在保留原本藍色節點運作的同時,新增更新設定的綠色節點到現有節點池中。

在升級進行期間,AKS 支援從 BlueGreen 切換到 Rolling,但不支援從 Rolling 切換到 BlueGreen。

自訂藍綠升級屬性

你可以自訂以下藍綠色升級屬性(NodePoolBlueGreenUpgradeSettings):

房產 Description 允許的值 預設值
drainBatchSize 升級期間每個批次要清空的節點數量或百分比。 百分比是根據升級開始時藍色節點的總數計算出來的。 小數節點會無條件進位。 整數(例如)5或百分比(例如)。 50% 必須是非零的值。 10%
drainTimeoutInMinutes 在每個節點上等待 Pod 優雅終止的最長時間 (分鐘),超過則升級失敗。 在此等待期間會遵守 Pod 中斷預算。 如果超過,升級會失敗。 整數介於 1 和 1440 (24 小時)。 30分鐘
batchSoakDurationInMinutes 在清空節點批次之間設置暫停時間(以分鐘為單位),以便觀察與驗證。 整數介於 0 和 1440 (24 小時)。 15 分鐘
finalSoakDurationInMinutes 在所有節點都清空後,等待時間(以分鐘計)是移除舊節點之前的等待時間。 在提交升級前提供最終驗證期間。 回滾操作僅在最後一次浸泡期間可用。 一旦這段期間結束且藍色池被刪除,回滾就無法再進行。 整數介於 0 和 10080 之間(七天)。 60 分鐘

請建立一個節點池,並將其設定為藍綠升級的預設設定值。

  • 用預設的藍綠色升級策略和設定建立節點池。使用 az aks nodepool add 指令,並將 --upgrade-strategy 參數設為 bluegreen。 以下範例在資源群組myNodePool的 AKS 叢集myAKSCluster中,建立一個名為myResourceGroup的新節點池:

    az aks nodepool add \
        --name myNodePool \
        --cluster-name myAKSCluster \
        --resource-group myResourceGroup \
        --upgrade-strategy bluegreen
    

建立一個節點池,並設定自訂藍綠升級設定

  • 使用 az aks nodepool add 命令,搭配 --upgrade-strategy 參數設為 bluegreen,並設定任何所需的自訂藍綠升級設定,以建立具有自訂藍綠升級設定的節點集區。 以下範例在資源群組myNodePool內的 AKS 叢集myAKSCluster中建立一個名為myResourceGroup的新節點池,並設定自訂藍綠色升級設定:

    az aks nodepool add \
        --name myNodePool \
        --cluster-name myAKSCluster \
        --resource-group myResourceGroup \
        --upgrade-strategy bluegreen \
        --drain-timeout-bg 5 \
        --batch-soak-duration 5 \
        --drain-batch-size 50% \
        --final-soak-duration 180
    

為現有節點池啟動藍綠升級

這很重要

當你恢復暫停升級時,可以更新藍綠設定,但無法更改 Kubernetes 版本。 你可以把進行中的藍綠色升級切換到滾動策略,但不能把進行中的滾動升級切換成藍綠色。

  • 使用 az aks nodepool upgrade 指令,並將 --kubernetes-version 參數設定為所需的版本,以啟動現有節點池的藍綠升級。 你可以為已經使用藍綠策略的節點池,或尚未設定藍綠策略的節點池開始藍綠升級。 以下範例展示了這兩種情境:

    # Start a blue-green upgrade for an existing node pool already using blue-green strategy
    az aks nodepool upgrade \
        --name myNodePool \
        --cluster-name myAKSCluster \
        --resource-group myResourceGroup \
        --kubernetes-version <kubernetes-version>
    
    # Start a blue-green upgrade for an existing node pool not yet using blue-green strategy
    az aks nodepool upgrade \
        --name myNodePool \
        --cluster-name myAKSCluster \
        --resource-group myResourceGroup \
        --kubernetes-version <kubernetes-version> \
        --upgrade-strategy bluegreen
    

暫停或取消藍綠升級

  • 使用指令 az aks nodepool operation-abort 暫停或取消正在進行的藍綠色升級。 以下範例會暫停或取消資源群組myNodePool中 AKS 叢集myAKSCluster中的名為myResourceGroup的節點池的藍綠升級:

    az aks nodepool operation-abort \
        --name myNodePool \
        --cluster-name myAKSCluster \
        --resource-group myResourceGroup
    

將進行中的藍綠色升級切換成滾動

如果進行中的藍綠升級因節點集區屬性變更而需要重新建立節點映像,因而無法繼續執行,你可以將節點集區的升級策略切換為滾動升級。 AKS 會移除藍綠色升級保護,並透過滾動升級行為繼續清理。

az aks nodepool update \
    --name myNodePool \
    --cluster-name myAKSCluster \
    --resource-group myResourceGroup \
    --upgrade-strategy Rolling

回復藍綠升級

取消進行中的藍綠升級後,即可使用 az aks nodepool rollback 命令啟動回復。

回滾功能僅在最後浸泡期間可用,詳見 finalSoakDurationInMinutes 屬性。

下列範例會針對資源群組 myNodePool 內、AKS 叢集 myAKSCluster 中名為 myResourceGroup 的節點集區,執行藍綠升級回復:

az aks nodepool rollback \
    --name myNodePool \
    --cluster-name myAKSCluster \
    --resource-group myResourceGroup

常見問題集 (FAQ)

藍綠升級支援此設定嗎maxUnavailable?

不,這個 maxUnavailable 設定不適用於藍綠色升級。 新的 綠色 節點會與現有 的藍色 節點一同加入現有節點池,確保所有原始節點在升級過程中仍然可用。

藍綠升級是否可用於 Kubernetes 和節點映像版本以外的節點集區更新?

不,藍綠升級策略目前只支援 Kubernetes 和節點映像版本升級。 你無法用這個策略來做其他變更,例如憑證輪替或 Kubelet 和作業系統設定的變更。 如果您需要在藍綠升級進行期間套用會觸發節點重新映像的變更,請將節點集區切換為滾動升級策略,或在重試之前還原屬性變更。

哪些 Kubernetes 版本支援藍綠升級?

藍綠升級適用於所有 支援 AKS 的 Kubernetes 版本,包括社群支援版本與 長期支援(LTS)版本,只要你使用 API 版本 2025-08-02-preview 或更高版本。

我可以將自動安全性修補通道與藍綠升級搭配使用嗎?

可以,只要節點池的升級策略設定成藍綠。 設定後,安全補丁會採用藍綠升級流程,而非預設的滾動更新機制。

藍綠升級期間持續性磁碟區會發生什麼情況?

持久磁碟區仍可存取。 Pod 會優雅地清空並重新排程,同時維持其磁碟區附加。

我可以同時在多個節點池中進行藍綠升級嗎?

是的,不同節點池可以同時進行藍綠升級,但每個節點池只能有一次活躍升級。 你目前無法控制多個升級池的順序。

藍綠升級如何處理節點特定組態,例如污點與標籤?

所有節點配置,包括污點、標籤和註解,都會自動複製到 綠色 池中。

藍綠升級的成本影響如何?

升級期間,原本的 藍色 節點和新的 綠色 節點都會被收費,所以務必在過渡期間預估暫時成本翻倍。

容量故障時會發生什麼事?

若新增 綠色 節點時容量故障,升級失敗, 藍色 節點則不受影響。 當有足夠容量可用時,您可以重試升級或選擇回復。

回滾過程中會發生什麼事?

若回滾時綠色節點數量少於或等於藍色節點數量,綠色節點會被移除,藍色節點則會解除封鎖並恢復正常運作。

欲了解更多關於 AKS 節點池升級的資訊,請參閱以下文章: