設定 Azure Kubernetes 應用程式網路成員 (預覽版) 的升級

這很重要

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

Azure Kubernetes Application Network 提供靈活控制如何套用小版本升級給成員。 每個註冊在 Azure Kubernetes 應用網路資源中的成員叢集,根據你所需的控制層級,可以使用兩種升級模式之一: 自我管理SelfManaged)或 完全管理FullyManaged)。 這些模式在成員層級運作,讓你可以選擇每個叢集的升級是手動還是自動進行。

本文說明這些升級模式的差異、如何為您的 Azure Kubernetes 應用網路成員設定,以及管理升級時需注意的重要考量。

一般升級模式考量

在為 Azure Kubernetes 應用網路成員設定升級模式時,請留意以下限制與考量:

  • Azure Kubernetes 應用網路升級模式 適用於 Azure Kubernetes 應用網路元件的次要版本。 它們 不會 控制或影響叢集層級的升級,例如Kubernetes 版本或節點映像更新。
  • 無論模式為何,補丁更新都會自動套用。
  • 你可以在加入過程中為每位成員選擇升級模式。 一旦選取後,該模式會持續生效,直到從 Azure Kubernetes 應用程式網路資源移除為止。 你無法更改成員的升級模式,除非先移除並重新加入 Azure Kubernetes Application Network 資源。
  • 如果你在會員加入時沒有指定升級模式,它就會預設為 SelfManaged

自我管理模式

SelfManaged 模式下,你可以指定 Azure Kubernetes 應用網路的次要版本來安裝並控制升級發生時的控制。 此模式適合你想手動管理小幅升級流程,而非依賴自動更新的情況。 在此模式下,若 --version 未指定,則預設為 N-1可用版本。 若會員加入時未指定升級模式,此模式也是預設模式。

自主管理模式考量

使用 SelfManaged 模式時,請留意以下幾點:

  • 升級僅允許在連續的次要版本之間進行(例如,從次要版本 NN+1)。 不支援跳過版本(例如從 1.1 升級到 1.3)。
  • 你只能回滾到緊接前一個版本(N-1),前提是它之前已經安裝在同一叢集上。 不支援還原到其他早期版本。
  • 不支援多次連續回滾。 最多只能回滾一個版本。

在會員加入時,請以自我管理模式註冊並選擇版本

  • SelfManaged模式中註冊,並在成員加入時使用az appnet member join指令,將--upgrade-mode SelfManaged--version參數設為所需版本以明確選擇版本。

    az appnet member join \
        --resource-group $APPNET_RG \
        --appnet-name $APPNET_NAME \
        --member-name $APPNET_MEMBER_NAME \
        --member-resource-id /subscriptions/$SUBSCRIPTION/resourcegroups/$AKS_RG/providers/Microsoft.ContainerService/managedClusters/$CLUSTER_NAME \
        --upgrade-mode SelfManaged \
        --version $VERSION
    

請查看目前版本

  • 使用 az appnet member show 指令檢查成員目前安裝的版本,並參考 Version 輸出中的屬性。

    az appnet member show --member-name $APPNET_MEMBER_NAME --appnet-name $APPNET_NAME --resource-group $APPNET_RG
    

請檢查可用的升級版本

  • 請使用 az appnet list-versions 指令,並將 --location 參數設定為感興趣的區域,確認各模式和 Kubernetes 版本的可用版本。 在輸出中,請參考欄位 AvailableUpgrades 以查看可用的版本。

    az appnet list-versions --location $LOCATION -o table
    

發起升級

  • 使用 az appnet member update 命令,將參數 --version 設定為所需的升級版本以啟動升級。

    az appnet member update --resource-group $APPNET_RG --appnet-name $APPNET_NAME --member-name $APPNET_MEMBER_NAME --version $VERSION
    

回退到先前版本

  • 使用az appnet member update命令,並將--version參數設定為要回滾到的版本,以回滾到先前安裝的版本。 請記得,僅支援恢復到上一個版本(N-1)。

    az appnet member update --resource-group $APPNET_RG --appnet-name $APPNET_NAME --member-name $APPNET_MEMBER_NAME --version $VERSION
    

完全管理模式

在模式下 FullyManaged ,Azure Kubernetes Application Network 會根據所選的發佈通道自動管理每個成員的版本升級。 如果您偏好 Azure Kubernetes Application Network 來處理版本穩定性評估、部署時程及持續更新,無需人工介入,我們推薦此模式。

使用 FullyManaged 升級模式時,你會選擇一個發佈通道,決定成員群組採用新版本的速度。 Azure Kubernetes 應用網路會根據通道的穩定性標準監控發佈準備狀況並升級成員。

以下可用於FullyManaged模式的發行頻道:

  • 快速:在應用程式網路最新版本可用時立即交付。 此頻道適用於非生產環境或早期驗證環境,優先測試新功能與功能,而非延長驗證時間。
  • 穩定:交付已完成額外驗證與測試的版本。 此通道主要用於生產環境,通常與小版本 N-1對齊,確保更高的可靠性並解決早期版本中發現的問題。

選擇 FullyManaged 模式時,你可以指定釋放通道為 stablerapid。 若省略,預設通道為 stable

這很重要

FullyManaged 模式下,Azure Kubernetes 應用程式網路會自動套用升級,因為新版本是透過發佈通道推廣的。 不支援手動控制升級時機或版本選擇。

請檢查可用的升級版本以取得全管理模式

  • 使用az appnet list-versions命令和FullyManaged模式的 grep 來檢查針對給定區域和和 Kubernetes 版本,每個通道對應的版本。

    az appnet list-versions --location $LOCATION -o table | grep FullyManaged
    

在會員加入時,請註冊於全管理模式並選擇釋出管道

  • 在成員聯結時,使用az appnet member join命令並將 --upgrade-mode FullyManaged參數--release-channel參數設定為所需通道,在FullyManaged模式中註冊並選取發行通道。 以下範例展示了會員加入時如何選擇 Rapid 頻道:

    az appnet member join \
        --resource-group $APPNET_RG \
        --appnet-name $APPNET_NAME \
        --member-name $APPNET_MEMBER_NAME \
        --member-resource-id /subscriptions/$SUBSCRIPTION/resourcegroups/$AKS_RG/providers/Microsoft.ContainerService/managedClusters/$CLUSTER_NAME \
        --upgrade-mode FullyManaged \
        --release-channel Rapid \
        --member-location $LOCATION
    

更新發行頻道選擇

你可以隨時更新你選擇的發行版本。 任何對發布頻道的變更即刻生效。

  • 使用 az appnet member update 命令並將 --release-channel 參數設置為所需的通道,更新現有成員的釋出通道選擇。 以下範例展示了如何為現有成員切換到該 Stable 頻道:

    az appnet member update --resource-group $APPNET_RG --appnet-name $APPNET_NAME --member-name $APPNET_MEMBER_NAME --release-channel Stable
    

欲了解更多關於 Azure Kubernetes 應用網路的資訊,請參閱以下文章: