Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
本文详细介绍 Azure Kubernetes 服务(AKS)如何逐步取消对虚拟机可用性集(VMAS)的支持,以支持虚拟机(VM)。
重要
从 2025 年 9 月 30 日开始,Azure Kubernetes 服务(AKS)不再支持可用性集。 在此日期之后具有可用性集的群集被视为不受支持。 在此日期之前将所有工作负荷迁移到 虚拟机节点池 ,以确保持续支持并利用增强的管理功能。 有关此停用的详细信息,请参阅 停用 GitHub 问题。 若要随时了解公告和更新,请关注AKS 发行说明。
注释
建议对 AKS 优化的 VM 使用 虚拟机节点池 。
虚拟机节点池:
- 允许集中管理、配置和更新 VM 实例。
- 允许增加或减少虚拟机实例数以响应需求或定义的计划。
- 允许单节点级控件和不同大小节点的同一系列混合,提高灵活性并提高一致性。
可用性集概述
可用性集是虚拟机(VM)的逻辑分组,可减少相关的故障同时降低相关 VM 的可能性。 可用性集将 VM 放置在不同的容错域中,以提高可靠性。
逐步退出可用性集
截至 2019 年,我们不再向 AKS 中的可用性集添加其他功能。 可用性集中不支持自 2019 年以来引入的任何功能,例如 AKS 备份。
从可用性集迁移到虚拟机节点池
现在可以使用脚本将 AKS 群集从使用可用性集迁移到虚拟机节点池。 此脚本还会自动将群集中的基本层负载均衡器升级到标准层。
重要
此过程还会将基本 IP 迁移到标准 IP,同时保留与负载均衡器关联的入站 IP 地址。 在此过程中,会创建一个新的公共 IP,并将其关联到标准负载均衡器出站规则,以便为群集出口流量提供服务。
在您开始之前
要求
- 此脚本的最低 Kubernetes 版本为 1.27。 如果需要升级 AKS 群集,请参阅 升级 AKS 群集。
- 需要安装版本 2.76.0 Azure CLI。
- 如果群集使用私钥保管库运行密钥管理服务,则必须在迁移期间 禁用 密钥管理服务。
- 如果群集使用任何 ValidatingAdmissionWebhook 或 MutatingAdmissionWebhook,则必须在迁移之前禁用这些 Web 挂钩。
准备迁移
- 为计划内停机创建迁移计划。
- 迁移启动后,不允许回滚。
运行用于可用性集迁移的迁移脚本
- 以下命令会启动一个脚本,以便使用
az aks update命令将群集从使用可用性集迁移到虚拟机节点池,并设置--migrate-vmas-to-vms。 此脚本还将基本负载均衡器和基本 IP 升级到标准负载均衡器和标准 IP(如果适用)。
az aks update \
--name $clusterName \
--resource-group $resourceGroup \
--migrate-vmas-to-vms \
- 使用
az aks show命令验证迁移是否成功。 此命令的输出将显示群集详细信息。
az aks show \
--name $clusterName \
--resource-group $resourceGroup
当使用az aks show命令时,如果群集详细信息中的type设置为VirtualMachines,并且loadbalancerSku设置为Standard,则可以验证成功迁移。
"type": "VirtualMachines"
"loadBalancerSku": "standard",
- 使用
kubectl get pods和kubectl get svc命令验证所有 Pod 和服务是否都成功运行:
kubectl get svc -A \
kubectl get pods -A
- 可以通过列出出站 IP 地址来确认与出站规则关联的新 IP 地址。 此步骤是通过确认 IP 地址的资源 ID,然后列出 IP 地址来完成的。
使用以下命令获取出站 IP 地址的资源 ID:
# Get the outbound IP Resource ID
az aks show -g <myResourceGroup> -n <myAKSCluster> --query networkProfile.loadBalancerProfile.effectiveOutboundIPs[].id
使用以下命令获取资源 ID 的每个 IP 地址:
# get the new IP for each IP Resource ID
az network public-ip show --ids <IPResourceID> --query ipAddress -o tsv