你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
使用邻近放置组来降低 Azure Kubernetes 服务 (AKS) 群集的延迟
注意
在 AKS 上使用邻近放置组时,归置仅适用于代理节点。 节点到节点延迟以及相应的托管 Pod 到 Pod 延迟得到改善。 归置不会影响群集的控制平面的放置。
在 Azure 中部署应用程序时,可通过跨区域或可用性区域分布虚拟机 (VM) 实例来创建网络延迟,这可能会影响应用程序的总体性能。 邻近放置组是一种逻辑分组,用于确保 Azure 计算资源的物理位置彼此接近。 一些应用程序(例如游戏、工程模拟和高频交易 [HFT])需要低延迟和可快速完成的任务。 对于类似的高性能计算 (HPC) 场景,请考虑为群集的节点池使用邻近放置组 (PPG)。
开始之前
本文需要 Azure CLI 2.14 或更高版本。 运行 az --version
即可查找版本。 如果需要进行安装或升级,请参阅安装 Azure CLI。
限制
- 邻近放置组只能映射到一个可用性区域。
- 节点池必须使用虚拟机规模集来关联邻近放置组。
- 节点池只能在节点池创建时关联邻近放置组。
节点池和邻近放置组
使用邻近放置组部署的第一个资源会附加到特定的数据中心。 使用同一邻近放置组部署的任何额外资源都归置在同一数据中心。 停止(解除分配)或删除使用邻近放置组的所有资源后,将不再附加该邻近放置组。
- 可以将多个节点池与单个邻近放置组相关联。
- 只能将一个节点池与单个邻近放置组相关联。
通过可用性区域配置邻近放置组
注意
尽管邻近放置组要求一个节点池只能使用一个可用性区域,但是对于单个区域中的 VM,99.9% 的基线 Azure VM SLA 仍然有效。
邻近放置组是一个节点池概念,与每个单独的节点池相关联。 使用 PPG 资源不会影响 AKS 控制平面的可用性,而该可用性可能会影响使用区域设计群集的方式。 为了确保群集跨多个区域分布,建议采用以下设计:
- 使用三个区域预配具有第一个系统池的群集,并且不关联任何邻近放置组,以确保系统 Pod 位于跨多个区域分布的专用节点池中。
- 添加额外的具有唯一区域的用户节点池,每个池都关联有邻近放置组。 例如区域 1 中的 nodepool1 和 PPG1、区域 2 中的 nodepool2 和 PPG2、区域 3 中的 nodepool3 和 PPG3。 这种配置可确保节点在群集级别跨多个区域分布,而每个单独的节点池归置于指定的区域中,具有专用的 PPG 资源。
使用邻近放置组创建新的 AKS 群集
加速网络可极大地提高虚拟机的网络性能。 理想情况是将邻近放置组与加速网络一起使用。 默认情况下,AKS 在支持的虚拟机实例上使用加速网络,其中包括具有两个或多个 vCPU 的大多数 Azure 虚拟机。
使用
az group create
命令创建 Azure 资源组。az group create --name myResourceGroup --location centralus
使用
az ppg create
命令创建邻近放置组。 请确保记下输出中的 ID 值。az ppg create --name myPPG --resource-group myResourceGroup --location centralus --type standard
该命令会生成类似于以下示例输出的输出,其中包括后续 CLI 命令所需的 ID 值。
{ "availabilitySets": null, "colocationStatus": null, "id": "/subscriptions/yourSubscriptionID/resourceGroups/myResourceGroup/providers/Microsoft.Compute/proximityPlacementGroups/myPPG", "location": "centralus", "name": "myPPG", "proximityPlacementGroupType": "Standard", "resourceGroup": "myResourceGroup", "tags": {}, "type": "Microsoft.Compute/proximityPlacementGroups", "virtualMachineScaleSets": null, "virtualMachines": null }
使用
az aks create
命令创建 AKS 群集,并将 myPPGResourceID 值替换为上一步中的邻近放置组资源 ID。az aks create \ --resource-group myResourceGroup \ --name myAKSCluster \ --ppg myPPGResourceID --generate-ssh-keys
向现有群集添加邻近放置组
可通过创建一个新节点池来向现有群集添加邻近放置组。 然后,可选择将现有工作负载迁移到新的节点池,并删除原始节点池。
使用之前创建的同一邻近放置组来确保 AKS 群集的两个节点池中的代理节点在物理上位于同一数据中心。
使用
az aks nodepool add
命令创建新的节点池,并将 myPPGResourceID 值替换为邻近放置组资源 ID。az aks nodepool add \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name mynodepool \ --node-count 1 \ --ppg myPPGResourceID
清理
使用
az group delete
命令删除 Azure 资源组及其所有资源。az group delete --name myResourceGroup --yes --no-wait
后续步骤
详细了解邻近放置组。