你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
在 Azure Kubernetes 服务 (AKS) 中使用虚拟机节点池(预览版)
在本文中,你将了解适用于 AKS 的新虚拟机节点池类型(预览版)。
通过使用虚拟机节点池,AKS 直接管理每个节点的预配和启动。 对于虚拟机规模集节点池,AKS 管理虚拟机规模集的模型,并使用它跨节点池中的所有节点实现一致性。 借助虚拟机节点池,可以使用最适合单个工作负载的虚拟机来协调群集。
概述
工作原理
节点池由一组虚拟机组成,其中指定了不同的虚拟机大小以支持不同类型的工作负载。 这些虚拟机大小(称为 SKU)分为针对特定用途进行优化的不同系列。 有关详细信息,请参阅 VM SKU。
为了实现多个虚拟机大小的缩放,虚拟机节点池类型使用 ScaleProfile
,其中包含指示节点池如何缩放的配置,特别是所需的虚拟机大小和计数列表。 ManualScaleProfile
是一个缩放配置文件,用于指定所需的虚拟机大小和计数。 ManualScaleProfile
中只允许一个虚拟机大小。 需要为节点池中的每个虚拟机大小创建单独的 ManualScaleProfile
。
注意
创建新的虚拟机节点池时,ScaleProfile
中至少需要一个 ManualScaleProfile
。 一个虚拟机节点池可以有多个手动缩放配置文件。
优点
虚拟机节点池类型的优点包括:
- 灵活性:可更新节点规范,以适应当前的工作负载和需求。
- 微调控制:单节点级控件支持指定和混合不同规格的节点,以解除单个模型的限制并提高一致性。
- 效率:可以减少群集的节点占用,从而简化操作要求。
虚拟机节点池为动态工作负载和高可用性要求提供更好的体验。 使用虚拟机节点池可以在一个节点池中设置多个相似系列的虚拟机。 工作负载将自动根据你配置的可用资源进行计划。
功能对比
下表重点介绍了虚拟机节点池与标准规模集节点池的比较情况。
节点池类型 | 功能 |
---|---|
虚拟机节点池 | 可以在节点池中添加、删除或更新节点。 虚拟机类型可以是同一系列类型的任何虚拟机(例如 D 系列、A 系列等)。 |
基于虚拟机规模集的节点池 | 可以在节点池中添加或删除大小和类型相同的节点。 如果将新的虚拟机大小添加到群集,需要创建新的节点池。 |
限制
- 目前不支持群集自动缩放程序。
- InifiniBand 不可用。
- 不支持 Windows 节点池。
- Azure 门户不支持此功能。 必须使用 Azure CLI 或 REST API 来执行 CRUD 操作或管理池。
- 不支持节点池快照。
- 在一个节点池中选定的所有 VM 大小需要来自一个相似的虚拟机系列。 例如,不能将 N 系列虚拟机大小与同一节点池中的 D 系列虚拟机大小混合使用。
- 虚拟机节点池支持每个节点池有最多 5 种不同的虚拟机大小。
先决条件
- Azure 订阅。 如果没有帐户,可以创建一个免费帐户。
- 虚拟机节点池功能现为预览版。 此功能仅适用于 API 版本 2023-10-02-preview 及更高版本,或者适用于 Azure CLI 扩展版本 2.61.0 或更高版本。
- 如果使用 Azure CLI,请注册
aks-preview
扩展或将现有aks-preview
的版本更新到最低版本 4.0.0b4。 - 此功能所需的最低次要 Kubernetes 版本是版本 1.26。
安装 aks-preview Azure CLI 扩展
重要
AKS 预览功能是可选择启用的自助功能。 预览功能是“按现状”和“按可用”提供的,不包括在服务级别协议和有限保证中。 AKS 预览功能是由客户支持尽最大努力部分覆盖。 因此,这些功能并不适合用于生产。 有关详细信息,请参阅以下支持文章:
使用
az extension add
命令安装 aks-preview 扩展:az extension add --name aks-preview
使用
az extension update
命令更新到 aks-preview 扩展的最新版本。az extension update --name aks-preview
注册 VMsAgentPoolPreview
功能标志
使用
az account set
命令选择要在其中启用功能标志的订阅。az account set --subscription <subscription-name>
使用
az feature registration create
命令注册VMsAgentPoolPreview
功能标志。az feature registration create --namespace Microsoft.ContainerService --name VMsAgentPoolPreview
状态显示为“已注册”需要几分钟时间。
使用
az feature show
命令验证注册状态。az feature show --namespace "Microsoft.ContainerService" --name "VMsAgentPoolPreview"
当状态反映为已注册时,使用
az provider register
命令刷新 Microsoft.ContainerService 资源提供程序的注册。az provider register --namespace "Microsoft.ContainerService"
创建具有虚拟机节点池的 AKS 群集
注意
一个缩放配置文件中只允许一种 VM 大小,而一个虚拟机节点池整体上最多支持 5 个 VM 缩放配置文件。
在
--vm-set-type
标志设置为"VirtualMachines"
的情况下,使用az aks create
命令创建具有虚拟机节点池的 AKS 群集。以下示例会创建一个名为 myAKSCluster 的群集(该群集具有一个包含两个节点的虚拟机节点池),生成 SSH 密钥,将负载均衡器 SKU 设置为“标准”,并将 Kubernetes 版本设置为 1.28.5:
az aks create \ --resource-group myResourceGroup \ --name myAKSCluster \ --vm-set-type "VirtualMachines" \ --node-count 2 \ --kubernetes-version 1.28.5
将虚拟机节点池添加到现有群集
使用
az aks nodepool add
命令将混合 SKU 节点池添加到现有群集,并将--vm-set-type
标志设置为"VirtualMachines"
。以下示例将名为 myvmpool 的虚拟机节点池添加到 myAKSCluster 群集。 节点池有 3 个节点,最大 VM SKU 为 Standard_D4s_v3:
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"
。以下示例将一个手动缩放配置文件添加到 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 中的节点池,请参阅创建节点池。