Azure Kubernetes Service (AKS) 中支援的 Kubernetes 版本

Kubernetes 社群大約每隔三個月就會發行次要版本。 最近,Kubernetes 社群已將每個版本的支援時段從 9 個月增加到 12 個月,並從 1.19 版開始。

次要版本包含新功能和改善。 修補檔版本會更頻繁地發行 (有時每週),且適用於次要版本中的重大 Bug 修正。 修補檔版本包含安全性弱點或主要 Bug 的修正。

Kubernetes 版本

Kubernetes 針對每個版本使用標準語意化版本控制系統版本設定配置:

[major].[minor].[patch]

Example:
  1.17.7
  1.17.8

版本中每個號碼都表示與舊版的一般相容性:

  • 當不相容的 API 更新或回溯相容性可能中斷時,主要版本會變更。
  • 當進行的功能更新回溯相容於其他次要版本時,次要版本會變更。
  • 當進行回溯相容的 Bug 修正時,修補檔版本會變更。

目標是執行您所執行次要版本的最新修補檔版本。 例如,您的生產環境叢集在 1.17.7 上。 1.17.81.17 系列中最新可用的修補檔版本。 您應該盡快升級至 1.17.8,以確保您的叢集已完全修補並受到支援。

(Preview) Kubernetes 版本別名

重要

AKS 預覽功能是以自助、加入宣告為基礎提供。 預覽提供「依原狀」和「可用」,而且會從服務等級協定和有限保固中排除。 AKS 預覽會以最佳方式由客戶支援部分涵蓋。 因此,這些功能不適合用于生產環境。 如需詳細資訊,請參閱下列支援文章:

注意

Kubernetes 版本別名需要已安裝 aks-preview 延伸模組的 Azure CLI 2.31.0 版或更新版本。 請使用 az upgrade 來安裝最新版的 CLI。

您將需要 aks-preview Azure CLI 擴充功能 0.5.49 版或更新版本。 使用az extension add命令來安裝aks-preview Azure CLI 擴充功能。 或使用 az extension update 命令安裝任何可用的更新。

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

# Update the extension to make sure you have the latest version installed
az extension update --name aks-preview

Azure Kubernetes Service可讓您建立叢集,而不需要指定確切的修補程式版本。 在沒有指定修補程式的情況下建立叢集時,叢集將會執行次要版本的最新修補程式。 例如,如果您使用 建立叢集 1.21 ,您的叢集將會執行 1.21.7 ,這是 1.21的最新修補程式版本。

若要查看您所使用的修補程式,請 az aks show --resource-group myResourceGroup --name myAKSCluster 執行 命令。 屬性 currentKubernetesVersion 會顯示整個 Kubernetes 版本。

{
 "apiServerAccessProfile": null,
  "autoScalerProfile": null,
  "autoUpgradeProfile": null,
  "azurePortalFqdn": "myaksclust-myresourcegroup.portal.hcp.eastus.azmk8s.io",
  "currentKubernetesVersion": "1.21.7",
}

Kubernetes 版本支援原則

AKS 會將正式運作的版本定義為在所有 SLO 或 SLA 測量中啟用的版本,並適用于所有區域。 AKS 支援三個 GA 次要版本的 Kubernetes:

  • 在 AKS (中發行的最新 GA 次要版本,我們會將其稱為 N) 。
  • 前兩個次要版本。
    • 每個支援的次要版本還支援最多兩 (2) 個穩定修補檔。

AKS 也支援預覽版本,這些版本會明確加上標籤,並受限於 預覽條款及條件

注意

AKS 會使用涉及漸進式區域部署的安全部署做法。 這表示最多可能需要 10 個工作天的時間,才能在所有區域中使用新發行或新版本。

AKS 上 Kubernetes 版本的支援視窗稱為 「N-2」: (N (最新版本) - 2 (次要版本) ) 。

例如,如果 AKS 目前引進 1.17.a ,則會針對下列版本提供支援:

新的次要版本 支援的版本清單
1.17.a 1.17.a、1.17.b、1.16.c、1.16.d、1.15.e、1.15.f

其中 ".letter" 表示修補檔版本。

引進新的次要版本時,即會淘汰並移除最舊的次要版本和支援的修補檔版本。 例如,目前支援的版本清單如下:

1.17.a
1.17.b
1.16.c
1.16.d
1.15.e
1.15.f

