使用英语阅读

通过


你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用纵向缩减模式在 Azure Kubernetes 服务 (AKS) 中删除/解除分配节点

默认情况下,通过手动方式或通过群集自动缩放程序执行的纵向扩展操作需要分配和预配新节点,而纵向缩减操作会删除节点。 使用纵向缩减模式,可以决定在执行纵向缩减时,是要在 Azure Kubernetes 服务 (AKS) 群集中删除节点还是解除分配节点。

如果 Azure VM 处于 Stopped(已解除分配)状态,你将不会为 VM 计算资源付费。 但是,仍需要为附加到 VM 的任何 OS 和数据存储磁盘付费。 这也意味着容器映像将保留在这些节点上。 有关详细信息,请参阅 Azure 虚拟机的状态和计费。 此行为可实现更快的操作速度,因为你的部署使用缓存的映像。 使用纵向缩减模式,不必再预配节点和预先拉取容器映像,从而节省计算成本。

开始之前

警告

为了保存任何已解除分配的 VM,必须将“纵向缩减”模式设置为“解除分配”。 这包括已使用 IaaS API 解除分配的 VM(虚拟机规模集 API)。 将“纵向缩减”模式设置为“删除”会移除任何解除分配 VM。 应用解除分配模式并执行纵向缩减操作后,这些节点将在 APIerver 中保持注册,并显示为 NotReady 状态。

本文假定你拥有现有的 AKS 群集。 如果没有 AKS 群集,有关设计 AKS 企业级实现的指导,请参阅规划 AKS 设计

限制

  • 不支持临时 OS 磁盘。 请确保在创建群集或节点池时通过包括参数 --node-osdisk-type Managed 来指定托管 OS 磁盘。

备注

以前,纵向缩减模式为预览版,不支持现成节点池。 现在,纵向缩减模式已正式发布,此限制不再存在。

使用纵向缩减模式在纵向缩减时解除分配节点

通过设置 --scale-down-mode Deallocate,在纵向缩减群集/节点池时,节点将被解除分配。 所有已解除分配的节点都会停止。 当群集/节点池需要纵向扩展时,将首先启动已解除分配的节点,然后再预配任何新节点。

在此示例中,我们创建一个包含 20 个节点的新节点池,并指定在纵向缩减时使用参数 --scale-down-mode Deallocate 将节点解除分配。

az aks nodepool add --node-count 20 --scale-down-mode Deallocate --node-osdisk-type Managed --max-pods 10 --name nodepool2 --cluster-name myAKSCluster --resource-group myResourceGroup

通过缩放节点池并将节点计数更改为 5,我们将解除分配 15 个节点。

az aks nodepool scale --node-count 5 --name nodepool2 --cluster-name myAKSCluster --resource-group myResourceGroup

若要在纵向缩减期间将 Windows 节点解除分配,请运行以下命令。 默认行为与 Linux 节点一致,其中的节点在纵向缩减期间被删除

az aks nodepool add --node-count 20 --scale-down-mode Deallocate --os-type Windows --node-osdisk-type Managed --max-pods 10 --name npwin2 --cluster-name myAKSCluster --resource-group myResourceGroup

删除先前已解除分配的节点

若要删除已解除分配的节点,可以通过设置 --scale-down-mode Delete 将纵向缩减模式更改为 Delete。 此时将删除 15 个已解除分配的节点。

az aks nodepool update --scale-down-mode Delete --name nodepool2 --cluster-name myAKSCluster --resource-group myResourceGroup

备注

将纵向缩减模式从 Deallocate 更改为 Delete,然后返回到 Deallocate 将删除所有已解除分配的节点,同时使节点池处于 Deallocate 纵向缩减模式。

使用纵向缩减模式在纵向缩减时删除节点

在不使用纵向缩减模式的情况下,AKS 的默认行为是在你纵向缩减群集时删除节点。 使用纵向缩减模式,可以通过设置 --scale-down-mode Delete 来显式实现此行为。

在此示例中,我们创建一个新的节点池,并指定将使用参数 --scale-down-mode Delete 在纵向缩减时删除节点。 缩放操作将使用群集自动缩放程序进行处理。

az aks nodepool add --enable-cluster-autoscaler --min-count 1 --max-count 10 --max-pods 10 --node-osdisk-type Managed --scale-down-mode Delete --name nodepool3 --cluster-name myAKSCluster --resource-group myResourceGroup

后续步骤