升级 Azure Kubernetes 服务 (AKS) 群集
适用于:Azure 本地版本 23H2
在管理应用程序和群集生命周期过程中,可能需要升级到最新版本的 Kubernetes。 升级涉及迁移到较新版本的 Kubernetes、应用操作系统(OS)版本更新(修补)或两者。 AKS Arc 支持使用最新的 OS 和运行时更新在工作负荷群集中升级(或修补)节点。
所有升级都以连续滚动的方式执行,以确保工作负荷的不间断可用性。 当具有更新版本的新的 Kubernetes 工作器节点进入群集中时,资源将从旧节点移到新节点。 成功完成后,旧节点将解除授权并从群集中删除。
开始之前
如果你使用的是 Azure CLI,本文要求 Azure CLI 2.34.1 或更高版本。 运行 az --version
即可查找版本。 如果需要安装或升级 CLI,请参阅安装 Azure CLI。
检查是否有可用的升级
使用以下命令检查哪些 Kubernetes 版本可用于群集:
az aksarc get-upgrades --resource-group myResourceGroup --name myAKSCluster
以下示例输出显示当前版本为 1.24.11 ,并列出以下 upgrades
版本的可用版本:
{
"agentPoolProfiles": [
{
"kubernetesVersion": "1.24.11",
"upgrades": [
{
"kubernetesVersion": "1.25.7"
}
]
}
],
"controlPlaneProfile": {
"kubernetesVersion": "1.24.11",
"name": "aksarc-testupgrade",
"osType": "Linux",
"upgrades": [
{
"kubernetesVersion": "1.25.7"
}
]
},
...
"provisioningState": "Succeeded",
...
}
升级 Kubernetes 版本
升级受支持的 AKS 群集时,不能跳过 Kubernetes 次要版本。 必须按主版本号按顺序执行所有升级。 例如,允许从 1.24.x 升级到 1.25.x 或 1.25.x 到 1.26.x。 不允许使用 1.24.x 到 1.26.x 。
注意
如果未指定补丁,群集会自动升级到指定的次要版本的最新 GA 补丁。 例如,设置为 --kubernetes-version
1.25 会导致群集升级到 1.25.7。
可以使用以下命令升级群集:
az aksarc upgrade \
--resource-group myResourceGroup \
--name myAKSCluster \
--kubernetes-version <KUBERNETES_VERSION>
使用 show
以下命令确认升级是否成功:
az aksarc show --resource-group myResourceGroup --name myAKSCluster
以下示例输出显示群集现在运行 1.25.7:
{
"extendedLocation": {
"name":
"/subscriptions/<subscription>/resourcegroups/<resource group>/providers/microsoft.extendedlocation/customlocations/<custom
location>",
"type": "CustomLocation"
},
"id": "/subscriptions/<subscription>/resourceGroups/<resource group>/providers/Microsoft.Kubernetes/connectedClusters/aksarc-testupgrade/providers/Microsoft.HybridContainerService/provisionedClusterInstances/default",
"name": "default",
"properties": {
"agentPoolProfiles": [
{
}
],
"controlPlane": {
"availabilityZones": null,
"controlPlaneEndpoint": {
"hostIp": null,
"port": null
},
"count": 1,
"linuxProfile": {
"ssh": {
"publicKeys": null
}
},
"name": null,
"nodeImageVersion": null,
"osSku": "CBLMariner",
"osType": "Linux",
"vmSize": "Standard_A4_v2"
},
"kubernetesVersion": "1.25.7",
...
"provisioningState": "Succeeded",
...
},
....
"type": "microsoft.hybridcontainerservice/provisionedclusterinstances"
}
重要
从跳过两个或多个次要版本的不受支持的版本执行升级时,升级无法保证正常运行。 如果版本明显过期,建议重新创建群集。
在升级操作期间,指示器currentState
将显示provisioningState
一条“升级”消息,以反映正在进行的过程。 但是,如果操作超时, provisioningState
则显示 “失败”,同时 currentState
继续显示 升级 ,因为升级在后台继续。 不需要任何操作;升级会一直持续到它完成。
更新操作系统 (OS) 版本
仅当新映像不需要其他 Kubernetes 版本时,才会将工作节点更新到较新版本的节点映像,而不更改 Kubernetes 版本。 目前,AKS Arc 不支持所有 Kubernetes 版本的仅节点映像更新。 如果需要更新节点映像,必须将群集升级到最新的 Kubernetes 版本,以确保合并所有节点映像更新。
重要
尝试使用 node-image-only
标志时,会收到一条消息,指示尚不支持此功能。