你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
在本文中,你将了解 AKS 的新虚拟机节点池类型。
通过使用虚拟机节点池,AKS 直接管理每个节点的预配和启动。 对于虚拟机规模集节点池,AKS 管理虚拟机规模集的模型,并使用它跨节点池中的所有节点实现一致性。 借助虚拟机节点池,可以使用最适合单个工作负载的虚拟机来协调群集。
概述
工作原理
节点池由一组虚拟机组成,其中指定了不同的虚拟机大小以支持不同类型的工作负载。 这些虚拟机大小(称为 SKU)分为针对特定用途进行优化的不同系列。 有关详细信息,请参阅 VM SKU。
若要启用多种虚拟机大小的伸缩,虚拟机节点池类型使用一个ScaleProfile,其中包含指示节点池如何进行伸缩的配置,尤其是需要的虚拟机大小列表以及每种大小的数量。 A ManualScaleProfile 是一个规模配置文件,它指定所需的虚拟机尺寸以及节点池中该类型的总数。
ManualScaleProfile 中只允许一个虚拟机大小。 需要为节点池中的每个虚拟机大小创建单独的 ManualScaleProfile。 创建新的虚拟机节点池时,根据以下说明,使用 vm-size 字段为虚拟机大小添加初始手动缩放配置文件,并包括一个 node-count。 还可以按照[添加手动缩放配置文件]的说明添加其他手动缩放配置文件。
注意
新建虚拟机节点池时,可以设置多个缩放配置文件,并且节点池中至少需要一个手动缩放配置文件。
优点
虚拟机节点池类型的优点包括:
- 灵活性:可更新节点规范,以适应当前的工作负载和需求。
- 微调控制:单节点级控件支持指定和混合不同规格的节点,以解除单个模型的限制并提高一致性。
- 效率:可以减少群集的节点占用,从而简化操作要求。
虚拟机节点池为动态工作负载和高可用性要求提供更好的体验。 使用虚拟机节点池可以在一个节点池中设置多个相似系列的虚拟机。 工作负载将自动根据你配置的可用资源进行计划。
功能比较
下表重点介绍了虚拟机节点池与标准规模集节点池的比较情况。
| 节点池类型 | 功能 |
|---|---|
| 虚拟机节点池 | 可以在节点池中添加、删除或更新节点。 虚拟机类型可以是同一系列类型的任何虚拟机(例如 D 系列、A 系列等)。 |
| 基于虚拟机规模集的节点池 | 可以在节点池中添加或删除大小和类型相同的节点。 如果将新的虚拟机大小添加到群集,需要创建新的节点池。 |
限制
- 目前不支持群集自动缩放程序。
- InifiniBand 不可用。
- 不支持节点池快照。
- 在一个节点池中选定的所有 VM 大小需要来自一个相似的虚拟机系列。 例如,不能将 N 系列虚拟机大小与同一节点池中的 D 系列虚拟机大小混合使用。
- 虚拟机节点池支持每个节点池有最多 5 种不同的虚拟机大小。
Prerequisites
- Azure 订阅。 如果没有帐户,可以创建一个免费帐户。
- 已安装并配置 Azure CLI 2.73.0 或更高版本。 若要查找版本,请运行
az --version。 有关安装或升级 Azure CLI 的详细信息,请参阅 安装 Azure CLI - 此功能需要 kubernetes 版本 1.27 或更高版本。 若要升级 kubernetes 版本,请参阅 升级 AKS 群集
创建具有虚拟机节点池的 AKS 群集
注意
一个缩放配置文件中只允许一种 VM 大小,而一个虚拟机节点池整体上最多支持 5 个 VM 缩放配置文件。
在
az aks create标志设置为--vm-set-type的情况下,使用"VirtualMachines"命令创建具有虚拟机节点池的 AKS 群集。以下示例创建名为 myAKSCluster 的群集,其中包含两个节点的虚拟机节点池,生成 SSH 密钥,将负载均衡器 SKU 设置为 标准,并将 Kubernetes 版本设置为 1.31.0:
az aks create \ --resource-group myResourceGroup \ --name myAKSCluster \ --vm-set-type "VirtualMachines" \ --vm-sizes "Standard_D4s_v3" --node-count 2 \ --kubernetes-version 1.31.0
创建启用了 Windows 的群集和 Windows 虚拟机节点池
已启用 Windows 的群集中提供了虚拟机节点池。 以下示例使用虚拟机节点池创建名为 myAKSCluster 的群集。 这些步骤首先创建 Linux 系统池。
创建用户名以用作群集上 Windows Server 节点的管理员凭据。 以下命令会提示输入用户名,并将其设置为 WINDOWS_USERNAME ,以便在后面的命令中使用。
echo "Please enter the username to use as administrator credentials for Windows Server nodes on your cluster: " && read WINDOWS_USERNAME为在上一步中创建的管理员用户名创建密码。 密码必须至少为 14 个字符,并且满足 Windows Server 密码复杂性要求。
echo "Please enter the password to use as administrator credentials for Windows Server nodes on your cluster: " && read WINDOWS_PASSWORD使用
az aks create命令,并将--vm-set-type标志设置为"VirtualMachines",以创建启用了 Windows 的 AKS 群集和虚拟机类型节点池。az aks create \ --resource-group myResourceGroup \ --name myAKSCluster \ --node-count 2 \ --enable-addons monitoring \ --generate-ssh-keys \ --windows-admin-username $WINDOWS_USERNAME \ --windows-admin-password $WINDOWS_PASSWORD \ --vm-set-type "VirtualMachines" \ --network-plugin azure使用
az aks nodepool add命令,并将标志--vm-set-type设置为"VirtualMachines",添加虚拟机节点池到已启用 Windows 的现有群集中。 以下示例将名为 npwin 的虚拟机节点池添加到 myAKSCluster 群集:az aks nodepool add --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --os-type Windows \ --name npwin \ --vm-sizes "Standard_D2s_V3" \ --node-count 1 --vm-set-type "VirtualMachines"
将虚拟机节点池添加到现有群集
使用
az aks nodepool add命令将混合 SKU 节点池添加到现有群集,并将--vm-set-type标志设置为"VirtualMachines"。以下示例将名为 myvmpool 的虚拟机节点池添加到 myAKSCluster 群集。 节点池创建一个 ManualScaleProfile,并将
--vm-sizes设置为 Standard_D4s_v3,3,--node-count为 3:az aks nodepool add \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name myvmpool \ --vm-set-type "VirtualMachines" \ --vm-sizes "Standard_D4s_v3" \ --node-count 3
将手动缩放配置文件添加到节点池
使用
az aks nodepool manual-scale add将手动缩放配置文件添加到节点池,并将--vm-sizes标志设置为"Standard_D2s_v3",node-count设置为 2。以下示例将一个手动缩放配置文件添加到 myAKSCluster 群集中的 myvmpool 节点池。 节点池包含两个 VM SKU 为 Standard_D2s_v3 的节点:
az aks nodepool manual-scale add \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name myvmpool \ --vm-sizes "Standard_D2s_v3" \ --node-count 2
更新现有的手动缩放配置文件
使用
az aks nodepool manual-scale update命令更新节点池中的现有手动缩放配置文件,并将--vm-sizes标志设置为"Standard_D2s_v3"。注意
使用
--current-vm-sizes参数指定要更新的现有节点池的大小。 可以更新--vm-sizes和/或--node-count。 如果使用其他工具或 REST API,更新节点池缩放配置文件时需要传入完整agentPoolProfiles.virtualMachinesProfile.scale字段。以下示例将一个手动缩放配置文件更新到 myAKSCluster 群集中的 myvmpool 节点池。 该命令将节点数更新为 5 个,并将 VM SKU 从 Standard_D4s_v3 更改为 Standard_D8s_v3:
az aks nodepool manual-scale update \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name myvmpool \ --current-vm-sizes "Standard_D4s_v3" \ --vm-sizes "Standard_D8s_v3" \ --node-count 5
删除手动缩放配置文件
使用
az aks nodepool manual-scale delete命令删除现有的手动缩放配置文件。注意
--current-vm-sizes参数指定要删除的现有节点池的大小。 如果使用其他工具或 REST API 更新节点池缩放配置文件,请传入完整的agentPoolProfiles.virtualMachinesProfile.scale字段。以下示例会删除 myvmpool 节点池中 Standard_D8s_v3 VM SKU 的手动缩放配置文件。
az aks nodepool manual-scale delete \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name myvmpool \ --current-vm-sizes "Standard_D8s_v3"
后续步骤
本文介绍了如何在 AKS 中使用虚拟机节点池。 若要详细了解 AKS 中的节点池,请参阅创建节点池。