AKS 版本 1.18.*,在 30 天內移除所有 1.15.* 版本不支援。

注意

如果客戶正在執行不支援的 Kubernetes 版本,當要求叢集支援時,系統會要求他們進行升級。 AKS 支援原則未涵蓋執行不支援 Kubernetes 版本的叢集。

除了上述版本之外,AKS 最多支援指定次要版本的兩個 修補程式 版本。 因此,若指定下列支援的版本:

Current Supported Version List
------------------------------
1.17.8, 1.17.7, 1.16.10, 1.16.9

如果 AKS 版本 1.17.91.16.11 ,則最舊的修補程式版本已被取代並移除,且支援的版本清單會變成:

New Supported Version List
----------------------
1.17.*9*, 1.17.*8*, 1.16.*11*, 1.16.*10*

支援的 kubectl 版本

根據 Kubernetes 的 kubectl 支援原則,您可以使用比 kube-apiserver 版本低或高一個次要版本的 kubectl

例如,如果您的 kube-apiserver1.17,則您可以搭配該 kube-apiserver 使用 1.161.18 版的 kubectl

若要安裝或更新 kubectl 至最新版本,請執行:

az aks install-cli

發行和淘汰程序

您可以在 AKS Kubernetes 發行行事曆上參考即將推出的版本和淘汰。

針對 Kubernetes 的新次要版本:

  • AKS 會在移除之前至少 30 天,在 AKS 版本資訊 上發佈具有新版本發行計畫日期和個別舊版淘汰的預先公告。

  • AKS 會使用 Azure Advisor 來警示使用者,如果新版本會導致叢集中發生問題,因為 API 已被取代。 如果使用者目前不支援,Azure Advisor 也會用來警示使用者。

  • AKS 會發佈 服務健康情況通知 給具有 AKS 和入口網站存取權的所有使用者,並傳送電子郵件給具有計劃性版本移除日期的訂用帳戶管理員。

    注意

    若要瞭解您的訂用帳戶管理員或變更訂用帳戶的人員,請參閱 管理 Azure 訂用帳戶

  • 使用者有 30 天的時間來移除版本並升級至支援的次要版本,以繼續獲得支援。

針對 Kubernetes 的新修補檔版本:

  • 由於修補檔版本的急迫性,因此一推出就能引進服務。 一旦可用,修補程式會有兩個月的最低生命週期。
  • 一般而言,AKS 不會廣泛傳達新版本的發行。 不過,AKS 會持續監視及驗證可用的 CVE 修補程式,以及時在 AKS 中加以支援。 如果找到重大修補程式或需要使用者動作,AKS 會通知使用者升級至新可用的修補程式。
  • 使用者從 AKS 移除修補程式版本起 30 天 ,可升級至支援的修補程式,並繼續收到支援。 不過,一 旦版本已被取代/移除之後,您將無法再建立叢集或節點集區。

支援的版本原則例外

AKS 保留新增或移除具有一或多個重要生產影響 Bug 或安全性問題之新/現有版本的權利,而不需事先通知。

根據 Bug 或安全性問題的嚴重性,可能會略過或加速推出特定修補檔版本。

Azure 入口網站 和 CLI 版本

當您在入口網站中使用 Azure CLI 或 Azure PowerShell 部署 AKS 叢集時,叢集預設為 N-1 次要版本和最新的修補程式。 例如,如果 AKS 支援 1.17.a1.17.b1.16.c1.16.d1.15.e1.15.f,則選取的預設版本為 1.16.c

若要找出目前可供您訂用帳戶和區域使用的版本,請使用 az aks get-versions 命令。 下列範例會列出 EastUS 區域的可用 Kubernetes 版本:

az aks get-versions --location eastus --output table

AKS Kubernetes 發行行事曆

如需過去的發行記錄,請參閱 Kubernetes

K8s 版本 上游版本 AKS 預覽 AKS GA 生命週期結束
1.20 2020 年 12 月 8 日 2021 年 1 月 2021 年 3 月 1.23 GA
1.21 2021 年 4 月 8 日 2021 年 5 月 2021 年 7 月 1.24 GA
1.22 2021 年 8 月 4 日 2021 年 9 月 2021 年 12 月 1.25 GA
1.23 2021 年 12 月 2022 年 1 月 2022 年 4 月 1.26 GA
1.24 4 月 22 日-22 日 2022 年 5 月 2022 年 7 月 1.27 GA
1.25 2022 年 8 月 2022 年 9 月 2022 年 11 月 1.28 GA

