教學課程:在 Azure Arc 所啟用的 AKS 中升級 Kubernetes
適用於:Azure Stack HCI 22H2 上的 AKS、Windows Server 上的 AKS
在管理應用程式和叢集生命週期過程中,當您使用 Azure Arc 啟用的 AKS 時,可能會想要升級至最新可用的 Kubernetes 版本。
本教學課程 (七個章節的第七部分) 說明如何升級 Kubernetes 叢集。 您將學習如何:
- 識別目前和可用的 Kubernetes 版本
- 升級 Kubernetes 節點的 Kubernetes 版本
- 升級 Kubernetes 節點的作業系統版本
- 將 Kubernetes 叢集升級至最新版本
- 驗證升級成功
- 移除 Kubernetes 叢集
有哪些可用的更新選項?
有幾種更新,可彼此獨立並以特定的支援組合進行:
- 將 AKS 主機更新 為最新版本。
- 將 AKS 工作負載叢集更新為新的 Kubernetes 版本。
- 將 AKS 容器主機更新為較新版本的作業系統。
- 作業系統和 Kubernetes 版本的組合更新。
所有更新都在滾動流程中執行,以避免工作負載可用性中斷。 當您將包含較新版組建的新 Kubernetes 背景工作角色節點引進叢集時,會將資源從舊節點移至新節點。 成功完成之後,舊節點會解除委任,並從叢集中移除。
本教學課程中的範例假設工作負載叢集 mycluster
目前是執行 Kubernetes 1.18.8 版,但使用 30 天以前的作業系統版本。
開始之前
在先前的教學課程中,您已瞭解如何將應用程式封裝至容器映射、將它上傳至 Azure Container Registry,以及建立 Kubernetes 叢集。 然後,您已將應用程式部署至叢集。 如果您尚未完成這些步驟,請從教學課程 1 – 建立容器映像開始。
更新工作負載叢集的 Kubernetes 版本
您必須先升級 PowerShell 模組和 AKS 主機,再更新 Kubernetes 版本。
重要
只有在目前的操作系統版本支援目標 Kubernetes 版本時,才能將工作負載叢集更新為較新版本的 Kubernetes。 若要檢查支援的作業系統和 Kubernetes 版本組合,請使用 Get-AksHciUpdates
命令。
使用下列步驟來更新 Kubernetes 版本:
若要取得工作負載叢集的目前版本,請執行下列命令:
Get-AksHciCluster
ProvisioningState : provisioned KubernetesVersion : v1.20.7 NodePools : linuxnodepool WindowsNodeCount : 0 LinuxNodeCount : 0 ControlPlaneNodeCount : 1 Name : mycluster
若要取得可用的 Kubernetes 版本,請執行下列命令:
Get-AksHciKubernetesVersion
OrchestratorType OrchestratorVersion OS IsPreview ---------------- ------------------- -- --------- Kubernetes v1.19.9 Linux False Kubernetes v1.19.11 Linux False Kubernetes v1.20.5 Linux False Kubernetes v1.20.7 Linux False Kubernetes v1.21.1 Linux False Kubernetes v1.19.9 Windows False Kubernetes v1.19.11 Windows False Kubernetes v1.20.5 Windows False Kubernetes v1.20.7 Windows False Kubernetes v1.21.1 Windows False
輸出會顯示可用的 Kubernetes 版本和作業系統。 您可以看到有更多可用的升級版本。 不過,升級叢集時,您無法略過版本。 例如,允許 v1.18.xx --> v1.19.xx,但不允許 v1.18.xx --> v1.20.xx。
起始 Kubernetes 版本更新
若要更新 Kubernetes 版本,請執行下列命令:
Update-AksHciCluster -name mycluster -kubernetesVersion v1.21.1
注意
此命令只將
mycluster
工作負載叢集上現有的叢集節點更新為新版本的 Kubernetes。
僅更新作業系統版本
重要
您可以在不變更 Kubernetes 版本的情況下,將工作負載叢集更新為較新版本的作業系統,但只有在新的操作系統版本不需要不同的 Kubernetes 版本時才能運作。
使用下列範例中的步驟來更新作業系統版本:
若要取得可用的工作負載叢集更新,請執行下列命令:
Get-AksHciClusterUpdates -name mycluster
details kubernetesversion operatingsystemversion ------- ----------------- ---------------------- This is a patch kubernetes upgrade. (i.e v1.1.X to v1.1.Y) v1.19.9 @{mariner=April 2021; windows=April 2021} This is a minor kubernetes upgrade. (i.e v1.X.1 to v1.Y.1) v1.20.5 @{mariner=April 2021; windows=April 2021}
若要起始作業系統版本更新,請執行下列命令:
Update-AksHciCluster -clusterName mycluster -kubernetesVersion v1.21.1 -operatingSystem
作業系統和 Kubernetes 版本都更新
重要
支援將工作負載叢集更新為較新版本的作業系統和 Kubernetes 版本。
下列範例假設有新的 Kubernetes 版本可用,而目前的版本號碼是 v1.20.7。
若要取得所有可用的工作負載叢集更新,請執行下列命令:
Get-AksHciClusterUpdates -name mycluster
details kubernetesversion operatingsystemversion ------- ----------------- ---------------------- This is a patch kubernetes upgrade. (i.e v1.1.X to v1.1.Y) v1.19.9 @{mariner=April 2021; windows=April 2021} This is a minor kubernetes upgrade. (i.e v1.X.1 to v1.Y.1) v1.20.5 @{mariner=April 2021; windows=April 2021}
若要起始工作負載叢集更新,請執行下列命令:
Update-AksHciCluster -name mycluster -kubernetesVersion v1.21.1
驗證升級
使用 Get-AksHciCluster 命令確認升級成功,如下所示:
Get-AksHciCluster -name mycluster
下列範例輸出顯示 AKS 叢集執行 KubernetesVersion v1.21.1:
ProvisioningState : provisioned
KubernetesVersion : v1.21.1
NodePools : linuxnodepool
WindowsNodeCount : 0
LinuxNodeCount : 0
ControlPlaneNodeCount : 1
Name : mycluster
選取叢集
本教學課程是系列的最後一個部分,您可能會想要刪除叢集。 使用 Remove-AksHciCluster 命令來移除資源群組、容器服務和所有相關資源:
Remove-AksHciCluster -name mycluster
下一步
在本教學課程中,您已在Arc啟用的AKS上升級 Kubernetes 叢集中的 Kubernetes。您已瞭解如何:
- 識別目前和可用的 Kubernetes 版本
- 升級 Kubernetes 節點的 Kubernetes 版本
- 升級 Kubernetes 節點的作業系統版本
- 將 Kubernetes 叢集升級至最新版本
- 驗證升級成功