教學課程:在 Azure Arc 所啟用的 AKS 中升級 Kubernetes
適用於:Azure Stack HCI 22H2 上的 AKS、Windows Server 上的 AKS
在管理應用程式和叢集生命週期中,當您使用 Azure Arc 啟用的 AKS 時,您可能會想要升級至最新可用的 Kubernetes 版本。
本教學課程的第七部分說明如何升級 Kubernetes 叢集。 您將學習如何:
- 識別目前和可用的 Kubernetes 版本
- 升級 Kubernetes 節點的 Kubernetes 版本
- 升級 Kubernetes 節點的 OS 版本
- 將 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 版本時,才能運作。
使用下列範例中的步驟來更新 OS 版本:
若要取得可用的工作負載叢集更新,請執行下列命令:
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
同時更新OS和 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
下列範例輸出顯示叢集執行 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 節點的 OS 版本
- 將 Kubernetes 叢集升級至最新版本
- 驗證成功的升級