常見問題集

Microsoft 如何通知我有新的 Kubernetes 版本?

AKS 小組會在檔中發佈具有新 Kubernetes 版本計畫日期的預先公告、我們的GitHub,以及擁有叢集的訂用帳戶管理員的電子郵件,這些管理員將落在支援之外。 除了公告之外,AKS 也會使用Azure Advisor在Azure 入口網站內通知客戶,以在使用者不受支援時發出警示,並警示他們即將淘汰的 API 會影響其應用程式或開發程式。

預期要多頻繁地升級 Kubernetes 版本才能保持受到支援?

從 Kubernetes 1.19 開始,開放原始碼社群已將支援延長為 1 年。 AKS 認可以啟用修補程式,並支援比對上游承諾。 對於 1.19 和更新版本的 AKS 叢集,您至少一年可以升級一次,以維持支援的版本。

當使用者使用不支援的次要版本升級 Kubernetes 叢集時,會發生什麼事?

如果您是在 n-3 版或更舊版本上,則表示您不在支援範圍內,且系統會要求您進行升級。 當您成功地從 n-3 版升級至 n-2 版時,您會回到我們的支援原則範圍內。 例如:

  • 如果最舊的 AKS 版本是 1.15.a ,且您位於 1.14.b 或較舊版本,則不在支援之外。
  • 當您成功地從 1.14.b 升級至 1.15.a 或更高版本時,您會回到我們的支援原則範圍內。

不支援降級。

「支援外部」的意義

「不在支援範圍內」是指:

  • 您正在執行的版本不在支援的版本清單中。
  • 當要求支援時,系統會要求您將叢集升級至支援的版本,除非您是在版本淘汰後 30 天的寬限期內。

此外,AKS 不會對支援的版本清單以外的叢集進行任何執行時間或其他保證。

當使用者使用不支援的次要版本調整 Kubernetes 叢集時,會發生什麼事?

對於 AKS 不支援的次要版本,相應縮小或相應放大應該會繼續運作。 由於沒有服務品質保證,因此建議進行升級以讓叢集恢復支援。

使用者是否可以永遠留在 Kubernetes 版本上?

如果叢集不支援超過三個 (3 個) 次要版本,而且發現有安全性風險,Azure 會主動連絡您升級叢集。 如果您未採取進一步動作,Azure 會保留代表您自動升級叢集的權利。

如果節點集區不在其中一個支援的 AKS 版本中,控制平面支援哪個版本?

控制平面必須位於所有節點集區的版本視窗中。 如需升級控制平面或節點集區的詳細資訊,請流覽 升級節點集區的檔。

我可以在叢集升級期間略過多個 AKS 版本嗎?

當您升級支援的 AKS 叢集時,無法略過 Kubernetes 次要版本。 Kubernetes 控制平面 版本扭曲原則 不支援略過次要版本。 例如,在下列兩者之間進行升級:

  • 1.12.x ->1.13.x:允許。
  • 1.13.x ->1.14.x:允許。
  • 1.12.x ->1.14.x:不允許。

若要進行從 1.12.x ->1.14.x 的升級:

  1. 1.12.x ->1.13.x 升級。
  2. 1.13.x ->1.14.x 升級。

只有在從不支援的版本升級回最低支援的版本時,才能略過多個版本。 例如,如果1.15是支援的次要版本,您可以從不支援的 1.10.x升級至支援的1.15.x

我可以在 30 天的支援時段內建立新的 1.xx.x 叢集嗎?

不會。 一旦淘汰或移除版本,您就無法使用該版本來建立叢集。 當推出變更時,您將會開始看到從版本清單中移除舊版本。 此程序在宣告之後最多可能需要兩週的時間,並會以漸進方式按區域推出。

如果我在剛淘汰的版本上,仍可新增節點集區嗎? 還是需要升級?

不會。 您無法將已淘汰版本的節點集區新增至叢集。 您可以新增新版本的節點集區。 不過,這可能需要您先更新控制平面。

您更新修補程式的頻率為何?

修補程式的生命週期下限為兩個月。 若要在發行新修補程式時保持最新狀態,請遵循 AKS 版本資訊

後續步驟

如需如何升級叢集的相關資訊,請參閱升級 Azure Kubernetes Service (AKS) 叢集