Azure Kubernetes Service (AKS) 版本的長期支援
Kubernetes 社群大約每四個月發行一個新的次要版本,而且每個版本都有一年的支援時段。 在 Azure Kubernetes Service (AKS)中,此支援視窗稱為 社群支援。
AKS 支援此 社群支持 視窗中的 Kubernetes 版本,可從社群版本推送 Bug 修正和安全性更新。 雖然社群支持發行頻率提供優點,但它需要您跟上 Kubernetes 版本的最新狀態,視應用程式的相依性和 Kubernetes 生態系統中的變更步調而定,可能會很困難。
為了協助您管理 Kubernetes 版本升級,AKS 提供 長期支援 (LTS) 選項,其可擴充 Kubernetes 版本的支援 視窗,讓您有更多時間規劃及測試更新 Kubernetes 版本的升級。
AKS 支援類型
大約一年後,指定的 Kubernetes 次要版本會結束 社群支援,使得 AKS 叢集無法使用 Bug 修正和安全性更新。
AKS 提供一年的 社群支援 和一年 的長期支援 ,以支援公用 AKS 存放庫中來自社群上游的埠安全性修正。 上游 LTS 工作組會為社群提供較長的支援視窗而付出的努力。 LTS 打算讓您在指定 Kubernetes 版本的正式上市 (GA) 期間內規劃及測試兩年內升級的時間。
社群支援 | 長期支援 | |
---|---|---|
使用時機 | 當您可以跟上上游 Kubernetes 版本時 | 當您需要控制何時從某個版本移轉至另一個版本時 |
支援版本 | 三個 GA 次要版本 | 一個 Kubernetes 版本 (目前 1.27) 兩年 |
啟用長期支援
啟用 LTS 需要將您的叢集移至進階層,並明確選取 LTS 支援方案。 雖然當叢集位於 *社群支援時,您可以啟用 LTS,但一旦您啟用進階層,就會向您收取費用。
在新叢集上啟用 LTS
使用
az aks create
命令建立已啟用 LTS 的新叢集。下列命令會建立新的 AKS 叢集,並使用 Kubernetes 1.27 版啟用 LTS 作為範例。 若要檢閱可用的 Kubernetes 版本,請參閱 AKS 發行追蹤器。
az aks create \ --resource-group <resource-group-name> \ --name <cluster-name> \ --tier premium \ --k8s-support-plan AKSLongTermSupport \ --kubernetes-version 1.27 \ --generate-ssh-keys
在現有叢集上啟用 LTS
使用
az aks update
命令在現有的叢集上啟用 LTS。az aks update --resource-group <resource-group-name> --name <cluster-name> --tier premium --k8s-support-plan AKSLongTermSupport
遷移至最新的 LTS 版本
上游 Kubernetes 社群支援兩個次要版本升級路徑。 此程式會將 Kubernetes 叢集中的物件移轉為升級程式的一部分,並提供經過測試和認可的移轉路徑。
如果您想要進行就地移轉,AKS 服務會將控制平面從先前的 LTS 版本移轉至最新版本,然後移轉您的數據平面。 若要進行就地升級至最新的 LTS 版本,您需要將已啟用 LTS 的 Kubernetes 版本指定為升級目標。
使用
az aks upgrade
命令移轉至最新的 LTS 版本。下列命令使用 Kubernetes 1.32.2 版作為範例版本。 若要檢閱可用的 Kubernetes 版本,請參閱 AKS 發行追蹤器。
az aks upgrade --resource-group <resource-group-name> --name <cluster-name> --kubernetes-version 1.32.2
注意
1.30 是 1.27 之後的下一個 LTS 版本。 您可以透過上述步驟,從 1.30 版叢集加入加入 LTS。 LTS 1.27 版將在 2025 年 7 月之前結束生命週期(EOL)。 目前 LTS 中支援的修補程式: [1.27.100] [https://github.com/aks-lts/kubernetes/blob/release-1.27-lts/CHANGELOG/CHANGELOG-1.27.md#v127100-akslts]
停用現有叢集的長期支援
停用現有叢集上的 LTS 需要將您的叢集移至免費或標準層,並明確選取 KubernetesOfficial 支援方案。
一個 LTS 版本與下一個版本之間大約有兩年的時間。 除了移轉兩個以上次要版本的上游支援之外,您的應用程式很有可能相依於已棄用的 Kubernetes API。 建議您在目標 LTS Kubernetes 版本上徹底測試您的應用程式,並將藍色/綠色部署從某個版本執行到另一個版本。
使用
az aks update
命令停用現有叢集上的 LTS。az aks update --resource-group <resource-group-name> --name <cluster-name> --tier [free|standard] --k8s-support-plan KubernetesOfficial
使用
az aks upgrade
命令將叢集升級至較新的支援版本。下列命令使用 Kubernetes 1.28.3 版作為範例版本。 若要檢閱可用的 Kubernetes 版本,請參閱 AKS 發行追蹤器。
az aks upgrade --resource-group <resource-group-name> --name <cluster-name> --kubernetes-version 1.28.3
不支援的附加元件和功能
AKS 小組目前會追蹤 Kubernetes 社群支援所在的附加元件版本。 一旦版本離開社群支持,我們依賴開放原始碼項目進行受控附加元件,以繼續支援該支援。 由於各種外部因素,某些附加元件和功能可能不支援這些上游社群支援視窗外的 Kubernetes 版本。
下表提供不支援的附加元件和功能清單,以及不支援的原因:
附加元件/功能 | 不支援的原因 |
---|---|
Istio | Istio 支援週期很短(六個月),Kubernetes 1.27 不會有維護版本。 |
Keda | 無法保證未來與 Kubernetes 1.27 的版本相容性。 |
Calico | 需要 Calico Enterprise 合約過去社群支援。 |
金鑰管理服務 (KMS) | KMSv2 會在此 LTS 週期中取代 KMS。 |
Dapr | 不支援 AKS 擴充功能。 |
應用程式閘道輸入控制器 | 移轉至容器的應用程式閘道會在 LTS 期間發生。 |
Open Service Mesh | OSM 已被取代。 |
AAD Pod 身分識別 | 取代工作負載身分識別。 |
注意
如果啟用其中任何附加元件或功能,則您無法將叢集移至長期支援。
雖然Microsoft不支援這些 AKS 受控附加元件,但如果您想要使用其過去的社群支援,您可以在叢集上安裝其開放原始碼版本。
我們如何決定下一個 LTS 版本
Kubernetes LTS 版本可從 GA 取得兩年,我們根據下列準則將較高版本的 Kubernetes 標示為 LTS:
- 客戶有足夠的時間從舊版 LTS 移轉至目前的 LTS 版本。
- 舊版有兩年支持視窗。
閱讀 AKS 版本資訊,以在規劃移轉時隨時掌握。
常見問題集
AKS 1.27 社群支援將於 2024 年 7 月到期。 我可以在該日期之後建立 1.27 版的新 AKS 叢集嗎?
可以,只要在叢集上啟用 LTS,您便能在社群支援時段結束後建立 1.27 版的新 AKS 叢集。
在社群支援結束後,我可以在 AKS 1.27 上啟用和停用 LTS 嗎?
社區支援結束後,您可以在 AKS 1.27 上啟用 LTS 支援計劃。 不過,社群支援結束後,您無法在 AKS 1.27 上停用 LTS。
我有個在 1.27 版執行的叢集。 這是否表示該叢集會自動處於 LTS 狀態?
否,您必須在叢集上明確啟用 LTS 才能獲得 LTS 支援。 若想啟用 LTS 還須位於進階層。
LTS 的定價模式為何?
LTS 適用於進階層,如需詳細資訊,請參閱進階層定價。
啟用 LTS 之後,我的叢集 autoUpgradeChannel 已變更為修補程式通道
這是預期行為。 如果 AKS 叢集沒有定義的 autoUpgradeChannel,它會預設 patch
為 LTS。