你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本文介绍如何升级单节点池,以及如何升级 Azure Kubernetes 服务(AKS)中多个节点池的群集控制平面。
注释
最佳做法是将 AKS 群集中的所有节点池升级到相同的 Kubernetes 版本。 [az aks upgrade][az-aks-upgrade] 的默认行为是将所有节点池与控制平面一起升级,以实现这种对齐。 升级单个节点池的功能允许你执行滚动升级,并在节点池之间调度 Pod,以维持应用程序正常运行时间。
升级单个节点池
注释
节点池操作系统(OS)映像版本与群集的 Kubernetes 版本绑定。 只有在群集升级后,才会获得 OS 映像升级。
使用 [
az aks get-upgrades][az-aks-get-upgrades] 命令检查是否有可用的升级。az aks get-upgrades --resource-group <resource-group-name> --name <cluster-name>使用 [
az aks nodepool upgrade][az-aks-nodepool-upgrade] 命令升级特定节点池。az aks nodepool upgrade \ --resource-group <resource-group-name> \ --cluster-name <cluster-name> \ --name <node-pool-name> \ --kubernetes-version <kubernetes-version> \ --no-wait使用 [
az aks nodepool list][az-aks-nodepool-list] 命令检查节点池的状态。az aks nodepool list --resource-group <resource-group-name> --cluster-name <cluster-name>以下示例输出显示节点池处于 升级 状态:
[ { ... "count": 3, ... "name": "<node-pool-name>", "orchestratorVersion": "<kubernetes-version>", ... "provisioningState": "Upgrading", ... "vmSize": "Standard_DS2_v2", ... }, { ... "count": 2, ... "name": "<node-pool-name-2>", "orchestratorVersion": "<kubernetes-version-2>", ... "provisioningState": "Succeeded", ... "vmSize": "Standard_DS2_v2", ... } ]将节点升级到指定的版本需要花费几分钟时间。 升级完成后,节点池将
provisioningState更改为 “成功”。
升级包含多个节点池的群集控制平面
AKS 群集具有两个与 Kubernetes 版本关联的群集资源对象:群集控制平面 Kubernetes 版本和具有 Kubernetes 版本的节点池。
控制平面和节点池的升级行为
控制平面映射到一个或多个节点池。 升级作的行为取决于所使用的 Azure CLI 命令和指定的标志:
-
az aks upgrade将群集的控制平面和所有节点池升级到相同的 Kubernetes 版本。 - 带有
--control-plane-only标志的az aks upgrade仅升级群集控制平面,所有节点池保持不变。 -
az aks nodepool upgrade仅将目标节点池升级到指定的 Kubernetes 版本。
升级验证规则
注释
Kubernetes 使用标准的语义化版本控制方案。 版本号以 x.y.z 表示,其中,x 是主要版本,y 是次要版本,z 是补丁版本。 例如,在版本 1.12.6 中, 1 是主要版本, 12 是次要版本, 6 是修补程序版本。 控制平面和初始节点池的 Kubernetes 版本是在群集创建过程中设置的。 将其他节点池添加到群集时,将为其设置 Kubernetes 版本。 不同节点池的 Kubernetes 版本可能不同,节点池与控制平面的 Kubernetes 版本也可能不同。
使用以下规则集对群集控制平面和节点池的 Kubernetes 升级进行验证:
节点池升级的有效版本规则:
- 节点池版本的主要版本必须与控制平面相同。
- 节点池的次要版本必须在控制平面版本的两个次要版本范围内。
- 节点池版本不能大于控制平面的
major.minor.patch版本。
提交升级操作的规则:
- 无法降级控制平面或节点池的 Kubernetes 版本。
- 如果未指定节点池的 Kubernetes 版本,则行为由客户端决定。 在 Azure 资源管理器(ARM)模板中,声明回退到为节点池定义的现有版本。 如果没有设置任何参数,它将回退到控制平面的版本。
- 不能在单个控制平面或节点池资源上同时提交多个操作。 可在给定时间升级或缩放控制平面或节点池。
后续步骤:在 AKS 中管理节点池
若要详细了解如何在 AKS 中管理节点池,请参阅在 Azure Kubernetes 服务(AKS)中管理节点池。