Azure Kubernetes 服务 (AKS) 会定期提供新的节点映像,因此频繁升级节点映像以使用最新的 AKS 功能是有益的。 Linux 节点映像每周更新,Windows 节点映像每月更新。 映像升级公告包含在 AKS 发行说明中,可能需要一周时间才能在所有区域推出这些更新。 还可以自动执行节点映像升级,并使用计划内维护来安排这些升级。 有关详细信息,请参阅自动升级节点映像。
本文介绍了在不升级 Kubernetes 版本的情况下如何升级 AKS 群集节点映像以及如何更新节点池映像。 有关如何升级群集的 Kubernetes 版本的信息,请参阅升级 AKS 群集。
备注
AKS 群集必须对节点使用虚拟机规模集。
无法对节点映像版本进行降级(例如,将 AKSUbuntu-2204 降级为 AKSUbuntu-1804,或者将 AKSUbuntu-2204-202308.01.0 降级为 AKSUbuntu-2204-202307.27.0)。
使用 [
az aks get-credentials
][az-aks-get-credentials] 命令连接到 AKS 群集。az aks get-credentials \ --resource-group $AKS_RESOURCE_GROUP \ --name $AKS_CLUSTER
使用
az aks nodepool get-upgrades
命令检查可用的节点映像升级。az aks nodepool get-upgrades \ --nodepool-name $AKS_NODEPOOL \ --cluster-name $AKS_CLUSTER \ --resource-group $AKS_RESOURCE_GROUP
在输出中,找到并记下
latestNodeImageVersion
值。 此值是可供节点池使用的最新节点映像版本。使用
az aks nodepool show
命令检查当前节点映像版本,并与最新版本进行比较。az aks nodepool show \ --resource-group $AKS_RESOURCE_GROUP \ --cluster-name $AKS_CLUSTER \ --name $AKS_NODEPOOL \ --query nodeImageVersion
如果
nodeImageVersion
值与latestNodeImageVersion
值不同,则可以升级节点映像。
使用带有
az aks upgrade
标志的--node-image-only
命令升级群集中所有节点池的所有节点映像。az aks upgrade \ --resource-group $AKS_RESOURCE_GROUP \ --name $AKS_CLUSTER \ --node-image-only \ --yes
可以使用
kubectl get nodes
命令检查节点映像的状态。备注
此命令可能略有不同,具体取决于所使用的 shell。 有关 Windows 和 PowerShell 环境的详细信息,请参阅 Kubernetes JSONPath 文档。
kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'
升级完成后,请使用
az aks show
命令来获取更新后的节点池详细信息。 当前节点映像在nodeImageVersion
属性中显示。az aks show \ --resource-group $AKS_RESOURCE_GROUP \ --name $AKS_CLUSTER
在不执行 Kubernetes 群集升级的情况下,请使用带有
az aks nodepool upgrade
标志的--node-image-only
命令来更新节点池的 OS 映像。az aks nodepool upgrade \ --resource-group $AKS_RESOURCE_GROUP \ --cluster-name $AKS_CLUSTER \ --name $AKS_NODEPOOL \ --node-image-only
可以使用
kubectl get nodes
命令检查节点映像的状态。备注
此命令可能略有不同,具体取决于所使用的 shell。 有关 Windows 和 PowerShell 环境的详细信息,请参阅 Kubernetes JSONPath 文档。
kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'
升级完成后,请使用
az aks nodepool show
命令来获取更新后的节点池详细信息。 当前节点映像在nodeImageVersion
属性中显示。az aks nodepool show \ --resource-group $AKS_RESOURCE_GROUP \ --cluster-name $AKS_CLUSTER \ --name $AKS_NODEPOOL
要加快节点映像升级过程,可以使用可自定义的节点激增值升级节点映像。 默认情况下,AKS 将使用一个额外的节点来配置升级。
使用带有
az aks nodepool update
标志的--max-surge
命令,通过节点激增方式升级节点映像,以配置用于升级的节点数。备注
要了解有关各种
--max-surge
设置的权衡的更多信息,请参阅--max-surge
。az aks nodepool update \ --resource-group $AKS_RESOURCE_GROUP \ --cluster-name $AKS_CLUSTER \ --name $AKS_NODEPOOL \ --max-surge 33% \ --no-wait
可以使用
kubectl get nodes
命令检查节点映像的状态。kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'
使用
az aks nodepool show
命令获取更新的节点池详细信息。 当前节点映像在nodeImageVersion
属性中显示。az aks nodepool show \ --resource-group $AKS_RESOURCE_GROUP \ --cluster-name $AKS_CLUSTER \ --name $AKS_NODEPOOL
- 参阅 AKS 发行说明以了解有关最新节点映像的信息。
- 了解如何通过 升级 AKS 群集 来升级 Kubernetes 版本。
- 使用 GitHub Actions 自动应用群集和节点池升级。
- 通过创建多重节点池详细了解多重节点池。